Kompensasi untuk kehilangan energi pada model BSDF mikrofacet hamburan tunggal

11

Model permukaan berbasis-mikro-hamburan tunggal seperti BRDF Torrance-Sparrow asli atau model turunan seperti BSDF untuk permukaan dielektrik kasar oleh Walter et al. mengabaikan inter-refleksi cahaya antara mikrofacet, yang mengakibatkan hilangnya energi yang menyebabkan penggelapan terutama pada nilai-nilai kekasaran yang lebih tinggi.

Masalahnya dapat dengan mudah ditunjukkan dengan menggunakan uji tungku. Gambar-gambar berikut menunjukkan perilaku penerapan saya pada mikrofaset konduktif BRDF menggunakan model Smith dan distribusi GGX untuk parameter kekasaran dari 0,2 ke 1,0 (koefisien Fresnel sengaja diatur ke 1 di sini untuk membuat masalah lebih mudah dilihat):

kekasaran 0.2 kekasaran 0.4 kekasaran 0,6 kekasaran 0.8 kekasaran 1.0

Uji tungku dari dielektrik kasar (IoR 1,51) BSDF menggunakan model Smith dan distribusi mikrofacet GGX untuk parameter kekasaran 0,2 hingga 1,0:

kekasaran 0.2 kekasaran 0.4 kekasaran 0,6 kekasaran 0.8 kekasaran 1.0

Eric Heitz dkk. baru-baru ini mengusulkan model multi-hamburan yang memecahkan masalah yang gelap dengan menyelesaikan interaksi cahaya sepenuhnya, tetapi ada masalah kinerja karena sifat stokastik dari rutinitas evaluasi seperti yang metioned oleh Heitz sendiri di forum LuxRender .

Apakah ada metode kompensasi yang diketahui untuk memulihkan energi yang hilang dari model hamburan tunggal? Tidak perlu benar secara fisik, tetapi setidaknya tidak melanggar kemasukakalan fisik (resiproksi Helmholtz dan konservasi energi) terlalu banyak dan, idealnya, tanpa perlu parameter penyesuaian tangan.

Dalam Disney BSDF , ada komponen parametrized yang disebut "kemilau" (pada dasarnya sebuah lobus glossy berbasis Fresnel) yang dapat digunakan untuk kompensasi gelap pada tepian, tetapi seperti yang mereka sebutkan dalam kursus Siggraph 2015, itu adalah metode yang sangat ad hoc:

"... ini sangat perkiraan, dan tidak bekerja dengan baik untuk nilai-nilai kekasaran lainnya ..."

Komentar Eric Heitz di forum LuxRender yang disebutkan di atas juga menyarankan penggunaan beberapa peretasan kompensasi, tetapi, sayangnya, tidak masuk ke perincian:

Sepengetahuan saya, Anda dapat menggunakan beberapa peretasan yang lebih sederhana untuk meningkatkan konservasi energi dalam model hamburan tunggal (seperti men-tweaker Albedo). Namun, jika Anda melakukannya, Anda tidak bisa mendapatkan bahan yang menghemat energi dengan sempurna (misalnya kaca kasar putih sempurna) tanpa memutus hubungan timbal balik dari BSDF.

ivokabel
sumber

Jawaban:

8

Setahu saya, tidak ada cara yang mudah dan analitik untuk memulihkan energi yang hilang dalam model hamburan tunggal. Teknik-teknik sebelumnya mencegah kehilangan energi dan memasukkannya kembali ke dalam BRDF sebagai komponen seperti-menyebar:

Apa yang mereka usulkan adalah energi yang konservatif dan timbal balik, dan mungkin cara paling sederhana untuk memperbaiki kegelapan visual akibat hilangnya energi. Kelemahan utama adalah bahwa karena kehilangan energi tidak memiliki ekspresi analitik, itu harus dihitung dan disimpan dalam tabel pencarian.

Eric Heitz
sumber