Overdraw nedir? Neden performans sorunu yaratır ve nasıl azaltılır?

Cevap

Overdraw, aynı ekran pikselinin bir karede birden fazla kez çizilmesidir. Her ekstra çizim fragment shader'ın yeniden çalışması ve bellek bant genişliği demektir; bu yüzden özellikle mobil ve fill-rate bağımlı GPU'larda ciddi FPS kaybına yol açar.

Başlıca sebepleri:

  • Şeffaf (transparent) nesneler: Arkadan öne sıralanıp blend edilir, depth testi ile elenemez. Üst üste binen particle'lar, duman ve büyük UI panelleri en büyük kaynaklardır.
  • Opak nesnelerin yanlış sıralanması: Arkadaki nesne önce çizilirse öndeki üzerine tekrar çizer. Motorlar opakları önden arkaya sıralayarak early-Z ile gereksiz fragment'ları eler.
  • Tam ekran efektler: Her post-process pass tüm ekranı tekrar işler.
  • Alpha test (cutout) kullanan bitki örtüsü early-Z'yi kısmen bozar.

Azaltma yöntemleri:

  1. Particle sayısını ve boyutunu sınırlamak; birkaç büyük yarı saydam quad yerine daha az, daha küçük ve daha opak olanları kullanmak.
  2. Sprite'larda tight mesh (sprite'ın şeklini saran mesh) kullanmak; şeffaf köşeler de işlenir.
  3. UI'da görünmeyen panelleri gerçekten devre dışı bırakmak, tam ekran arka plan resimlerini üst üste koymamak.
  4. Gerekirse depth pre-pass kullanmak (ağır shader'lı opak sahnelerde).
  5. Post-processing'i birleştirmek veya mobilde azaltmak.

Teşhis: Unity Scene görünümündeki Overdraw modu, URP Rendering Debugger, Unreal'da Shader Complexity ve Quad Overdraw görünüm modları; GPU profiler'larda fragment sayısı.

  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