Ton uyarlamasını göz adaptasyonu ve HDR ile birlikte uygulamaya çalışıyorum. Aslında bunu zaten uyguladım ama sonuçtan memnun değilim ve sanırım yanlış bir şey yaptım.
Son görüntüm (işlem sonrası) Yarım float dokuda saklıyorum. Ayrıca 2 yardımcı dokum var. Birincisi, son mip-haritada log parlaklığını ve ortalamasını, min ve maksimum rengini saklar. İkincisi, şu şekilde hesaplanan uyum değerini depolar:
prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))
burada prevLum önceki uyum değeridir (bu dokunun boyutu 1x1'dir). Günlük parlaklığı dokusu R8B8G8 biçimindedir ve ikincisi R8'dir. Eğitimlerde yarım yüzer dokuların kullanıldığını gördüm, ancak benim durumumda çok parlak görüntülerim var (neredeyse beyaz).
Son işlem sonrası gölgelendiricisinde, bu kodu kullanarak göz adaptasyonu ve ton eşlemesi elde etmek için tüm değerleri kullanıyorum:
float autokey(in float lum) {
return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}
float hejl(in float color) {
float x = max(0.0, color - 0.004);
return (x * (A * x + B)) / (x * (A * x + C) + D);
}
float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;
result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY
result.z = hejl(result.z);
result.xyz=xyY2RGB(result.xyz);
İşte sonuçlarım:
- göz adaptasyonu ve ton eşleme açık
- sadece göz adaptasyonu
- yalnızca ton eşleme
- her şey kapalı
Ton eşlemenin ne zaman açık olduğunu görebileceğiniz gibi tavşan rengi daha soluktur. Göz adaptasyonu açıldığında son görüntü çok daha karanlıktır. Birisi bana neyin sebep olabileceğini açıklayabilir mi, çünkü burada bir şeylerin yanlış olduğunu düşünüyorum. Belki de iyi anlamadığım renk boşlukları olan bir şey? Veya ton eşleme ve göz adaptasyonundan önce uygulanan çiçeklenme?
Göz adaptasyonuyla başka bir garip davranışım daha var. Karanlık bölgelere baktığımda, arka plan (gökyüzü) daha parlak hale geliyor. Tamam ama her zaman kameranın merkezi siyah alandayken olur (kamera bu alandan ne kadar uzak olursa olsun).
Bu sayfalardaki projelerde yer alan uygulamaya dayandım: John Chapman , Nutty Software