Unity3D 淺談美術那些事 - PBR技術

本文轉自Unity Connect博主 北京琳云信息科技有限責任公司

淺析常常嘴邊的理論知識 - PBR 技術

? ? ? ? 首先我們需要了解定義:( Physically Based Rendering )后來才發(fā)現(xiàn)這是一種新的渲染方式母怜,萬物皆以美為主,PBR 并不是“一項”技術屿储,它是由一系列技術的集合廉赔,基于物理的渲染過程铁瞒。PBR 它也是一種著色和渲染技術,用于更精確的描述光如何與物體表面互動。

PBR的優(yōu)勢:

(1)方法論和算法基于精確的計算公式液荸,免除創(chuàng)作表面的猜想過程蘸泻。

(2)在任何光照環(huán)境都能表現(xiàn)出正確的結果琉苇。

(3)為不同的藝術家,提供統(tǒng)一的工作流程悦施。

? ? ? ? 我們來講一下 PBR 流程和傳統(tǒng)區(qū)別:其實 PBR 就是不再使用 Specular Map 并扇,在 PBR 里是 Glossness (光澤可以理解成高光粗糙度)和 Metallicity (金屬),后面兩張基本都是灰度圖抡诞,需要在游戲引擎中調(diào)節(jié)效果穷蛹,據(jù)其他網(wǎng)上說法,一般公司會根據(jù)項目發(fā)一張材質球的表昼汗,所有的 Albedo? , Glossness , Metallicity 的值的范圍都在上面肴熏,根據(jù)物品的物理屬性來調(diào)整就行。

? ? ? ? 從 Unity3D 5.x 開始有兩個標準著色器顷窒,一個名為Standard蛙吏,我們稱它為標準著色器的標準版,另一個名為Standard(Specular Setup)蹋肮,我們稱它為標準著色器的高光版出刷,它們共同組成了一個完整的PBS光照明模型,且非常易于使用坯辩。其實這兩個 Shader 基本差不多馁龟,只是有細微的屬性參數(shù)上的區(qū)別。標準版這邊的 _Metallic(金屬性)漆魔、_MetallicGlossMap(金屬光澤貼圖)坷檩,被高光版的 _SpecColor(高光顏色)、_SpecGlossMap(高光顏色法線貼圖)所代替改抡。標準著色器主要是針對硬質表面(也就是建筑材質)而設計的矢炼,可以處理大多數(shù)現(xiàn)實世界的材質,例如石頭阿纤、陶瓷句灌、銅器、銀器或橡膠等。同時胰锌,它也可以非常出色地處理一些非硬質表面的材質骗绕,例如皮膚、頭發(fā)或布料等资昧。

(附注:PBS細析:基于物理的著色(Physically Based Shading酬土,簡稱PBS)就是以某種方式模擬現(xiàn)實中材質和光照的相互作用的一種著色方法。這種方法在需要光照和材質更加直觀和逼真地協(xié)同工作的場合下優(yōu)勢非常明顯格带〕方桑基于物理的著色模擬了光線在現(xiàn)實中的行為,實現(xiàn)了在不同的光照條件下的逼真效果叽唱。為實現(xiàn)這種效果需要遵循各種物理原理屈呕,包括能量守恒(也就是物體反射出去的光量不可能超過所接收的光量),F(xiàn)resnel反射(所有表面反射在掠射角(grazing angles)處更加強烈)尔觉,以及物體表面是如何自我遮擋等原理凉袱。)

官方標準材質文檔鏈接:https://docs.unity3d.com/Manual/StandardShaderMaterialParameters.html? ? ? ??

接著,我們具體學習一下 Unity3D 引擎標準著色器的一些關鍵的屬性與流程侦铜。

1、金屬工作流:(不易出錯钟鸵,省內(nèi)存钉稍,但是白邊現(xiàn)象更明顯),

? ? ? ? 1.1 Base Color :( RGB-sRGB ) 包含信息:絕緣體棺耍,反射顏色贡未。金屬,反射率蒙袍。最亮色不應超越 240RGB 俊卤;最暗色應在 30-50RBG 之間;Base Color 不要包含其他光照信息害幅,比如 Amblient Occlusion 消恍;金屬反射率應該在 70%-100% 之間。也就是RGB 范圍在 180-255 以现。

? ? ? ? 1.2? Matallic Map :( Grayscale-Linear ):描述哪些區(qū)域是金屬狠怨,那些是絕緣體。1 表示純金屬邑遏,0 表示絕緣體佣赖。如果Matalic Map 的灰度值低于 235 ,那么對應的 BaseColor 的反射率也應該降低一些记盒。

? ? ? ? 1.3 Roughness Map :( Grayscale-Linear ):描述表面引起光纖漫反射的不規(guī)則程度憎蛤。這將改變光纖的方向,但是不會改變光線的強度纪吮。光滑表面會有小而亮的高光俩檬,而粗糙表面將會出現(xiàn)大而暗淡的高光萎胰。在這個灰度圖里面, 0 代表光滑表面豆胸,而 1 代表粗糙表面奥洼。Roughness Map 是一個“有故事”的貼圖,它會告訴你這個表面經(jīng)歷過那些嚴酷(或者平和)的環(huán)境晚胡。而公用的貼圖為環(huán)境光吸收灵奖,法線和高度貼圖。

2估盘、Specular工作流:

? ? ? ? 下面會講述一下鏡面反射工作流瓷患,其實Specular包含了全部的絕緣體 F0 信息,1.0 的 Diffuse 和 1.0 的 Specular 將會使得反射折射能量大于輸入能量遣妥,這違背了能量守恒定律擅编。也就是說在繪制貼圖時,你無法預覽結果箫踩。

? ? ? ? 2.1 Diffuse :( RGB-sRGB ):包含 Albedo Color 爱态,但是不包含任何反射率信息。純金屬為黑色境钟,因為純金屬沒有顏色锦担,油漆和銹跡是需要帶有顏色的】鳎基礎顏色應不包含光照信息洞渔,除了 Micro-Occlusion。黑色不應低于 30-50sRGB 缚态,亮色不應高于 240sRGB磁椒。

? ? ? ? 2.2 Specular:( RGB-sRGB ):灰度值,表示非金屬 F0 玫芦。RGB 值浆熔,表示金屬吸收的不同波長的光線這種貼圖允許使用不同的 F0 值來表現(xiàn)非金屬。

? ? ? ? 2.3 Glossiness:與 Roughness 相反姨俩, 0 代表粗糙表面蘸拔,而 1 代表光滑表面。

3环葵、Ambient Occlusion :表示有多少環(huán)境光调窍,可以被表面上的一個點吸收。AO 應該只影響 Diffuse 部分张遭,而不應該阻塞Specular部分邓萨。

4、Height Map:用于視差映射,通過增加可見的深度感來提高渲染的真實性缔恳。

5宝剖、Normal Map:不論PBR還是非PBR,NormalMap都是用來模擬表面細節(jié)歉甚,同時還會影響Roughness和Glossiness映射万细。 標準著色器源代碼的剖析:1) 兩個Shader源文件

Stardard.shader 著色器源文件 - 標準著色器的標準版

StardardSpecular.shader 著色器源文件 - 標準著色器的高光版

2) 七個CG頭文件

UnityStandardBRDF.cginc頭文件 - 用于存放標準著色器處理BRDF材質屬性相關的函數(shù)與宏

UnityStandardConfig.cginc頭文件 - 用于存放標準著色器配置相關的代碼(其實里面就幾個宏)

UnityStandardCore.cginc頭文件 - 用于存放標準著色器的主要代碼(如頂點著色函數(shù)、片段著色函數(shù)等相關函數(shù))

UnityStandardInput.cginc頭文件 - 用于存放標準著色器輸入結構相關的工具函數(shù)與宏

UnityStandardMeta.cginc頭文件 - 用于存放標準著色器meta通道中會用到的工具函數(shù)與宏

UnityStandardShadow.cginc頭文件 - 用于存放標準著色器陰影貼圖采樣相關的工具函數(shù)與宏

UnityStandardUtils.cginc頭文件 - 用于存放標準著色器共用的一些工具函數(shù)

StandardShaderGUI.cs腳本文件 - 定義了特定的自定義編輯器UI界面

? ? 其實在學習成長路上纸泄,也不乏有各路大神精彩分享與學習赖钞。如果想深入學習的了解,下面的文章也可以很好的學習閱讀聘裁!

1雪营、【基于物理的渲染(PBR)白皮書】(三)迪士尼原則的BRDF與BSDF相關總結:https://zhuanlan.zhihu.com/p/60977923

2、理解PBR:從原理到實現(xiàn)(上)https://blog.csdn.net/Neil3D/article/details/83783638

3衡便、理解PBR:從原理到實現(xiàn)(下)https://blog.csdn.net/Neil3D/article/details/84112481

原文鏈接:https://connect.unity.com/p/unity3d-qian-tan-mei-zhu-na-xie-shi-pbrji-zhu?app=true

歡迎戳上方原文鏈接献起,下載Unity官方技術社區(qū)app,在線技術答疑镣陕,發(fā)現(xiàn)更多資源干貨谴餐!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呆抑,隨后出現(xiàn)的幾起案子总寒,更是在濱河造成了極大的恐慌,老刑警劉巖理肺,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異善镰,居然都是意外死亡妹萨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門炫欺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎完,“玉大人,你說我怎么就攤上這事品洛∈饕蹋” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵桥状,是天一觀的道長帽揪。 經(jīng)常有香客問我,道長辅斟,這世上最難降的妖魔是什么转晰? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上查邢,老公的妹妹穿的比我還像新娘蔗崎。我一直安慰自己,他們只是感情好扰藕,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布缓苛。 她就那樣靜靜地躺著,像睡著了一般邓深。 火紅的嫁衣襯著肌膚如雪未桥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天庐完,我揣著相機與錄音钢属,去河邊找鬼。 笑死门躯,一個胖子當著我的面吹牛淆党,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讶凉,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼染乌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懂讯?” 一聲冷哼從身側響起荷憋,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐望,沒想到半個月后勒庄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡瘫里,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年实蔽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谨读。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡局装,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劳殖,到底是詐尸還是另有隱情铐尚,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布哆姻,位于F島的核電站宣增,受9級特大地震影響,放射性物質發(fā)生泄漏填具。R本人自食惡果不足惜统舀,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一匆骗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧誉简,春花似錦碉就、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至烹吵,卻和暖如春碉熄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肋拔。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工锈津, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凉蜂。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓琼梆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窿吩。 傳聞我的和親對象是個殘疾皇子茎杂,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

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