文/楓葉林

1、介紹

在我們成功地完成了基于物理的頭發(fā)明暗處理(Tangled .27)之后,我們開始考慮開發(fā)基于物理模型的更廣泛的陰影處理模型。在基于物理的頭發(fā)模型中,我們能夠在保持美術(shù)控制的同時獲得很大程度的視覺豐富性。然而,事實(shí)證明,將頭發(fā)的光照與場景的其余部分結(jié)合在一起,仍然使用傳統(tǒng)的“ad-hoc”陰影模型和實(shí)時的燈光是很有挑戰(zhàn)性的。

對于隨后的電影,我們希望增加所有材料光照效果的豐富性,同時使照明效果在材料和環(huán)境之間更加一致,同時也希望通過使用簡化工作流來提高美術(shù)設(shè)計師的工作效率。

剛開始時,我們不清楚要使用哪種光照模型,甚至不知道怎樣使用。我們是否應(yīng)該使用能量守恒定律?是否應(yīng)該支持折射率等物理參數(shù)?

對于漫反射Lambert似乎是公認(rèn)的公式,而高光似乎在論文中受到更多的關(guān)注,一些模型如Ashikhmin-Shirley (2000) [3]旨在直觀,實(shí)用性強(qiáng),物理性貌似合理。像其他一些模型He et al. (1991) [12]提供了更加全面的物理模型,還有一些旨在改進(jìn)數(shù)據(jù)擬合,[15, 14, 22, 17, 4],但是很少直接操作。我們已經(jīng)實(shí)現(xiàn)了幾種模型,可用讓設(shè)計師選擇并且組合他們,但是復(fù)雜的參數(shù)又使我們回到了我們試圖避免的簡單工作流。

一項對大量材料進(jìn)行測試的論文Ngan et al. (2005)比較了五種流行的光照模型,有些模型總體上比其他模型表現(xiàn)得更好,但有趣的是,模型的性能之間有很強(qiáng)的相關(guān)性—有些材料很好地代表了所有的模型,但對于其他材料的來說,沒有模型證明是合適的。在少數(shù)情況下添加高光效果會很有用,那么問題來了:在復(fù)雜的材質(zhì)中什么模型可以作為代表?

要回答這個問題,并更直觀的評估BRDF模型,我們開發(fā)了一個新的BRDF查看器,可以顯示和比較測量和分析BRDFs。我們發(fā)現(xiàn)了新的、直觀的方法來測量BRDF數(shù)據(jù),我們發(fā)現(xiàn)在已知模型中沒有很好的模型來體現(xiàn)材料中特性。

在這些記錄中,我們將分享研究測量材料的觀察結(jié)果,以及我們已經(jīng)收集到的關(guān)于哪些模型與測量數(shù)據(jù)吻合的見解。然后我們將展示我們現(xiàn)在正在使用的所有當(dāng)前產(chǎn)品的新模型。我們還將描述我們在設(shè)計中采用這種新模式的經(jīng)驗,并討論如何在保持簡單性和健壯性的同時,增加美術(shù)設(shè)計師的易控性。

2、微平面模型microfacet

我們定義的BRDF模型在測量的材質(zhì)和microfacet模型之間進(jìn)行對比[30,7, 33],microfacet描述了一個表面在光照向量L 視線V下發(fā)生反射,那么一定存在一部分表面或者微平面上其法線對齊于與L和V的半角向量。半角向量有時候也定義為微平面法線: 135313xzzt77g8pddll2gz.png ,對于各項同性的一般microfacet模型如下:

133306afj3jdd2mz5d12z2.png
該公式中漫反射項為未定義項,diffuse通常假定用常量表示,對于高光部分,D是微平面法線分布函數(shù),F(xiàn)是fresnel函數(shù),G是幾何衰減函數(shù)。θL和θV在L和V向量相對于法線的入射角,θH是法線和半角矢量H之間的夾角。θD是 L和半矢角量H之間的的角度。

大多數(shù)貌似合理的物理模型都沒有在微平面上進(jìn)行具體的描述,microfacet模型有分布函數(shù)模型,菲涅耳系數(shù)和其他可以添加的如幾何衰減函數(shù)。唯一真正的區(qū)別microfacet模型和其他模型之間是否有明確的來自模型推導(dǎo)的 133306fz4capq2pzl42d43.png 因子,在模型中不包含可以確定一個隱含遮蔽因子乘以4 cosθl cosθv 分解出D和F的因子。

3、可視化測量BRDFs

3.1 The “MERL 100”(三菱電氣研究實(shí)驗室)

133309eqcbb1jrnjcbquzc.png 圖九:高光分布,左圖展示了高光波峰值 black =MERL chrome, red = GGX (α = 0.006), green = Beckmann (m = 0.013), blue = BlinnPhong (n = 12000). 右圖分別是chrome ,GGX 和beckman效果。
為了更寬的亮度拖尾漸變效果,Walter et al.(2007) [33]等人提出了GGX分布函數(shù),GGX具有比其他函數(shù)更寬的漸變光效果,但是仍未能捕捉光的chrome特性。對擬合材料尾部漸變的重要性在最近的幾個模型中也展示出來 L¨ow et al. (2012) [17] and Bagher et al. (2012) [4].這兩個模型都采用了一個額外的參數(shù)來控制光波峰和光漸變的效果。另一個選擇光漸變的的方法是采用第二個更寬的高光反射峰值Ngan [21].

4.3 高光F項觀察

133309qirnptnlorm86lnt.png 圖十:100個MERL材質(zhì)的歸一化Fresnel方程的θd的變化。其反應(yīng)了θh從1到4度,入射光線被吸收減少,到歸一化曲線的θd從45度到80度的形狀,虛線表示Fresnel理論方程。
菲涅耳反射系數(shù),F(xiàn)(θD),表現(xiàn)在鏡面反射增加隨著光線方向和視線向量變化而變化,預(yù)測所有光滑的表面會在平射角方向有100%鏡面反射。對于粗糙表面,100%的鏡面反射無法達(dá)成,但反射率仍將變得越來越高。

如圖十展示了MERL材質(zhì)的Fresnel曲線,對曲線進(jìn)行偏移和縮放,比較其響應(yīng)的整體形狀。每個材料顯示一些反射系數(shù)增加到接近θd=90。這也可以在圖1的圖像切片的頂部邊緣看到。

值得注意的是,靠近入射平射角附近的曲線的坡度比Fresnel預(yù)測的更大,該觀察在the motivation of the Torrance-Sparrow (1967) [30] microfacet model 中解釋了在較高入射平射角下的“閉角峰值”。要注意 133309m0d0224fq41w22us.png 因子在微平面模型中平射角處趨于無窮大的時候,無論是在模型和真實(shí)世界中,平射角的反射會被陰影效果減少都不是問題。G項代表光照方向的衰減,視線方向的遮蔽和平射角方向系數(shù)。G因子代表衰減系數(shù)當(dāng)其與 135602xmmcl03z3ziy0539.png 組合使用會帶來更好的效果。

4.4 高光G項觀察

133310o7b5o7svwd6awaq7.png ,成為無G模式,結(jié)果會在反射余角顯示過于黑暗。這兒最重要的是G函數(shù)的選擇對反照率有著深遠(yuǎn)的影響,反照率反過來又對表面顏色產(chǎn)生影響。

133310q4vx6px4qnnj4xwl.png 圖十二:幾種高光G項模型的反照率圖比較,所有的F和D項一樣。左圖光滑表面a=0.02,右圖粗糙a=0.05,NoG 模式去掉了G項和cosθlcosθV項。
已經(jīng)開發(fā)了幾種高光反射模型,其目的是產(chǎn)生更合理的反照率響應(yīng)曲線[ 30, 29, 19,20, 8, 9,33, 10, 14 ]。對于其中一些,目的是使反照率完全持平,以保持能量平衡。根據(jù)圖11中MERL數(shù)據(jù)的反照率圖,這不是一個不合理的目標(biāo),雖然大部分的材料確實(shí)顯示了某種入射余角增益。即使這樣,一些平射角增益很可能是由于非高光效果。

有一些簡單模型,其源于微平面分布函數(shù)D,Smith [29]和隨后的 Walter (2007) and Schlick (1994)逐漸的在研究。如圖12 Walter 的Smith 的反射率在光滑表面顯著增加,這在測量數(shù)據(jù)中是看不到的。對于粗糙值,這個效應(yīng)似乎合理。注意,GSmith只具有少量函數(shù)的解析形式,通常使用列表積分或其他近似值代替。

在最近的 Kurt et al. (2010) [14]等人提出經(jīng)驗?zāi)P筒蓸恿瞬煌姆椒ê蜑V波數(shù)據(jù)及一些自由參數(shù),圖表十二展示了a=0.25的 Kurt 模型。α的其他值可以產(chǎn)生寬范圍的反照率效應(yīng),值得關(guān)注的是粗糙模式下Kurt 模型在入射余角處分離。另一種選擇是只使用一個Walter的GSmith,甚至簡單的GSchlick、或者把G作為一個自由參數(shù)。

4.5 布料Fabric

在MERl采樣數(shù)據(jù)中很多Fabric采樣在平射角和Fresnel峰值處都展現(xiàn)出比粗糙材料更強(qiáng)一點(diǎn)高光。如圖13所示。

133311lnzhmnhendxz13bv.png

其中f(θ)是菲涅耳反射系數(shù)[注:從菲涅爾定律,保持Helmholt互通,考慮到兩次折射是必要的,一次在表面內(nèi)部,另一次在表面外。]

在測量數(shù)據(jù)的觀察中,依賴于我們工作室過去的經(jīng)驗,Lamber模型在邊緣經(jīng)常表現(xiàn)得過暗,增加Fresnel因子可以使其看起來更物理正確一點(diǎn)。

基于我們的觀察,我們憑經(jīng)驗開發(fā)了一套漫反射模型,在光滑表面的Fresnel遮擋和粗糙表面附加亮點(diǎn)之間的轉(zhuǎn)換。這種效果的一種可能解釋是,對于粗糙表面,光進(jìn)入和離開微平面表面的特征導(dǎo)致了平射角處的折射增加。在任何情況下我們的美術(shù)設(shè)計師們都喜歡它,它類似于我們過去的ad-hoc模型,只是現(xiàn)在它更合理,更加物理正確。

在我們的模型中,我們忽略了漫反射菲涅耳因子的折射率,并且不考慮漫反射入射光線的損耗。我們使用Schlick Fresnel的粗糙度參數(shù)近似修改入射余角反射到一個特定的值,而不是默認(rèn)為0。

我們的漫反射模型:

133312fp9jen8jj9ne03jj.png
這產(chǎn)生了一個Fresnel反射陰影,使在光滑平面平射角減少了0.5的漫反射率,在粗糙度增加了高達(dá)2.5的漫反射率。這似乎給MERL采樣數(shù)據(jù)一個合理的解釋,也被美術(shù)設(shè)計師們所贊同。圖十七顯示了各種粗糙度下的BRDF圖像。

133312vikckkgpqh4g2ppz.png
我們的次表面參數(shù)在混合了基礎(chǔ)漫反射和HanrahanKrueger subsurface BRDF [11]模型。這對于在遠(yuǎn)距離物體和平均散射路徑長度小的物體上產(chǎn)生次表面現(xiàn)象很有用;然而,它不能完全代替次表面散射,因為它不會把光線投射到陰影或穿過表面。

5.4高光D項細(xì)節(jié)

當(dāng)前流行的光照模型中,GGX是具有最長漸變拖尾效果的。這種模型相當(dāng)于是被 Blinn (1977) [6] 贊賞效果并符合實(shí)驗數(shù)據(jù)的TrowbridgeReitz(1975) [31]模型。然而,這種模型對于許多材料來說仍然沒有足夠長的漸變拖尾。

Trowbridge 和Reitz對比了幾個分布函數(shù)模型和玻璃的測量數(shù)據(jù)。其中一個來自Berry (1923)的分布函數(shù),有非常相似的形式,但其指數(shù)是1而不是2產(chǎn)生了一個更長的漸變拖尾。這表明了其是一個指數(shù)變化更廣泛的分布模型,可以把它稱作:

Generalized-Trowbridge-Reitz或者GTR模型。

133312ganad0nr0ucup5nn.png
在這些分布函數(shù)中C是一個常量, a是范圍在0-1之間粗糙度,a=0表示完全光滑表面,a=1表示完全粗糙或者均勻分布表面。

133313qwplv8l2jljr2t8t.png 圖十八:GTR分布函數(shù)在不同r值的曲線
初步擬合結(jié)果表明r值在1到2之間效果最典型。有趣的是GTR的r = 3/2相當(dāng)于Henyey-Greenstein函數(shù)的θ = 2θh的時候,θh的倍增可以看作是半球分布到球分布的擴(kuò)展。

合理的microfacet分布函數(shù)必須被歸一化,有效的渲染也必須支持重要采樣數(shù)據(jù)。兩者都要求分布函數(shù)可半球積分。幸運(yùn)的是,這個函數(shù)有一個簡單的閉合形式積分。在附錄B中推導(dǎo)了歸一化和重要抽樣函數(shù)以及有效的各向異性形式。

我們的BRDF模型采用了2個固定的高光葉片(lobes),都使用了GTR模型,主葉片r=2,副葉片r=1,主葉片表示基礎(chǔ)材質(zhì)顏色,并且可以是各項異性或(和)金屬性的。副葉片代表了clearcoat層的材料,因此總是各項同性和非金屬性的。

粗糙度,我們發(fā)現(xiàn)a=roughness*roughness的時候,粗糙度更能展現(xiàn)出線性空間變化。如果沒有這個映射,對于發(fā)光材質(zhì)就需要非常小的或者非直觀的參數(shù)控制。同時也會導(dǎo)致在介于粗糙和光滑之間的材質(zhì)會產(chǎn)生一個粗糙的結(jié)果。得到的插值結(jié)果如圖16和19所示。

代替折射光指數(shù)(IOR),我們的高光參數(shù)決定了入射光量。這個參數(shù)歸一化后被重新映射到入射高光范圍[0.0, 0.08].這相當(dāng)于IOR的值在[1.0, 1.8]范圍,涵蓋了大部分通用材料。值得注意的是參數(shù)的中間值對應(yīng)的是IOR值為1.5,這是很有代表性的值也是我們默認(rèn)的值。高光參數(shù)可能被推到一個更高的IOR值,但是應(yīng)該小心處理。這種參數(shù)的映射大大增加了美術(shù)設(shè)計師們進(jìn)行合理材質(zhì)開發(fā)的過程 ,同樣的效果放在真實(shí)世界中效率會非常低,因為其參數(shù)空間非常少。

對于我們的clearcoat 層。我們使用了固定IOR值1.5.具有代表性的聚氨酯,允許美術(shù)家們使用clearcoat參數(shù)來縮放圖層的整體強(qiáng)度。歸一化的參數(shù)相當(dāng)于整體值在 [0, 0.25]之間。這一層有很大的視覺沖擊效應(yīng),其有相對較小的能量,所以我們不從base層減去任何能量趣彌補(bǔ)他。當(dāng)該層設(shè)置為0 的時候,clearcoat層為無效,也沒有成本開銷。

5.5高光F項細(xì)節(jié)

對于我們而言,Schlick Fresnel比 full Fresnel 近似充分且簡單,由近似引起的誤差明顯比其他因素導(dǎo)致的誤差小。

133313ph0vb4h0hlmig48n.png
常數(shù)F0代表了正常入射光線角近法線的高光反射,通常是無色的電介質(zhì)和有色金屬。實(shí)際取決于折射率IOR,注意高光反射來自于微平面,因此F取決于θd和光線與半角向量的角度,不是入射光線和表面法線的角度。

菲涅耳函數(shù)可以被視為入射角(入射光線靠近法線)和入射余角(入射光線靠面)高光的插值。注意當(dāng)入射光線處于平射角處所有光都被反射后,將呈現(xiàn)出無色狀態(tài)。

5.6高光G項細(xì)節(jié)

對于我們的模型,我們采用了混合模式。鑒于 G_Smith 模型對原始高光很有效。我們通常的G項使用Walter推導(dǎo)的GGX模型。但重新映射粗糙度降低了表面光澤。具體而言,為了計算G項,我們線性的將原始粗糙度[0,1]映射到[0.5,1]。注意,我們做這個操作是在粗糙度進(jìn)行平方操作之前,所以最后的a值是(0.5 + roughness/2)的平方。

這個映射是基于比較了測量數(shù)據(jù)和美術(shù)大師們的反饋,對于較小粗糙度值 高光有點(diǎn)過熱、這個給了我們一個隨粗糙度變換的G函數(shù),至少是看起來的物理正確。對于我們的clearcoat高光我們沒有使用Smith G函數(shù),只是簡單使用固定表面粗糙度為0.25的G_GGX函數(shù),然后發(fā)現(xiàn)其實(shí)也蠻合理的,美術(shù)大大們也能愉快的接受該效果。

5.7分層和參數(shù)混合

一旦我們確定了我們的新模型,我們就需要決定如何將它集成到我們的著色器中。第一個問題是哪些參數(shù)需要在空間上變化,答案是所有的;如果一個美術(shù)設(shè)計師只想簡單把兩種不同的材料放在一個表面上并在它們之間蒙上mask,那么就需要在所有的參數(shù)之間進(jìn)行插值。此外,mask將被過濾,而且在mask的模糊邊緣處應(yīng)該要使材質(zhì)看起來正確。

我們的設(shè)計原則的是使所有的參數(shù)標(biāo)準(zhǔn)化,且至少是線性空間感知的,即材料通常以非常直觀的方式進(jìn)行插值。如圖19所示。

一旦我們意識到可以直接插值,我們就想知道我們是否可以通過mask實(shí)現(xiàn)所有的空間變化。這個方法是美術(shù)設(shè)計師將會使用一個材質(zhì)預(yù)置列表來使用mask進(jìn)行簡單的混合。結(jié)果證明非常好用,大大簡化了工作流程。提高了材質(zhì)的一致性。并使我們的著色器更有效率、如圖20所示的著色器UI。

133314duiurzjfs5idd06d.png
或者半球坐標(biāo)系表達(dá):

133314dyu0m7ybybrpzgww.png
對于重要的采樣,很方便的選擇歸一化的pdfh = D(θh)cos θh。注意 pdfh是相對于半角矢量的密度,對光照方向矢量的密度為:

133315l1h3abx313k5nl1h.png
為了再半球坐標(biāo)上生成采樣數(shù)據(jù),pdf將會被分割成球形組件,pdfh = pdfθh pdfφh .對于各項同性分布的這種分級是微不足道的,該分布不依賴于n φh 和pdfφh =1/2PI,對于各項異性,分解是通過集合θh 來得到:

133315oiz4dejffia5hw0a.png
Pdf的每個組件被整合到cdf,通過倒轉(zhuǎn)該形成相應(yīng)的采樣功能:

133315fbzn1au4tkt7oay7.png
給兩個采樣函數(shù)統(tǒng)一和隨機(jī)的變量ξ1 和 ξ2, θh 和φh可以被計算和在法線n,切線x ,副法線y 組成的坐標(biāo)系下投影到到半角向量h。最后給出一個v向量,l可以被h和v的叉乘計算。

133315n030xtopzmroe6rr.png
B.2 GTR

從上面的推導(dǎo),標(biāo)準(zhǔn)的GTR 分布函數(shù)可以描述為:

133315nkp6kfmg2kgfu26k.png
這種分布在γ > 0的時候是有效的,不管怎樣γ = 0時 存在一個奇點(diǎn),以極限γ → 1產(chǎn)生這種交替形式:

133316js0zuvmskij58pmi.png
對γ = 3/2 和γ = 2的簡化形式,后者相當(dāng)于GGX:

133316mzm460z44q7a0144.png
形成各項異性分布,各種表面粗糙度相關(guān)的φ被 133316s0l78lil0lh7877z.png ,γ = 2的結(jié)果如下:

133317lb26sfrsf67zk4f6.png
替換這些向量恒等式:

133317nw2ef2x93rkkffbh.png
在等式(10)中產(chǎn)生一個有效的替換形式:

133317v0pgp1naeqy9eve6.png
未來,tan φh從(11)到 sin φh and cos φh,避免因φH坐標(biāo)的特殊處理,也讓H來計算更直接:

133317c5lrn7ntk9m5spbi.png
注意:h’是投影后的半角向量,r是歸一化因子 133318ha30y3qp0ap95stz.png 可以被忽略或取消。

對任意的γ值,各項異性分布的歸一化,不幸的是 沒有一個閉合形式。

附錄

各項異性高光細(xì)節(jié):

原始注釋省略了,細(xì)節(jié)參數(shù)如下:

133318j6nf6e6r2bwr296z.png
0.9因子限制的長寬比為10:1。

光澤細(xì)節(jié)

原始光澤細(xì)節(jié)注釋省略了,根據(jù)4.5章節(jié)的紡織物采樣描述的觀察,漫反射+高光反射的模型在BRDF的各種模式中占有主導(dǎo)地位。這和Fresnel因子很相似。這個形狀和fresnel也很像。我們的模型使用了額外的BRDF 葉片(lobe),采用了 Schlick Fresnel 模型, 133318dwfszxshjmhsrm2m.png ,并且可以用sheenTint 參數(shù)調(diào)節(jié)基礎(chǔ)顏色的色彩朝向。

再談高光G

Heitz最近發(fā)表的文章深入分析了microfacet shadowing,Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs, JCGT 2014.Heitz提出了“weak white furnace test”驗證了基于物理的mask功能的合理性并且展示了它。已知的函數(shù)只有 Smith shadowing model [29, 33] 和the V-cavity model比較合理。盡管后者可能不太逼真。

基于Heitz的分析,我們已經(jīng)消除了我們的Smith G映射原始高光的ad-hoc版本,對于金屬,結(jié)果顯然要好得多,對一般材料來說尤其如此。特別用正確光源渲染某些全局光照GI環(huán)境時,看起來對很可能對Walter模型相關(guān)的光滑材質(zhì)導(dǎo)致在MERl測量數(shù)據(jù)在入射余角處的錯誤。Heitz也從Smith公式推導(dǎo)出了正確的各項異性公式。我們忽略了一個細(xì)節(jié)。

對于clearcoat,我們?nèi)匀皇褂酶黜椡缘腉TR1.0的葉片處理拖尾,并公認(rèn)ad-hoc G因子。這不是意味著陰影和mask代表一個看似合理的物理正確,相反,它代表了一個半薄透明的層,它可能包含了多個反射和透射事件。而我們目前的公式對各種材料都很有效。也就是說,包含了大部分效果的物理模型是比較受歡迎的。

Over!

致謝:

...thanks all!

via:Gad

銳亞教育

銳亞教育,游戲開發(fā)論壇|游戲制作人|游戲策劃|游戲開發(fā)|獨(dú)立游戲|游戲產(chǎn)業(yè)|游戲研發(fā)|游戲運(yùn)營| unity|unity3d|unity3d官網(wǎng)|unity3d 教程|金融帝國3|8k8k8k|mcafee8.5i|游戲蠻牛|蠻牛 unity|蠻牛