Shader Tabanlı Terrain

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 9
  • Gösterim Gösterim 281

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.364
Çözümler
439
Beğeni
4.881
Puan
1.849
Ticaret Puanı
0
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.

 
ne zaman patch dosyası geliyo bize tahmini
 
ne zaman patch dosyası geliyo bize tahmini
ezgif-49d414a14d4c10.gif
 
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.

Birkaç görsel;
Ekran görüntüsü 2025-07-30 143244.webp

Ekran görüntüsü 2025-07-30 171028.webp

Ekran görüntüsü 2025-07-30 170938.webp

Ekran görüntüsü 2025-07-30 171102.webp

ekran-g%C3%B6r%C3%BCnt%C3%BCs%C3%BC-2025-07-30-171115-webp.24985

Ekran görüntüsü 2025-07-30 172404.webp
 
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 :D

Özetle
Öncesi:
1.webp
Sonra:
2.webp

Ekstra:
3.webp

4.webp

5.webp

6.webp


Ş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++:
Genişlet Daralt Kopyala
// 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 :D

Özetle
Öncesi:
Sonra:

Ekstra:
25004 eklentisini görüntüle
25005 eklentisini görüntüle
25006 eklentisini görüntüle
25007 eklentisini görüntüle

Ş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++:
Genişlet Daralt Kopyala
// 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            // 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
ilerlenen yolda bir eksiklik sezdim o yüzden ek yapma ihtiyacı hissettim kendimde
C++:
Genişlet Daralt Kopyala
#define HSM_PATCH        //Hasan kardeşime dosyalar atılacak | (%0)
 
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.
Ekran görüntüsü 2025-08-05 221041.webp
 
Geri
Üst