Speküler gölgelemede neden R (phong) yerine H (blinn) kullanılıyor?


22

Bunun için iyi bir sebep bulamıyorum. Phong'da kullanılan yansıma vektörünün fizikte basit bir temeli vardır. Ancak, blinn'de kullanılan yarı vektörün görünüşte rasyonel bir temeli yoktur ve uygun bir yansıma oluşturmaz. Ve yine de, her "fiziksel temelli" gölgeleme işlevinde kullanılır. Bunun için iyi bir fiziksel temel varsa, bilmek isterim.

Bulduğum şey birkaç nedenden kaynaklanıyor:

Daha hızlı - bu konuda karışık bilgiler var, ancak bu yüzden 1998 yılında çok iyi bir sebep olurdu.

90 dereceden daha yüksek açıları daha iyi ele alıyor - bunun tek nedeni, phong teriminin yanlış kullanılmasından kaynaklanıyor. Yansımanın ve görüntünün nokta ürünü -1 ​​ile +1 arasında bir açı verir. Genellikle bu açı 0 ila 1'e kelepçelenir, bu 90 derecelik problemin doğrudan nedenidir. Sıkıştırma yerine açıyı yeniden normalleştirin ve tam 180 derece kapsama elde edin. Basit bir x * 0.5 + 0.5 işleminin 40 yıl boyunca grafik dünyasından uzaklaştığına inanmayı reddediyorum.

kenarları daha iyi idare eder - “problem” kenarı da blinn çözümünde, daha düşük bir dereceye kadar mevcuttur. Asıl sebep, “fiziksel temelli” herhangi bir gölgelendirici için esas olması gereken, sonlandırıcının alan aydınlatmasının hatalı simülasyonudur. Ancak daha basit durumlarda bile bir sigmoid işlevi, yumuşak bir sonlandırıcı çizgisine doğru bir şekilde yaklaşabilir. Bir lambert terimine çarpmak, speküler terimi yanlış bir şekilde zayıflattığından yanlıştır, bu fresnel bir terimi iptal edebilir ve başka hatalara yol açabilir.

Kenarında uzun yansımalar var - Bana öyle geliyor ki, anizotropik yansımalar gerçekçi olsa da, blinn sadece kenarda göründüğü için bunları uygulamanın doğru yolu değil. H terimindeki bir hatanın gerçekçi görünmesi sadece mutlu bir tesadüf.

Bu nedenlerin hiçbiri tatmin edici değil, bu deliliği çözmek istiyorum.

Özel olarak kınama ve pongdan bahsetmediğimi , bunun yerine H ve R vektör bileşenlerinden bahsettiğimi açıklığa kavuşturmak istiyorum .

Yanıtlar:


24

Mükemmel yansıtıcı yüzeyler için Phong-model bir anlam ifade eder. Bununla birlikte, daha pürüzlü yüzeylere yaklaşmak için Phong modelinin n (RV) ^ n değeri nereden geliyor? Nokta ürünün sonucunu, ampirik olarak doğru sonucu vermesi dışında, güce yükseltmek zorunda olduğunuz teorisi nerede?

Blinn-modeli için, denklemdeki tüm bileşenleri destekleyen fiziksel temelli bir mikroyüz teorisi var ve modelin gerçek dünya yüzeylerine daha yakın bir şekilde yaklaştığına dair deneysel kanıtlar da var (mükemmel olmasa da). Blinn modelinde yarım vektör, normal dağılım fonksiyonuna (NDF) bir girdi olarak kullanılır; bu, mikro yüzeylerin, yüzey pürüzlülüğünün fonksiyonu olarak normal yüzey hakkında nasıl dağıldığının bir tahminidir. Yani, H-vektörü normal yöne işaret ettiğinde, çoğu mikro-yüzey o yöne işaret ettiği için değer en yüksektir ve olasılık normal olarak H-vektör arasındaki açı arttığında azalır.

Blinn-modeli hiçbir şekilde mükemmel değildir ve örneğin mikro-modelin geometri terimini hesaba katmaz (yani, otlatma açısında önemi artan mikro-yüzeylerin gölgelenmesi ve maskelenmesi).


Phong'un gerçekten fiziksel temeli olmayan özel bir uygulamasından bahsetmiyorum. Ancak, mikro-yüzey teorisinin bir yansıma vektörünün temeli olarak H'yi R'den nasıl daha iyi desteklediğini göremiyorum. Hiçbir gölgelendirme modeli ampirik olarak desteklenmiyor, her biri 2005 "BRDF'in deneysel doğrulaması" uyarınca gerçek malzemelerin çoğaltılmasında başarısız oluyor. Bana göre, mikro-yüzeyler, pong olarak R V V nokta noktası üzerinden modelleniyor. yeniden bir fonksiyon veya bir rampa aracılığıyla daha fiziksel olarak doğru bir vurgu için temel. Bir güç işlevi basitçe en basit, en yanlış remapping.
BmB

2
@BmB Hayır, mikro yüzeyler "phong içinde modellenmemiş" değildir, ancak H-vektörü ile "örneklenmiş" olan NDF ile tanımlanan mikro yüzeylerin olasılık dağılımını kullanırlar. NDF genellikle normal (simotropik / anizotropik) hakkında simetriktir, bu nedenle H-vektörünün kullanılması mantıklıdır. Ben Blinn model olduğunu ampirik kanıtlar olduğunu söyledi daha yakından Phong daha gerçek dünya malzemeleri yaklaşır.
JarkkoL

Yansıma vektörü boyunca yatmayan herhangi bir yansıma mükemmel bir yansıma yansıması değildir. Nokta ürün, mükemmel olmayan açılar için yansıma değeri üretir. Gerekirse, bunlar mikro yüzeyler tarafından üretilmelidir. Bu nedenle, nokta ürün model mikro-yüzeyleri yapar. Basit bir nokta doğrusal bir dağılım üretir. Fakat dağılım, H'nin yanı sıra R'nin de olduğu herhangi bir fonksiyonla modellenebilir. Bu, H'nin R'ye geçerliliği hakkında hiçbir şey açıklamaz.
BmB

1
@BmB Konseptin anlaşılması için mikro-yüzey teorisi ve özellikle de NDF bölümü hakkında okumanı öneririm. Bu, sorunuzun cevabını almanıza yardımcı olacaktır.
JarkkoL

1
Mikro yüzler ve NDF hakkında yeni bir soru açmalısınız, çünkü bu kavramlar hakkında anlamadığınız birçok şey var ve yorumlar onları açıklamak için doğru yer değil.
JarkkoL

6

Aslında, blinn'in Phong'a göre varsayılan olmasının nedenlerini kendin listelediğini düşünüyorum.

Aslında listelediğiniz her neden, aslında, Blinn'in Phong'a üstün olduğunu kanıtladığı bir alan.

Bir bütün olarak ele alındığında, bunların hepsi Blinn’in Phong’dan daha iyi bir temerrüttür.

Blinn mükemmel mi? Phong'dan daha mı iyi?

Yok hayır.

Ama olan makul bir varsayılan. Yazdığınız herhangi bir oluşturucu / gölgelendirici içindeki Phong yerine Blinn'i kullanmaktan çekinmeyin.


Katılıyorum, bu tam olarak bu. İki model de mükemmel değil. Blinn'in yaklaşımı her şeyden önce bir performans optimizasyonuydu, çünkü yarım açının hesaplanması daha ucuzdu. Yine çoğu zaman daha iyi göründüğü ortaya çıktı.
Damon,

-2

H vektörünün kullanılmasının nedenini keşfettim. Ne yazık ki, çoğu gölgelendirme modelinde kullanılma şekli değildir, bu daha sonra yanlış olduğu sonucuna varılabilir.

Fiziksel olarak gölgelendirme için, yansıyan ışığın fresnel denklemlerine uyması gerekir. (Çoğu "fiziksel olarak temelli" gölgelendirici yoktur) Mikro yüzler, doğru bir sonuç elde etmek için ara yüzün kırılma indisinin yanı sıra ışığın geliş açısına dayanan fresnel denklemlerine de uymalıdır.

Yansıma yasasına göre, geliş açısı, normal yüzey boyunca yansıma açısı ile yansıtılmalıdır. Bir ışık ışınının kameraya çarptığını - ki bunu biliyoruz - ışıktan yansımış olmalı - yönünü biliyoruz. Bu nedenle, normal yüzey tümdengelim ile bu iki yön için ayna ekseni olmalıdır. Bu bize aralarında bulunan H vektörünü verir. Her ikisinin de toplamını normalleştirerek hesaplanır.

Şimdi, ışık yönü L ile yarım vektör H arasındaki açıyı hesaplayarak, bir mikro yüzeyin speküler yansıması için geliş açısını elde ederiz ve fresnel terimini kullanarak onu doğru şekilde zayıflatabiliriz.

Görünüş yönünün o mikro yüz için R'ye eşit olduğuna dikkat edin, H bir yansıma terimi değildir. Blinn, Cook, Torrance ve Sparrow onu emebilir. Phong ve Fresnel haklıydı.


Fresnel terimi, microfacet BRDF denkleminin bir parçasıdır ve bireysel microfacet, mükemmel reflektörler olarak modellendiği için bunu dikkate almaz. Ayrıca, L ve H vektörleri arasındaki açıyı hesaplamaz, N ve H vektörleri hesaplarsınız. Bu, H'nin neden kullanıldığına dair bir ipucu verecektir. Kimin doğru ya da "daha doğru" olduğuna karar vermek için konuyla ilgili biraz daha fazla bilgiye ihtiyacınız var;)
JarkkoL

Bir malzemenin bir mikro-faseti, malzemeyle aynı özelliklere sahiptir. Bu nedenle kusurlu bir reflektörün bir mikro-fasetinin kendisi mükemmel bir reflektör olamaz. Mantığınız sağlam ve yararsızdır. N nokta H'nin fiziksel bir önemi yoktur.
BmB

4
Hayır, bu mikrofacet modelinin çalışması değil. Mantığım, kusursuz bir şekilde mikrofacet modelin temellerini bile anlayabilen herkesin onaylayabildiği gibi. Her mikro-yüzey mükemmel bir yansıtıcıdır (yani optik olarak düz) ve bir malzemenin kusurlu yansıması NDF tarafından tanımlandığı gibi mikro-yüzey normlarının varyansından gelir. Tam olarak geçerli olan önerilere karşı
çıkma konusundaki kararlılığınız

Hiçbir öneride bulunmadınız, yaptığınız tek şey, hiçbir şeyi desteklemeyeceğiniz ve hakaretler atmayacağınızı iddia etmek. H, yansımayı değil, bir mikro yüzeyin normalidir. Yansıma normal ile hesaplanabilir. Temel fizik sana katılmıyor.
BmB
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.