Ashenfall SF | Devlog

Kaptan Yosun

Co-Co Admin
Moderatör
Geliştirici
Yardımsever Üye
Usta Üye
Mesaj
1.595
Çözümler
57
Beğeni
3.221
Puan
1.839
Ticaret Puanı
0

Ashenfall SF
intro.webp

Hobi projem artık içime sinen bir hale geldiği için bu günlüğü açıyorum. Henüz gölgeler hariç bir görsel değişime gitmedim.

Temel özeliikler
Taban:
Genişlet Daralt Kopyala
* Mainline
* Visual Studio 2026
* Windows Server
* World Editor

Client Özellikleri
Client:
Genişlet Daralt Kopyala
* DirectX 11
* GPU Skinning
* 4 Kaskatlı CSM(Cascaded Shadow Mapping) Sistemi
* DirectXMath (https://github.com/microsoft/directxmath)

:mmt-resimler:

4 Kaskatlı CSM(Cascaded Shadow Mapping) Sistemi

World Editor (DirectX 11)
WorldEditor.webp


Güncellemelerde görüşmek üzere
 
Son düzenleme:
Bina ve ağaç gölgeleri bu kadar net olunca gerçeklikten uzakmış gibi geliyor belki de öyle değildir kişisel bir yorum, başarılar.
 
Bina ve ağaç gölgeleri bu kadar net olunca gerçeklikten uzakmış gibi geliyor belki de öyle değildir kişisel bir yorum, başarılar.
Görüşün için teşekkürler, hissettiğin şey normal. Şu anki aşamada gölgelerin çözünürlüğü çok arttığı ve kenar filtrelemesi sabit bir yumuşatma uyguladığı için, ağaç tepesi gibi yüksek nesnelerin gölgeleri de zemine çok yakınmış gibi keskin düşüyor.
Bir sonraki optimizasyon ve cila aşamasında mesafeye bağlı yumuşatma ekleyerek gölgelerin doğal bir geçişe kavuşmasını sağlayacağım
 
[Devlog] DirectX 11 Dinamik Gölge İyileştirmesi: Directional PCSS (Percentage-Closer Soft Shadows) & Contact Hardening

Ashenfall grafik hattında gölge gerçekçiliğini artırmak ve klasik CSM (Cascaded Shadow Maps) kurulumlarındaki yapay "karton gibi keskin" gölge görünümünü tamamen ortadan kaldırmak adına gölge filtreleme mimarisini baştan aşağı yeniledim.

Gölge hattına modern AAA motorların kullandığı hibrit bir Directional PCSS (Percentage-Closer Soft Shadows) ve IGN (Interleaved Gradient Noise) rotasyonlu Poisson filtreleme sistemi entegre ettim.

Geleneksel Gölgeler vs. PCSS Nedir?Klasik motorlarda (ve projenin eski gölge sisteminde) sabit bir filtre yarıçapı kullanılır; bu yüzden metrelerce yukarıdaki ağaç yaprağının gölgesi ile karakterin toprağa basan ayağının gölgesi tamamen aynı keskinlikte çizilir. Gerçek dünyada ise ışık kaynağının (güneşin) açısal çapından dolayı, nesne gölgenin düştüğü zeminden uzaklaştıkça gölgenin sınırları flulaşır (penumbra etkisi).

Görselde Neler Değişti? (Nereye Bakmalısınız?)
  • Ağaç Gövdesi ve Canopisi: Ağacın toprağa yakın olan kütük gölgesinin ne kadar keskin başladığına, yukarıdaki dallara ve yapraklara doğru çıktıkça zemine düşen gölgenin nasıl pürüzsüz ve kademeli bir şekilde dağılarak yumuşadığına dikkat edin.
  • Binek Temas Noktaları: Karakterin ve bineğin ayak diplerinde gölge kopması (peter-panning) yaşanmıyor; temas noktaları doğrudan yere oturuyor.
  • Yüksek Mimari Yapılar: Sağ taraftaki binanın çatısının yüksekte kalan saçak gölgeleri doğal bir yayılımla yumuşarken, alçak kısımlar netliğini koruyor.
Performans & Optimizasyon:Bu hesaplama GPU'da kontrolsüz çalıştırıldığında ağır bir blocker-search maliyeti doğurur. Bunu engellemek için mimariyi Cascade-Gating ile kurguladım:

  • Fiziksel penumbra hesaplaması yalnızca gözün detayları seçebildiği ilk iki kademede (Cascade 0 ve 1) tam blocker taramasıyla çalışıyor.
  • Uzak mesafeler (Cascade 2 ve 3) otomatik olarak donanım seviyesinde optimize edilmiş standart filtrelemeye düşüyor.
  • Doğrudan güneş alan açık alanlar için erken çıkış (early-out) optimizasyonu eklediğimden, gölge almayan bölgelerde doku okuma maliyetini yarı yarıya düşürdüm.
Eski Metod (Uniform PCF)
shadow_uniformPCF.webp


Yeni Metod (Directional PCSS with Cascade-Gating)
Shadow_PCSS.webp
 
Geri
Üst