furkanxdgs4

Yeni üye
14 May 2016
153
9
0
Belirtilmemiş
Merhaba. Benim bir sorum olucak. Texture ve kaplama/materyal işine merak salmış durumdayım ve texture türlerini vs öğrenmeye çalışıyorum. Bu sırada oyun içi çimenlerin nasıl yapıldığına dair küçük araştırmalar yaptım ve öğrendiğime göre aslında küçük ve tek poligonlu mesh'ler oluşturulup yüzeyine çimen texture'ü atılarak aslında ekranda binlerce karecik dururken materyal içinde texture üzerinden kareciğin çoğu kısmını saydam, görünmesi gereken kısmını da tek dal çimen olarak gösterip aslında göz yanılmasına uğratıyorlarmış bizi. Bunu biliyordum, ancak aklıma nedense BF1 ve Horizon: Zero Dawn'daki kayaların üzerlerindeki "Moss Layer"lar yani yosun izleri geldi ve nasıl yaptıklarını düşünmeye başladım.
Yosun izlerinin gerçekten çimen gibi görünmesini sağlamak için kayanın üzerine ayrıca poligonlar ekleyip o poligonları da klasik çim sistemindeki gibi mi ayarladılar? Yani basitçe anlatmak gerekirse kayanın üzerinden UE4'deki gibi Grass Tool ile mi geçtiler? Böyle olma ihtimali var ancak ben çok fazla inanmıyorum çünkü o kadar küçükler ki, tekrardan küçük mesh'lerle boyamaya uğraşmaları Guerilla Games gibi teknik konulara hakim bir ekipten beklenilemeyecek kadar basit ve düz mantık bir şey. Özellikle Uncharted'ın her yerde "Real-Time Grass Physics" diye videoları çıkarılan ama aslında Content Browser projesindeki Vertex Shader materyalleriyle 1-2 gün uğraşılıp yapılabilecek kadar basit olan teknik detaylarının oyuncuları cezbetmesi; aslında basit tekniklerin göz illüzyonu gerçekleştirecek şekilde düzenlendiğinde ne kadar büyük şeyler başarılabileceğinin bir göstergesi diye düşünüyorum.
Ek olarak Guerilla Games ekibinin "Level Desing" hakkında çektikleri bir GDC videosunu gördüm ve ekip, aslında bizim de kullandığımız "Layered Foliage" sistemini yani Terrain'i bir Layer ile boyadıktan sonra sistemin otomatik olarak mesh'leri yerleştirmesine yarayan bir sistem kullanıyorlar. Yani grafiksel teknikleri olabildiğince node ve code'a döken böyle bir ekibin özellikle gidip kayaların üzerini Grass Tool ile boyaması beni gerçekten hayal kırıklığına uğratır.
Aklıma şöyle bir teknik geliyor; bir şekilde 3D Materyal oluşturmayı yani objeden bağımsız olarak durabilecek bir materyal yapmayı çözdüler. Yani obje üzerinde yeni ve küçük bir obje (mesh) oluşturup ona çimen görüntüsü vermek yerine obje kaplandığı zaman materyalin otomatik olarak objenin üzerine doğru katlanacağı bir sistem oluşturmayı başardılar. Böyle bir teori öne sürüyorum çünkü çoğu çimenin etkileşime kapalı olması ve her objenin üzerinde objenin fiziksel durumuna göre 3D bir şekilde bir şeylerin oluşmasının optimizeli bir yöntemi aklıma gelmiyor.
Fizik bazlı Renderlama (PBR) materyalleri az çok biliyorum ancak normal map'lerle vs. uğraşarak bu tip bir görüntünün elde edilip edilmeme ihtimalini bilmiyorum. Şuana kadar öğrendiklerime göre; Diffuse Texture üzerinden renklerin CrazyBump tarafından algılanıp çeşitli haritalarının çıkarılması ve bu sayede materyal üzerinde girinti çıkıntı yani sonuç olarak obje üzerinde girintili çıkıntılı bir görünüm elde edilmesinin PBR olduğunu anladım, ancak bu yöntemle bu tarz obje üzerinde yeni bir objemsi görüntü elde edilmesini hiç duymadım. Bu konu hakkında bilgisi olan var mı acaba?
Not: Tabii ki bu kadar büyük ekiplere kafa tutmak için bu yöntemi öğrenmeye çalışmıyorum. Zaten yazımdan anladıysanız çok kapsamlı bir bilgi birikimim yok. Sadece aklımdan geçen ve teknik altyapısını öğrenmeye merak ettiren bir konu. Yoksa daha düzgün ev bile yapamıyorum/yapmayı denemedim ama 3D materyal gibi bir sistemin varlığını merak ettim. Sadece öğrenmek amaçlıdır.
Örnek görsel:[img=921x768]http://i.hizliresim.com/BrzakQ.png[/img]
 
goodluck' Alıntı:
Normal map galiba.

Normal map'lerin bu kadar kaliteli bir şekilde kullanılabileceğini düşünmüyorum. 
Aklıma tek yöntem geliyor; Blender'da UV'lere yanlış map atayınca texture'ler yanlış yerde görünüyorsa bunu bir şekilde düzenleyerek materyalin obje yüzeyinin üstünde objeden bağımsız bir şekilde görünmesini sağlayabiliriz belki. Ama üstün kaliteli materyaller ve objeler üretmeden önce bu konuyla uğraşmam yanlış olur. İlk olarak basit konular üzerinde kendimi geliştirmeliyim.
 
Obje üzerinde 3D geliştirmeler yapmak için belirli haritalara ihtiyacınız vardır. Bu haritalar üzerinden bir obje farklı şekiller alabilir. Bu haritalar matematiksel kombinasyonlar ile üç boyutlu düzlemde yeni bir şekil alır. Belirli kaplamaların renk kanallarını bir objeye uygularsanız farklı bir görünüme sahip olur. 

Bazı haritalama teknikleri:

https://en.wikipedia.org/wiki/Bump_mapping
https://en.wikipedia.org/wiki/Normal_mapping
https://en.wikipedia.org/wiki/Parallax_mapping
https://en.wikipedia.org/wiki/Heightmap