基于物理渲染的基本原理

Unity3D在5.0引入了PBS(Physically-Based Shading)特性,這一光照模型取代了Lambert和Phong氏光照模型填具,帶來更逼真的視覺體驗(yàn),可以在這個(gè)demo查看效果房维。那么什么是Physically-Based Shading呢腊敲,Jeff Russell有一篇文章缅疟,我個(gè)人覺得寫得非常好捍靠,在此翻譯一下墓臭,幫助自己理解和消化稽煤,同時(shí)方便更多對(duì)這個(gè)技術(shù)感興趣的朋友。

本文翻譯自Jeff Russell的《Basic Theory of Physically-Based Rendering》囚戚,原文鏈接地址:https://www.marmoset.co/toolbag/learn/pbr-theory

基于物理渲染(PBR, Physically-based rendering)是最近實(shí)時(shí)渲染領(lǐng)域一個(gè)令人興奮的趨勢(shì)酵熙。這個(gè)術(shù)語(yǔ)大家談?wù)摿撕芏啵?jīng)常會(huì)讓人困惑它究竟是什么意思弯淘。簡(jiǎn)單的回答可能是:“包含內(nèi)容很多”绿店,或者“得看情況”吉懊,這些答案都不盡如人意庐橙。所以我自己嘗試去解釋一下PBR到底是什么、它和老的渲染方式有什么區(qū)別借嗽。這篇文章并非專門為工程師而寫态鳖,不會(huì)含有任何算法或者代碼。

Physically-based shading系統(tǒng)和之前光照系統(tǒng)(主要指Phong氏模型恶导、Lambert模型等)的主要區(qū)別是浆竭,它對(duì)光和表面產(chǎn)生行為有更具體的描述。其著色的能力足夠強(qiáng)大惨寿,一些老的為了達(dá)到近似效果的手段現(xiàn)在可以安全的舍棄邦泄,相應(yīng)額外增加的美術(shù)資源也不再需要。這意味著工程師和設(shè)計(jì)師都應(yīng)該了解這項(xiàng)技術(shù)帶來的改變裂垦。

在介紹新東西之前顺囊,我們將先確定一些基礎(chǔ)概念。這些基礎(chǔ)概念你可能已經(jīng)了解蕉拢,但很值得再次讀一讀特碳。之后,你可能
也想看看我們自己的Joe Wilson寫的文章:創(chuàng)建PBR資源(creating PBR artwork)晕换。

漫反射(Diffusion)和反射(Reflection)

漫反射和反射是描述光與表面作用的兩個(gè)基本術(shù)語(yǔ)午乓,很多人可能在經(jīng)驗(yàn)層面熟悉這兩個(gè)概念,但并不知道他們?cè)谖锢砩系膮^(qū)別闸准。
當(dāng)一束光投射到表面上時(shí)益愈,其中一些會(huì)發(fā)生反射——即在表面法線另一側(cè)射出的光線。這個(gè)行為跟球從地面或者墻壁上彈回來很像夷家。在一個(gè)光滑的表面蒸其,這使得表面看起來像鏡子●ⅲ“鏡面(specular)”一詞經(jīng)常用來描述這個(gè)效果("specular"來源于拉丁文"mirror"枣接,即鏡子的意思)。
然而缺谴,并不是所有的光都從表面反射出去但惶,有些光會(huì)滲透到被照明物體的里面耳鸯。其中有些光被物體材質(zhì)吸收(通常轉(zhuǎn)化成熱量),有些則在內(nèi)部被散射膀曾。這些被散射的光有一部分最后從表面再射出來县爬,從而被眼球或者攝像機(jī)看見。我們知道有很多名次來形容這個(gè)現(xiàn)象:“漫射光”添谊,“漫反射”财喳,“表面散射”——都是一個(gè)意思。

pbr_theory_refl_diff.png

對(duì)于不同波長(zhǎng)的光斩狱,不同物體的漫反射和散射行為通常會(huì)有很大差異耳高,這就是為什么物體會(huì)看起來有不同的顏色(比如,一個(gè)物體吸收大部分除了藍(lán)色波長(zhǎng)的光所踊,那么它看起來是藍(lán)色的)泌枪。散射往往是如此的混亂、均勻秕岛,我們可以認(rèn)為各個(gè)方向看上去都一樣碌燕,這點(diǎn)和鏡面完全不同。一個(gè)著色器在實(shí)現(xiàn)這種近似效果時(shí)继薛,只需要一個(gè)輸入:“albedo”修壕,它用來描述各種顏色的光照射表面并散射出去時(shí)的顏色。我們有時(shí)候也叫做“漫反射顏色(Diffuse color)”遏考。

半透明(Translucency)和透明(Transparency)
在某些情況下漫反射會(huì)更復(fù)雜一些——比如慈鸠,像皮膚和蠟這類材質(zhì)具有更寬的散射距離。在這種情況下诈皿,只給一個(gè)簡(jiǎn)單的漫反射顏色不夠林束,著色系統(tǒng)必須考慮被照明物體的形狀還有厚度。如果足夠薄稽亏,通常能看到光從物體背面散射出來壶冒,我們稱這類物體時(shí)半透明的。如果漫反射更少(比如截歉,玻璃)胖腾,那么幾乎沒有明顯的散射現(xiàn)象,能完整的從一邊透過物體看到另一邊瘪松,即是透明咸作。這些行為跟典型的“接近表面”漫反射有很大不同,所以一般要模擬這些效果宵睦,需要單獨(dú)的著色器记罚。

能量守恒
通過上面的描述,我們現(xiàn)在有足夠的信息得出一個(gè)結(jié)論:反射和漫反射是互斥的壳嚎。這是因?yàn)橥┲牵馊绻宦瓷淠┰纾紫鹊脻B透到表面里(即不會(huì)被反射)。在著色領(lǐng)域里说庭,這叫做“能量守恒”然磷。意思是離開表面的光線不會(huì)比投射到表面上的更亮。

這個(gè)很容易在著色系統(tǒng)里實(shí)施:漫反射著色時(shí)刊驴,只要減去反射光即可姿搜。這意味著高反光的物體只有較少甚至沒有漫反射,因?yàn)闆]有光線滲透進(jìn)表面捆憎,幾乎全被反射回去了舅柜。反之亦然,如果一個(gè)物體有較亮的漫反射光攻礼,反射光就會(huì)減少业踢。

pbr_theory_conservation.png

這種能量守恒是基于物理著色的一個(gè)重要方面。它允許設(shè)計(jì)師為材質(zhì)調(diào)節(jié)反射率礁扮、漫反射率值時(shí)不必?fù)?dān)心因?yàn)槟承┮馔膺`背物理規(guī)律(之前這通常會(huì)導(dǎo)致物體看上去很糟糕)。同時(shí)瞬沦,代碼里產(chǎn)生看上去好的效果時(shí)也不必再嚴(yán)格實(shí)施這些限制(譯者注:指校驗(yàn)設(shè)計(jì)師給出的反射太伊、漫反射值,防止人為的錯(cuò)誤)逛钻。它就像一個(gè)“保姆物理學(xué)家”一樣僚焦,防止作品偏離規(guī)則太遠(yuǎn)或者在不同光照條件下變得不一致。

金屬

導(dǎo)電材料曙痘,最值得注意的是金屬芳悲,這里有幾點(diǎn)需要特別注意。
首先边坤,金屬相比絕緣體名扛,往往會(huì)有更多反射。導(dǎo)體通常表現(xiàn)的反射性高達(dá)60%~90%茧痒,然而絕緣體一般會(huì)小很多肮韧,在0~20%。這種高反射率阻止光到達(dá)材質(zhì)內(nèi)部產(chǎn)生漫反射旺订,使得金屬看起來非常有光澤弄企。

其次,導(dǎo)體的反射率有時(shí)會(huì)因可見光譜變化而不同区拳,這使得他們的反射光會(huì)有顏色拘领。這種帶顏色的反射即使在導(dǎo)體中也很少見,但確實(shí)在一些常見材料上會(huì)發(fā)生(比如:金樱调、銅约素,黃銅)洽瞬。絕緣體通常都沒有這種效果,它們的反射不帶有顏色业汰。

最后伙窃,導(dǎo)電體通常會(huì)吸收滲透進(jìn)表面的光,而非散射样漆。這意味著理論上導(dǎo)體不會(huì)有任何漫反射的現(xiàn)象为障。然而實(shí)際上,由于在這些金屬表面通常存在氧化物或其他殘留物放祟,使得金屬也會(huì)散射少量的光鳍怨。

正是由于金屬和其他物體的這些雙重性,導(dǎo)致一些渲染系統(tǒng)采用“metalness”作為直接輸入跪妥。在這些系統(tǒng)里鞋喇,設(shè)計(jì)師指定材質(zhì)的金屬性,而不是僅僅指定反射率和漫反射率眉撵。這有時(shí)候作為創(chuàng)建材質(zhì)的一個(gè)簡(jiǎn)單的方式侦香,而在基于物理渲染下就不需要這樣做。

Fresnel(菲涅爾效應(yīng))
奧古斯丁·菲涅耳(Augustin-Jean Fresnel)是我們不能忘記的逝去白人中的一位纽疟,主要因?yàn)樗拿钟糜诖硪恍┈F(xiàn)象罐韩,這些現(xiàn)象是他第一次精確描述出來的。如果不是用他的名字污朽,討論光的反射會(huì)變得困難散吵。

在計(jì)算機(jī)圖形學(xué)中,“菲涅爾”指不同的角度將產(chǎn)生不同的反射率蟆肆。特別的矾睦,光斜著射入表面比垂直射入表面更容易發(fā)生反射。也就是說一個(gè)有適當(dāng)菲涅爾效果的物體靠近邊緣的地方會(huì)更亮炎功。我們對(duì)這個(gè)現(xiàn)象比較熟悉枚冗,這在計(jì)算機(jī)圖形學(xué)也不是新鮮事。然而亡问,PBR著色器在此基礎(chǔ)上對(duì)菲涅爾計(jì)算方程做了一些修正官紫。

第一,對(duì)于所有材質(zhì)州藕,反射率在入射角臨界值達(dá)到飽和——任何平滑物體邊緣看起來都像鏡子一樣束世,與材質(zhì)無(wú)關(guān)。是的床玻,只要在恰當(dāng)?shù)慕嵌扔^看毁涉,任何平滑物體都可以像一面鏡子!這可能有點(diǎn)違反直覺锈死,但物理上就是這樣贫堰。

第二穆壕,關(guān)于Fresnel屬性的第二個(gè)現(xiàn)象是:不同材質(zhì)的反射率/角度曲線差異不大。金屬差異相對(duì)較大其屏,但也可以分析喇勋。

這意味著,如果希望達(dá)到非常真實(shí)的效果偎行,設(shè)計(jì)師通常應(yīng)該減少對(duì)“菲涅爾”的人為干涉川背。或者至少蛤袒,我們現(xiàn)在知道怎么設(shè)置相應(yīng)的默認(rèn)值熄云!

這的確是一個(gè)好消息,因?yàn)樗芎?jiǎn)化內(nèi)容的生成妙真。只需要獲取之前一些已經(jīng)存在的材質(zhì)屬性缴允,比如光澤和反射率,渲染系統(tǒng)現(xiàn)在完全能自己處理菲涅爾效果珍德。

pbr_theory_fresnel.png

基于物理渲染的工作流练般,只需設(shè)計(jì)師給出一個(gè)“基礎(chǔ)反射率”。它提供最小的反射光照和顏色菱阵。對(duì)于菲涅爾效果踢俄,一旦渲染完成,會(huì)在設(shè)計(jì)師指定值的基礎(chǔ)上增加晴及,直到邊沿的100%。即嫡锌,內(nèi)容描述一個(gè)基本值虑稼,菲涅爾公式計(jì)算剩下的,這樣就能產(chǎn)生我們需要的各個(gè)角度不同反射光的效果势木。

微表面

上面描述的反射和漫反射都基于表面的方向蛛倦。將其放大,
他由被渲染的網(wǎng)格形狀提供啦桌。我們也可以利用法線貼圖來描述更小的細(xì)節(jié)溯壶。有了這些信息,任何渲染系統(tǒng)也能渲染出很好的漫反射甫男、反射效果且改。

然而,還有很重要的一塊沒考慮到板驳。大多實(shí)際的表面有非常小的瑕疵:細(xì)小的凹槽又跛,裂紋,眼睛不可見的小塊若治,還有連法線貼圖都無(wú)法表示的細(xì)節(jié)(法線貼圖必須控制在一個(gè)合理的分辨率)慨蓝。雖然肉眼看不見感混,但這些為特征仍然影響著光的漫射和反射。

pbr_theory_microsurf.png

微表面的細(xì)節(jié)在反射上有最顯著的效果(表面的漫射影響不大礼烈,這里將不再討論)弧满。在上面的圖中,你可以看見入射的平行光在粗糙表面反射后分叉此熬,因?yàn)椴煌渚€投射到了不同方向的表面庭呜。就好比把球扔向一面懸崖或者類似的不平的地方:球還是會(huì)反彈,但在一個(gè)不可預(yù)知的角度摹迷。簡(jiǎn)而言之疟赊,表面越粗糙,更多的反射光將會(huì)發(fā)散或出現(xiàn)“模糊”峡碉。

不幸的是近哟,由于資源制作效率、內(nèi)存占用鲫寄、計(jì)算量的原因吉执,著色時(shí)計(jì)算每個(gè)微表面是不可行的。怎么辦呢地来?如果我們放棄直接描述微表面細(xì)節(jié)戳玫,轉(zhuǎn)而指定一個(gè)粗糙程度的一般度量,我們能準(zhǔn)確地寫出類似結(jié)果的著色器未斑。這個(gè)度量我們通常叫做“光澤度”咕宿、“光滑度”,或“粗糙度”蜡秽。它可以在材質(zhì)中用一個(gè)貼圖或一個(gè)常量來指定府阀。

由于真實(shí)世界充滿了大量微表面特征,微表面細(xì)節(jié)是任何材質(zhì)一個(gè)非常重要的特性芽突。光澤貼圖不是一個(gè)新概念试浙,但由于微表面對(duì)光反射有如此重大的影響,它在基于物理渲染中擔(dān)任了一個(gè)重要的角色寞蚌。就像我們馬上將要看到的田巴,PBR著色器系統(tǒng)對(duì)微表面屬性的幾個(gè)方面做出的改善。

能量守恒(再次提及)

我們假設(shè)的著色系統(tǒng)現(xiàn)在考慮了微表面挟秤,并且適當(dāng)?shù)膫鞑チ斯夥瓷湟疾福€必須考慮到反射光的多少。遺憾的是煞聪,很多老的渲染系統(tǒng)在這上面犯了點(diǎn)錯(cuò)斗躏,根據(jù)微表面的粗糙度,多算或少算了反射光。

當(dāng)公式經(jīng)過適當(dāng)調(diào)整后啄糙,渲染器應(yīng)該在顯示粗糙表面時(shí)具有更大范圍的反光笛臣,但其亮度相對(duì)較暗。而光滑的表面反光范圍小隧饼,亮度更強(qiáng)沈堡、更清晰。明顯亮度是關(guān)鍵:兩個(gè)材質(zhì)都反射相同數(shù)量的光燕雁,但粗糙的表面將其散射到了不同的方向诞丽,然而平滑的表面反射出一個(gè)集中的光線(這里原文是:whereas the smoother surface is reflecting a more concentrated “beam”):

pbr_theory_micro_cons.png

這里我們得出能量守恒必須維持的第二種形式,加上之前描述過的漫反射/反射平衡拐格。把這些做對(duì)僧免,是任何想做好“基于物理”渲染器的重點(diǎn)之一。

All Hail Microsurface
有了上面的只是捏浊,我們意識(shí)到一個(gè)重要的事實(shí):微表面光澤直接影響到反射的亮度懂衩。這意味著設(shè)計(jì)師可以直接將變化畫到光澤貼圖里,如劃痕金踪,凹陷浊洞,刮擦或拋光區(qū)域等任何效果,一個(gè)PBR系統(tǒng)會(huì)自動(dòng)顯示反射形狀和相對(duì)強(qiáng)度的變化胡岔。不再需要特殊的蒙板貼圖法希、修改反射率!

這是非常有意義的靶瘸,在物理上相關(guān)的兩個(gè)真實(shí)世界量——微表面細(xì)節(jié)和反射率苫亦,現(xiàn)在被正確綁定在一個(gè)美術(shù)內(nèi)容中作為第一次渲染處理。這和之前描述的漫反射/反射平衡行為很像:我們可以單獨(dú)編寫兩個(gè)值怨咪,但因?yàn)樗鼈兪窍嚓P(guān)的著觉,嘗試單獨(dú)處理它們就變得比較困難。

另外惊暴,在對(duì)真實(shí)世界材質(zhì)的調(diào)查中表明,反射率變化不會(huì)太大(見上一章節(jié)中關(guān)于導(dǎo)體的討論)趁桃。水合泥巴是一個(gè)很好的例子:它們都有非常相似的反射率辽话,但因?yàn)槟喟头浅4植凇⑺尤狈浅F交啦。浞瓷湫Ч懿灰恢掠推 TO(shè)計(jì)師在創(chuàng)建PBR系統(tǒng)的場(chǎng)景時(shí),主要通過設(shè)置光澤度或粗糙度貼圖來達(dá)到區(qū)別蟀苛,而不是調(diào)整反射率益咬,如下圖所示:

pbr_theory_watermud.png

微表面屬性還有一個(gè)反射上微妙的效果。舉個(gè)例子帜平,粗糙表面會(huì)減弱“使得邊緣更亮”的菲涅爾效果(粗糙表面會(huì)散射菲涅爾效應(yīng)幽告,從而讓人很難清晰的觀察到)梅鹦。其次,一些大的或凹陷的微表面能把光“陷”在里面——使得光在里面反射多次冗锁,從而更多的光被吸收齐唆、亮度下降。不同的渲染系統(tǒng)以不同的方式冻河、不同的程度來處理這些細(xì)節(jié)箍邮,結(jié)果確實(shí)一致的:越粗糙的表面顯得越暗。

結(jié)論

關(guān)于基于物理的渲染還有很多話題叨叙,這篇文章僅提供一個(gè)基礎(chǔ)的介紹锭弊。如果你還沒有準(zhǔn)備好請(qǐng)閱讀喬威爾遜的創(chuàng)建PBR藝術(shù)品教程(creating PBR artwork).對(duì)于想要更多技術(shù)信息的朋友,我推薦幾個(gè)閱讀:

If there are any burning questions still left unanswered, I can usually be reached on twitter.

參考資料:
[1]http://blogs.unity3d.com/cn/2015/02/18/working-with-physically-based-shading-a-practical-approach/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末擂错,一起剝皮案震驚了整個(gè)濱河市味滞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌马昙,老刑警劉巖桃犬,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異行楞,居然都是意外死亡攒暇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門子房,熙熙樓的掌柜王于貴愁眉苦臉地迎上來形用,“玉大人,你說我怎么就攤上這事证杭√锒龋” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵解愤,是天一觀的道長(zhǎng)镇饺。 經(jīng)常有香客問我,道長(zhǎng)送讲,這世上最難降的妖魔是什么奸笤? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮哼鬓,結(jié)果婚禮上监右,老公的妹妹穿的比我還像新娘。我一直安慰自己异希,他們只是感情好健盒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般扣癣。 火紅的嫁衣襯著肌膚如雪惰帽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天搏色,我揣著相機(jī)與錄音善茎,去河邊找鬼。 笑死频轿,一個(gè)胖子當(dāng)著我的面吹牛垂涯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播航邢,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼耕赘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了膳殷?” 一聲冷哼從身側(cè)響起操骡,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赚窃,沒想到半個(gè)月后册招,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勒极,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年是掰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辱匿。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡键痛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匾七,到底是詐尸還是另有隱情絮短,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布昨忆,位于F島的核電站丁频,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏邑贴。R本人自食惡果不足惜限府,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痢缎。 院中可真熱鬧,春花似錦世澜、人聲如沸独旷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嵌洼。三九已至案疲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麻养,已是汗流浹背褐啡。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鳖昌,地道東北人备畦。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像许昨,于是被迫代替她去往敵國(guó)和親懂盐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容