Cook-Torrance BRDF'i izleyen yol


27

- 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:

Mitsuba referans görüntüsü.

Ü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.

İşlenmiş görüntü

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 θ = nw i

Lo(p,wo)=Le+ΩLi(p,wi)fr(wo,wi)cosθdω
pwowiLowoLipwicosθ=nwi

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

1Nk=1NLi(p,wk)fr(wk,wo)cosθp(wk)
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

fr(wi,wo)=DFGπ(nwi)(nwo)
D=1m2(nh)4exp((nh)21m2(nh)2)
F=cspec+(1cspec)(1wih)5
G=min(1,2(nh)(nwo)woh,2(nh)(nwi)woh)
h=wo+wi|wo+wi| ve speküler renktir. haricindeki tüm denklemler orijinal kağıttan çıkarıldı. Schlick'in yaklaşımı olarak da bilinen , gerçek Fresnel terimine etkili ve daha az hassas bir yaklaşımdır.cspecFF

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 m0.2

p(wk)=12π
wiwk
1Nk=1NLi(p,wk)(DFGπ(nwk)(nwo))cosθ(12π)
Şimdi iptal edip toplamı kaldırabiliriz çünkü kesişme noktasından sadece bir rasgele ışın çekiyoruz. Biz ile sonuna kadar yana , daha ayrıntılı olarak basitleştirebilir π
2Li(p,wk)(DFG(nwk)(nwo))cosθ
cosθ=nwk
2Li(p,wk)(DFGnwo)

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.1π

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 D1πfr14

Dnew=1πm2(nh)4exp((nh)21m2(nh)2)
frnew(wi,wo)=DFG4(nwi)(nwo)
π2Li(p,wk)(DnewFGnwo)
hangi güzel çalıştı! Not: Şimdi mesele, ve için yeni formülasyonun enerji tasarrufunun korunmasına nasıl yardımcı olduğunu daha iyi anlamak ... ama bu başka bir konudur.Dfr

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.


Hala bu siteyi ziyaret edip etmediğinizden emin değilim, ancak Fresnel denkleminizle ilgili bir sorum var ve buraya
postaladım

Yanıtlar:


12

Göre , bu kağıt , daki içinde olmalıdır : böylece 1πfr14

fr=DFG4(nwi)(nwo),
π2Li(p,wk)(DFGnwo).

Bu diğer formülasyonu Cook-Torrance BRDF için gördüm, burada denklemin yerine ile çarpılması . Ancak, sonuçta, bu değişikliğin etkisi çok küçüktür, çünkü final denkleminde mevcut olan 2 yerine 1,57 koyarız ( ). Burada bir test yaptım (sadece ... durumunda) ve gerçekten sorun devam etti. 141π=π2
Christian Pagot

@Capagot faktörü bazen ışık kaynağı yoğunluklarına dahil edilir (konvansiyonel olarak) ve BRDF'lerin dışında bırakılır; ayrıca bu soruya bakınız . Ancak, gerçek zamanlı görüntülemede, yol izlemeden daha yaygındır. Ayrıca Lambertian testlerinizin Mitsuba ile mükemmel bir şekilde eşleştiğini söylüyorsunuz, bu yüzden sorunun bu kadar düşük olması muhtemel görünüyor ... yine de araştırmaya değer olabilir. 1/π
Nathan Reed

@ Capapot Dağıtım işlevinizde eksik olduğunu düşünüyorum . I bağlantılı kağıdı çok olan, kullanmak Beckmann dağılımında bu faktör içerir içinde ve içinde hile yapmak gerekir. 1πD14fr1πD
WOLLE

@NathanReed pi'yi rengin içine gömmekle ilgili makaleyi okudum . Ancak, bahsettiğiniz nedenle, bunun sorun olmadığına ikna oldum. π
Christian Pagot

@wolle Kesinlikle! Aslında, daha önce bahsettiğin makaleye hızlıca baktım, ama bunu farketmedim! Sadece için hesabıma uygulanmasını deđiţtirdiđiniz içinde ve içinde ve her şey artık bir cazibe gibi çalışır! Bu sorunun cevabını içeren bir güncelleme ekleyeceğim! Teşekkür ederim! 1πD14fr
Christian Pagot

13

Bunu ve terimleri arasındaki karışıklığı merak eden herkes için gönderiyorum .1π14

Terimi orijinal Mutfak Torrance referanstan bir hatadır.1π

Aslında, , yansıtılan katı açıdan normal katı açıya dönüşümün Jacobian'ından gelmektedir.14(nωi)

Çoğu makaleye göre, ilk önce terimi [Torrance, 67] 'de ortaya çıktı .14

Terimin güzel bir açıklaması için, [Nayar, 91] , Ek D'ye bakmalısınız . Aynı kağıttan bir görüntü:

dω=dωr4cosθi

Ayrıca, Joe Stam Nayar terimini [Stam 01, Pürüzlü Yüzeyler Tarafından Sınırlanan Bir Deri Tabakası için Bir Aydınlatma Modeli], ek B ile aynı fikirdeydi.14

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.