Shadow mapping nasıl çalışır? Shadow acne, peter panning ve cascaded shadow maps nedir?

Cevap

Shadow mapping iki aşamalıdır:

  1. Sahne ışığın bakış açısından render edilir ve her piksel için ışığa en yakın derinlik bir texture'a (shadow map) yazılır.
  2. Normal render sırasında her piksel ışık uzayına dönüştürülür; pikselin ışığa uzaklığı shadow map'teki değerden büyükse, arada başka bir nesne vardır ve piksel gölgededir.

Directional ışıklar için ortografik, spot ışıklar için perspektif projeksiyon, point ışıklar için 6 yüzlü cube map kullanılır (point light gölgeleri bu yüzden pahalıdır).

Sık karşılaşılan sorunlar:

SorunSebepÇözüm
Shadow acne (yüzeyde çizgili desen)Derinlik hassasiyeti; yüzey kendini gölgelerDepth bias, normal offset bias
Peter panning (gölge nesneden kopuk)Fazla biasBias'ı dengelemek, kalın geometri
Aliasing (tırtıklı kenar)Shadow map çözünürlüğü yetersizPCF filtreleme, daha yüksek çözünürlük
Uzakta bulanık, yakında yetersizTek harita tüm görüş alanını kapsıyorCascaded Shadow Maps

Cascaded Shadow Maps (CSM): Kamera frustum'u mesafeye göre dilimlere (cascade) bölünür; yakın dilime yüksek çözünürlüklü, uzak dilimlere daha kaba haritalar düşer. Unity URP/HDRP ve Unreal'da 2–4 cascade yaygındır. Kamera hareket ettiğinde gölgelerin titrememesi için cascade'ler texel boyutuna göre snap edilir.

Performans: Shadow pass sahneyi her ışık ve her cascade için yeniden render eder; bu yüzden gölge düşüren ışık sayısı, shadow distance ve gölge yapan nesneler sınırlandırılır. Statik ışıklar için baked shadow'lar tercih edilir. Unreal 5'te Virtual Shadow Maps, Nanite ile yüksek çözünürlüklü gölgeleri farklı bir yöntemle sağlar.

  1. Forward ve deferred rendering arasındaki fark nedir? Hangisi ne zaman tercih edilir?ZorGrafik & RenderGame Dev
  2. LOD, frustum culling ve occlusion culling nedir?KolayGrafik & RenderGame Dev
  3. Draw call nedir? Batching teknikleri ile draw call sayısı nasıl azaltılır?OrtaGrafik & RenderGame Dev
  4. Rendering pipeline nasıl işler? Vertex shader ile fragment shader arasındaki fark nedir?OrtaGrafik & RenderGame Dev
  5. Texture sıkıştırma neden gereklidir? ASTC, BC ve ETC2 formatları arasındaki fark nedir?OrtaGrafik & RenderGame Dev
  6. Mipmap nedir? Ne gibi faydaları ve maliyetleri vardır?KolayGrafik & RenderGame Dev

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle