PBR (Physically Based Rendering) nedir? Metallic/roughness iş akışındaki temel parametreler nelerdir?
Cevap
PBR, ışığın yüzeylerle etkileşimini fiziksel olarak makul modellerle hesaplayan render yaklaşımıdır. Amacı, materyallerin her ışık koşulunda tutarlı görünmesidir; sanatçı "bu sahnede iyi görünsün" diye değil, materyalin gerçek özelliklerine göre değer girer.
Temel ilkeler:
- Enerji korunumu: Yüzey aldığından fazla ışık yansıtamaz; yansıma (specular) arttıkça yayılım (diffuse) azalır.
- Microfacet teorisi: Yüzey mikroskobik düzeyde küçük aynalardan oluşur; roughness bu aynaların ne kadar dağınık olduğunu belirler.
- Fresnel: Sığ açılardan bakıldığında tüm yüzeyler daha fazla yansıtır.
- Yaygın BRDF: Cook-Torrance (GGX dağılımı + Smith geometri terimi + Schlick Fresnel).
Metallic/roughness texture setleri:
| Harita | Anlamı |
|---|---|
| Base Color (Albedo) | Yüzeyin rengi; içinde ışık veya gölge bilgisi olmamalı |
| Metallic | 0 dielektrik (plastik, ahşap), 1 metal; arası nadiren kullanılır |
| Roughness | 0 ayna gibi pürüzsüz, 1 tamamen mat |
| Normal | Yüzey detayı (mikro geometri) |
| Ambient Occlusion | Girintilerde ortam ışığının azalması |
| Emissive | Kendinden ışık |
Metallerin diffuse bileşeni yoktur; renkleri specular yansımalarından gelir. Dielektriklerin specular yansıması renksiz ve yaklaşık %4'tür.
Pratik notlar:
- PBR'nin doğru görünmesi için image-based lighting (reflection probe, sky/environment map) şarttır; aksi halde metaller siyah görünür.
- Doğru renk uzayı: Base color sRGB, metallic/roughness/normal ise linear texture olarak import edilmelidir.
- Unity bazen roughness yerine smoothness (1 - roughness) kullanır; Unreal ise roughness kullanır.
- Mobilde PBR'nin sadeleştirilmiş versiyonları kullanılır (ör. URP Simple Lit veya bake edilmiş ışık).
İlgili Grafik & Render soruları
- Forward ve deferred rendering arasındaki fark nedir? Hangisi ne zaman tercih edilir?
- LOD, frustum culling ve occlusion culling nedir?
- Draw call nedir? Batching teknikleri ile draw call sayısı nasıl azaltılır?
- Rendering pipeline nasıl işler? Vertex shader ile fragment shader arasındaki fark nedir?
- Texture sıkıştırma neden gereklidir? ASTC, BC ve ETC2 formatları arasındaki fark nedir?
- Mipmap nedir? Ne gibi faydaları ve maliyetleri vardır?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.