Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Terrain de elendi..
Render yapısı tamamen shadera aktarıldı.
Şu an için sadece doku işleniyor. Sırada gölgeleri çizmek var.
Test videosunda ışık hareketinden sadece terrain etkileniyor. Bunun sebebi; diğer objelerin ışık hesaplaması ile terrainin ışık hesaplaması (şu an için) ayrı olmasıdır.
Karakter ve obje gölgeleri büyük oranda tamamlanıp shaderlara taşındı. Henüz ağaçlara dokunmadım, onları en sona bekletiyorum.
Şu an için çift katmanlı shadowmap hazırlayabildim. Altyapının %100 oturması için hala bazı ufak sorunları mevcut, ancak en önemli hesaplamaların bulunduğu kısımlar tamamlandı. Eğer şu anki hali yapmayı düşündüğüm düzenlemeler için yetersiz gelirse, shadowmapi çift katmanlıdan 4 katmanlıya çıkarmayı deneyeceğim.
Kısaca şu ana kadar yapılanlar;
Karakterlerin gölgesi->zemin gölgesi,
obje->karakter gölgesi,
karakter gölgesi->obje,
obje gölgesi->obje gölgesi
zemin gölgesi->yüzeydeki her şeyin gölgesi
Geçişleri sağlandı ve yüksek kalite için mümkün olduğunca hassas değerlerde tutuldu.
Tek ama önemli güncelleme:
Arazinin kendi kendini gölgelememesi sorunu çözüldü. Ayrıca, zenaris altyapısını geliştirdiğim zamanlardan beri beni tilt eden bir sorun daha giderildi. O da gölgelerin eğimli yüzeylerde uçmağa varırcasına uzayıp sünmesiydi.
Şimdi ise buna bağlı olan hesaplamalar daha tutarlı ve mümkün olduğunca doğal görüntü verecek şekilde ayarlandı.
İnsan kendisi yapınca daha kontrollü oluyor demek ki
Özetle
Öncesi:
Sonra:
Ekstra:
Şimdi sıra ağaç gölgelerine geldi, Ondan sonra işler biraz daha hızlanacak diye düşünüyorum.
Şu ana kadar ilerlenen yol:
C++:
// Aktif
#define MATERIAL_SHADER // TÜM objeleri kapsar | (%100)
#define EFFECTS_SHADER // Tüm efektleri kapsar | (%100)
#define TERRAIN_SHADER // Tüm terrain dokularını kapsar (snow, lav vb.) | (%100)
#ifdef TERRAIN_SHADER
// Terrain'in shaderını kullanır.
// Fakat C++'da TERRAIN_SHADER'dan bağımsız yürütülür. | (%95) -> kaiserNot1
#define TERRAIN_SHADOW
#endif
#define WATER_SHADER // KaiserSF'den hazır alınacak | (%100)
#define HDR_SHADER // Tüm Shaderları kapsar - KaiserSF'den hazır alınacak | (%100)
#define SUN_SHADER // KaiserSF'den hazır alınacak | (%100)
#define SKY_SHADER // KaiserSF'den hazır alınacak | (%100)
#define DYNAMIC_WEATHER // KaiserSF'den hazır alınacak | (%100)
///////////////////////////////////////////////////////////////
// Beklemede
#define TREE_SHADOW // Sadece gölge veya tamamen shader olacak
#define INTERFACE_SHADER // "Tüm" UI nesneleri shadera aktarılacak
#define ENV_SHADER // Sahip olduğu tüm veriler shadera aktarılacak // .msenv kullanımı kaldırılabilir
.. // Sonrasına bakılacak
Tek ama önemli güncelleme:
Arazinin kendi kendini gölgelememesi sorunu çözüldü. Ayrıca, zenaris altyapısını geliştirdiğim zamanlardan beri beni tilt eden bir sorun daha giderildi. O da gölgelerin eğimli yüzeylerde uçmağa varırcasına uzayıp sünmesiydi.
Şimdi ise buna bağlı olan hesaplamalar daha tutarlı ve mümkün olduğunca doğal görüntü verecek şekilde ayarlandı.
İnsan kendisi yapınca daha kontrollü oluyor demek ki
Yukarıdaki ilk güncelleme yorumumda bahsettiğim gibi ağaç gölgelerini bilerek en sonra bekletmiştim.
Şimdi Shader Tabanlı SpeedTree sebebiyle ağaçlar da gölge haritasına dahil edildi ve artık terrain tamamlandı diyebiliriz.
Güncelleme:
Terrain sonrasında yapılan gölgeleme işlemleri shadowmapte özellikle arazinin kendi kendini gölgelemesinde bazı tutarsızlıklar yaratıyordu. Aşağıdaki videoda 20.saniyeden itibaren zemine dikkat ederseniz patlamaları görebilirsiniz
Aşağıdaki kısa video ise son halidir:
C++:
#define NEW_MATRIX_MANAGEMENT /* Dx9'un ortak state/matrix havuzundan tüm bağları koparmak için. Artık GetTransform/SetTransform yok.*/
#define NEW_SHADOW_FRUSTUM /* "GÖLGELER İÇİN": Gölgelere özgü culling-frustum yapısı. Artık eskisi kullanılmıyor.*/
#define DISABLE_LOD /* Üsttekilere ek: shaderlarda artefaktlara sebep olduğundan devredışı bırakıldı.*/
Özetlemek gerekirse; artık terrain üzerindeki tüm gölgeler c++ tarafında metin2'nin varsayılan culling ve frustum yapısını değil, kendileri için oluşturulmuş olan benzer yapıları kullanacaklar. Bu da gölgelerin artık kamera matrislerine değil, önceden hesaplanmış ışık matrislerine bağlı olduğu anlamına gelir. Dolayısıyla artık patlama,kırılma,kaybolma veya benzeri pürüzlerin gerçekleşme ihtimali ortadan kaldırılmış oldu.
Özellikle speedtree'yi shadera geçirdikten sonra bazı sorunlar baş göstermeye başlamıştı ve günlerdir bu yüzeysel hatalarda uğraşıyordum.
Şimdi artık speedtree ve terraine bağlı sorunların tamamı çözülmüş olduğuna göre projede kaldığım yerden devam edeceğim.
Güncelleme:
Terrain sonrasında yapılan gölgeleme işlemleri shadowmapte özellikle arazinin kendi kendini gölgelemesinde bazı tutarsızlıklar yaratıyordu. Aşağıdaki videoda 20.saniyeden itibaren zemine dikkat ederseniz patlamaları görebilirsiniz
Aşağıdaki kısa video ise son halidir:
C++:
#define NEW_MATRIX_MANAGEMENT /* Dx9'un ortak state/matrix havuzundan tüm bağları koparmak için. Artık GetTransform/SetTransform yok.*/
#define NEW_SHADOW_FRUSTUM /* "GÖLGELER İÇİN": Gölgelere özgü culling-frustum yapısı. Artık eskisi kullanılmıyor.*/
#define DISABLE_LOD /* Üsttekilere ek: shaderlarda artefaktlara sebep olduğundan devredışı bırakıldı.*/
Özetlemek gerekirse; artık terrain üzerindeki tüm gölgeler c++ tarafında metin2'nin varsayılan culling ve frustum yapısını değil, kendileri için oluşturulmuş olan benzer yapıları kullanacaklar. Bu da gölgelerin artık kamera matrislerine değil, önceden hesaplanmış ışık matrislerine bağlı olduğu anlamına gelir. Dolayısıyla artık patlama,kırılma,kaybolma veya benzeri pürüzlerin gerçekleşme ihtimali ortadan kaldırılmış oldu.
Özellikle speedtree'yi shadera geçirdikten sonra bazı sorunlar baş göstermeye başlamıştı ve günlerdir bu yüzeysel hatalarda uğraşıyordum.
Şimdi artık speedtree ve terraine bağlı sorunların tamamı çözülmüş olduğuna göre projede kaldığım yerden devam edeceğim.
Karakter ve obje gölgeleri büyük oranda tamamlanıp shaderlara taşındı. Henüz ağaçlara dokunmadım, onları en sona bekletiyorum.
Şu an için çift katmanlı shadowmap hazırlayabildim. Altyapının %100 oturması için hala bazı ufak sorunları mevcut, ancak en önemli hesaplamaların bulunduğu kısımlar tamamlandı. Eğer şu anki hali yapmayı düşündüğüm düzenlemeler için yetersiz gelirse, shadowmapi çift katmanlıdan 4 katmanlıya çıkarmayı deneyeceğim.
Kısaca şu ana kadar yapılanlar;
Karakterlerin gölgesi->zemin gölgesi,
obje->karakter gölgesi,
karakter gölgesi->obje,
obje gölgesi->obje gölgesi
zemin gölgesi->yüzeydeki her şeyin gölgesi
Geçişleri sağlandı ve yüksek kalite için mümkün olduğunca hassas değerlerde tutuldu.
Güncelleme:
Terrain sonrasında yapılan gölgeleme işlemleri shadowmapte özellikle arazinin kendi kendini gölgelemesinde bazı tutarsızlıklar yaratıyordu. Aşağıdaki videoda 20.saniyeden itibaren zemine dikkat ederseniz patlamaları görebilirsiniz
Aşağıdaki kısa video ise son halidir:
C++:
#define NEW_MATRIX_MANAGEMENT /* Dx9'un ortak state/matrix havuzundan tüm bağları koparmak için. Artık GetTransform/SetTransform yok.*/
#define NEW_SHADOW_FRUSTUM /* "GÖLGELER İÇİN": Gölgelere özgü culling-frustum yapısı. Artık eskisi kullanılmıyor.*/
#define DISABLE_LOD /* Üsttekilere ek: shaderlarda artefaktlara sebep olduğundan devredışı bırakıldı.*/
Özetlemek gerekirse; artık terrain üzerindeki tüm gölgeler c++ tarafında metin2'nin varsayılan culling ve frustum yapısını değil, kendileri için oluşturulmuş olan benzer yapıları kullanacaklar. Bu da gölgelerin artık kamera matrislerine değil, önceden hesaplanmış ışık matrislerine bağlı olduğu anlamına gelir. Dolayısıyla artık patlama,kırılma,kaybolma veya benzeri pürüzlerin gerçekleşme ihtimali ortadan kaldırılmış oldu.
Özellikle speedtree'yi shadera geçirdikten sonra bazı sorunlar baş göstermeye başlamıştı ve günlerdir bu yüzeysel hatalarda uğraşıyordum.
Şimdi artık speedtree ve terraine bağlı sorunların tamamı çözülmüş olduğuna göre projede kaldığım yerden devam edeceğim.