Pemetaan nada dan adaptasi mata - warna pucat dan gambar yang lebih gelap

9

Saya mencoba menerapkan pemetaan nada bersama dengan adaptasi mata dan HDR. Sebenarnya saya sudah menerapkan ini tetapi saya tidak puas dengan hasilnya dan saya pikir saya membuat kesalahan.

Gambar terakhir saya (sebelum postprocessing) saya simpan dalam tekstur setengah mengambang. Saya juga memiliki 2 tekstur pembantu. Yang pertama menyimpan luminance log dan rata-rata, min dan warna maksimumnya di mip-map terakhir. Yang kedua menyimpan nilai adaptasi yang dihitung sebagai:

prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))

di mana prevLum adalah nilai adaptasi sebelumnya (ukuran tekstur ini adalah 1x1). Tekstur log luminance adalah format R8B8G8 dan yang kedua adalah R8. Dalam tutorial saya melihat bahwa tekstur setengah float digunakan tetapi dalam kasus saya saya punya gambar terlalu terang (hampir putih).

Dalam shader postprocess akhir saya menggunakan semua nilai yang ada untuk mendapatkan adaptasi mata dan pemetaan nada menggunakan kode ini:

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);

Dan inilah hasil saya:

  • adaptasi mata dan pemetaan nada dihidupkan adaptasi mata dan pemetaan nada
  • hanya adaptasi mata adaptasi mata
  • hanya pemetaan nada pemetaan nada
  • semuanya mati mati

Seperti yang Anda lihat ketika pemetaan nada diaktifkan, warna kelinci lebih pucat. Dan ketika adaptasi mata dihidupkan gambar akhir jauh lebih gelap. Dapatkah seseorang menjelaskan kepada saya apa yang dapat menyebabkan itu, karena saya pikir ada sesuatu yang salah di sini. Mungkin itu sesuatu dengan ruang warna yang saya tidak mengerti dengan baik? Atau dengan mekar yang diterapkan sebelum pemetaan nada dan adaptasi mata?

Saya juga memiliki perilaku aneh lain dengan adaptasi mata. Saat saya melihat area gelap, latar (langit) menjadi lebih cerah. Tidak apa-apa tapi itu selalu terjadi ketika pusat kamera berada di area hitam (tidak peduli seberapa jauh kamera dari area ini).

Saya mendasarkan pada implementasi termasuk dalam proyek-proyek di halaman ini: John Chapman , Nutty Software

Harry
sumber
Sebagai permulaan, Anda harus mencoba menonaktifkan bloom dan hanya bekerja dengan apa yang benar-benar diperlukan. Juga jika pemetaan nada menyebabkan warna putih Anda menjadi lebih gelap, maka itu mungkin berarti, bahwa itu tidak memetakan dari rentang 0 - 1, dan Anda harus mengubahnya, atau menyesuaikan pencahayaan Anda.
akaltar
Kerja bagus, apakah Anda memiliki tautan ke proyek Anda?
danijar
Terima kasih. Saat ini saya tidak memiliki tautan apa pun. Tetapi saya akan menerbitkan beberapa video di YouTube atau file .exe ketika saya akan menyelesaikan tesis master saya.
Harry

Jawaban:

1

Anda hanya tidak perlu mekar, atau blur, atau kedalaman bidang.

Efek-efek itu muncul di atas segalanya. Cobalah untuk bereksperimen dengan nilai juga.

r3aktormk
sumber
Terima kasih, saya akan melihatnya lebih dekat ketika saya akan menemukan waktu.
Harry