Bölüm 1 Genel Bilgiler, ışık oyunları ve gölgenin önemi.

 
Günümüzde internetin de yaygınlaşması ile bu işe meraklı olan bir çok kişi oyun motorlarına erişip kendi amatör projelerini yapmaya başladı, ancak oyun yapımı artık programlama dışında iyi derecede 3d modelleme ve rendering tekniklerini bilmekten geçiyor.
Bu yazımda Ülkemizde çok fazla kaynak olmayan bu konuda temel bilgileri vereceğim.  Devam eden yazılarda tekniklerin kullanım şekilleri ve uygulama örneklerini proje dosyaları ile paylaşacağım.
 
 
Öncelikle bilinmesi gereken temel kavram oyun motorlarının bu verileri nasıl işlediğini ve işin limitlerini bilmekten geçiyor, oyun motorları tüm grafikleri grafik kartı üzerinde oluşturur bu grafiklerin işlenebilmesi grafik kartının limitleri ile ilgilidir günümüzde grafik kartları cpularla yarışır hatta geçer konumu gelmiş olsa da akıcı bir oyun grafiği için bilinmesi gereken temel bilgi her önümüze gelen 3d modelin oyunlarda  kullanılamayacağıdır.
Oyunlarda yapılan çizimlerin low poly denilen düşük ayrıntıya sahip kaba modeller kullanılması zorunludur bu nedenle Z brush gibi bir yazılım kullanarak elde edilmiş oldukça ayrıntılı bir modeli oyuna yüklediğimizde oyunun kasılacaktır, bu nedenle oyun modellemeleri düşük ayrıntı seviyesine sahip olarak çizilirler. Oyun motorları ve oyunlar için kullanılan direct x , open gl gibi yapılar bu düşük ayrıntılı modelleri gösterirken ileride bahsedeceğim bir takım texture hileleri ile ayrıntılı modellere dönüştürürler, aslında buna tam olarak dönüştürme de denemez ayrıntılıymış gibi gösterme denilebilir.
Oyun grafikerleri bu görüntüleri 2 yoldan elde elde ederler, 1. yolda yüksek ayrıntılı modeller kalıp olarak kullanılarak indirgeniş modellere bu modelin taşıdığı texture ayrıntıları 3dsmax da Projection komudu ile indirgenim modellere aktarırlar bu işlem sonucunda low poly model hi poly modelin taşaıdığı ayrıntılara sahip olur. 2. yöntem ise teknik olarak daha basit ancak daha fazla textureleme tekniği bilgisinin ihtiyacı duyulan low poly ye photoshop yardımı ile ayrıntılı texture yapılarının oluşturulmasıdır.
 
 
 
Bu noktada bilinmesi gereken en önemli unsur ise  gerçekçi texturelerin nasıl oluşturulacağıdır. Gerçekçi texturelerin gerçekçi olmayan textureler arasındaki temel fark gölgelerdir, gölge görünümü gözümüzün 3d algısı oluşturmasını sağlayan en büyük hiledir.
 

 

 

 

 
 
Yukarıda hazırladığım şekilde sol taraftaki topun zeminde durduğunu görmektesiniz
 
 
Buradaki topumuz ise uçuyor gibi görünmekte, oysaki topların yerinde dikkat ederseniz hiçbir farklılık yok değişen şey sadece gölgenin yeri, beynimiz cisimlerin konumunu ve yapısını gölgeler yardımı ile algılamamızı sağlamaktadır, bu özelliğimiz yukarıda anlattığım low poly modelin ayrıntılı görmemize yardımcı olmaktadır ayrıca doğru yapılmış bir gölgelendirme ile çok daha gerçekçi  görüntü elde ederiz.
 
Bu iş için gelişmiş oyun motorları ayarladığınız sahnenin ışıklarına göre bu texture üzerinden gölgelendirme ile render alarak kabaca kullanılan texturelere gölgelendirme yapmaktadır ( udk, unity cry engine vb. ), ancak daha gerçekçi görüntü elde etmek isterseniz yada bu kabiliyeti olmayan bir oyun motoru kullanıyorsanız bu durumda hali hazırda inşaat ve film endüstrisinden sıklıkla başvurulan raytrace sistemlerini kullanmanız gerekmektedir.
 
Yukarıda görselde photoshopta hazırladığım aynı sahnenin gölgesiz ve gölgeli hali görülmekte sahtelik ile gerçekçilik arasında temel fark yine gölgeler…
 
Aslında teknik olarak ismi radiocity olan bu render tekniğinde işin püf noktası gerçekçi gölgeler ve ışığın gerçek hayattaki biri dağılmasını simule etmeleridir. Gerçek dünyada ışık çarptığı cismin üzerine yansır bu nedenle soft ve dağınık gölgeler görürüz ayrıca yere döşemiş olduğumuz parke, halı duvarın rengi odanın tümüne ambiyans dediğimiz algıyı oluşturur örneğin yerdeki ceviz rengi parke aslında beyaz olan duvarları daha kahverengi bir ambiyans katar ve duvarın rengini krem olarak görmemizi sağlar, ancak bu noktada da beynimiz devreye girerek bize duvarın beyaz olduğunu gösterir, bunu fotoğraf makinalarında White balance özelliğine benzetebiliriz ancak bu bilgi de her zaman doğru değildir.
Şekilde A ile B Noktası Aslında 1e1 aynı renk ( r88g88b88) ancak gözümüz bizi aldatıyor.
Duvarın gerçekte beyaz olduğunu bilmiyorsak duvarın rengini krem olarak da algılaya biliriz, bu göreceli ışık dünyası oyunlarda yoktur bu nedenle oyunlarda gördüğümüz grafikler ne kadar gerçekçi desek de hiç bilmeyen birisine göstersek bile sahte durduğunu algılayacaktır.
Oysaki ilerki yazılarda değineceğim texture yönteminde vray yardımı ile nasıl gerçek hayata en yakın texturelerin elde edileceğine değineceğim.

 
 

 

 
comments powered by Disqus