- Uzun yazı için üzgünüm, ama " Şeytan ayrıntıda " çünkü bu şekilde yapmayı tercih ederim :)
Sıfırdan bir yol izleyici yazıyorum ve mükemmel dağınık (Lambertian) yüzeyler için iyi çalışıyor ( yani fırın testi - en azından görsel olarak - enerji tasarrufu sağladığını ve görüntülerin aynı için Mitsuba oluşturucuyla oluşturulanlarla eşleştiğini gösteriyor. parametreleri). Şimdi, bazı metalik yüzeyleri oluşturmak için orijinal Cook-Torrance mikroyüzlü modelinin speküler terimi için destek veriyorum. Bununla birlikte, bu BRDF'nin alınandan daha fazla enerji yansıttığı görülmektedir. Aşağıdaki örnek resimlere bakınız:
Üstteki resim: Mitsuba referansı (doğru olduğu varsayılan) görüntü: Doğrudan ışık örneklemeli yol izleme, yarım küre örneklemenin önemi, maksimum yol uzunluğu = 5, 32 tabakalı spp, kutu filtresi, yüzey pürüzlülüğü = 0,2, RGB.
Görüntünün üstünde: Gerçek görüntü: Kaba kuvvet naif yol izlemesi, düzgün yarım küre örneklemesi, maksimum yol uzunluğu = 5, 4096 tabakalı spp, kutu filtresi, yüzey pürüzlülüğü = 0.2, RGB. Oluşturma ayarlarıyla ilgili bazı farklılıklara rağmen, oluşturulmuş görüntünün daha önce gösterilen referansla birleşmeyeceği açıktır.
Bunun bir uygulama sorunu olmadığını, ancak Cook-Torrance modelinin oluşturma denklemi çerçevesinde doğru kullanımıyla ilgili bir sorun olduğunu düşünme eğilimindeyim. Aşağıda speküler BRDF'yi nasıl değerlendirdiğimi ve nasıl doğru bir şekilde yaptığımı ve olmasa da neden yapıldığını bilmek istiyorum.
Nitty-gritty ayrıntılarına girmeden önce, işleyicinin oldukça basit olduğuna dikkat edin: 1) yalnızca kaba kuvvet naif yol izleme algoritmasını uygular - doğrudan ışık örneklemesi yok, çift yönlü yol izleme yok, MLT yok; 2) tüm örnekleme, kesişme noktasının üstündeki yarımkürede aynıdır - dağınık yüzeyler için örneklemenin önemi yoktur; 3) ışın yolunun sabit bir uzunluğu 5'tir - rus ruleti yoktur; 4) ışıltı / yansıma, RGB tuples aracılığıyla bildirilir - spektral görüntü oluşturmaz.
Cook Torrance mikroyüz modeli
Şimdi, speküler BRDF değerlendirme ifadesini uygulamak için takip ettiğim yolu oluşturmaya çalışacağım. Her şey oluşturma denklemi ile başlar burada yüzeyinde kesişme noktasıdır, izleme vektörüdür , açık vektördür olduğu boyunca giden ışıma , üzerine parlaklık olaydır boyunca ve .p ağırlık o ağırlık ı L O w O L ı p W i cos θ = n ⋅ w i
Yukarıdaki integral ( yani oluşturma denkleminin yansıma terimi) aşağıdaki Monte Carlo tahmincisi burada , örneklemenin dağılımını tanımlayan olasılık yoğunluğu işlevidir (PDF). vektörler . pwk
Gerçek render için, BRDF ve PDF belirtilmelidir. Cook-Torrance modelinin spekülasyonu söz konusu olduğunda, aşağıdaki BRDF burada Yukarıdaki denklemlerde, D=1
Düzgün speküler yüzeyler oluşturmada örneklemenin kullanılması zorunlu olacaktır. Ancak, sadece makul derecede pürüzlü yüzeyleri ( ) modelleyeceğim , bu nedenle, bir süre (aynı zamanda daha uzun işleme süreleri pahasına) tek tip örneklemeye devam etmeye karar verdim. Bu durumda, PDF o (bildirim Monte Carlo tahmin içine düzgün PDF ve Cook-Torrance BRDF ile değiştirilmesiyle olduğu ile ikame edilmiş , rastgele değişken), elde
Bu yüzden, bir ışın, yansıması Cook-Torrance BRDF tarafından açıklanan, speküler bir yüzeye çarptığında değerlendirdiğim ifadedir. Alınandan daha fazla enerji yansıtıyor gibi görünen ifade budur. Neredeyse yanlış bir şeyler olduğuna eminim (veya türetme sürecinde), ancak ben sadece onu tespit edemiyorum.
İlginçtir ki, yukarıdaki ifadeyi çarparsam, doğru görünen sonuçlar elde ederim. Ancak bunu yapmayı reddettim çünkü matematiksel olarak onu haklı çıkaramam.
Herhangi bir yardım çok açığız! Teşekkür ederim!
GÜNCELLEŞTİRME
@Wolle Aşağıda da belirtildiği gibi, bu kağıt sunar yeni bir formülasyonu iyi normal dağılım fonksiyonu (NDF) yolu izleme için uygun içerir faktörü ve BRDF içerir faktörü. Böylece ve Yukarıdaki denklemlerin eklenmesi durumunda oluşturma denklemi ile sona erdi
GÜNCELLEME 2
PeteUK'un belirttiği gibi, sorumun orijinal metninde sunulan Fresnel formülasyonunun yazarı yanlış bir şekilde Cook and Torrance'a atfedildi. Yukarıda kullanılan Fresnel formülasyonu aslında Schlick'in yaklaşımı olarak bilinir ve Christophe Schlick'ten sonra adlandırılır. Sorunun orijinal metni buna göre değiştirildi.