Principle BSDF 是 Blender 默認(rèn)的材質(zhì) shader 節(jié)點(diǎn)旭旭。
如果你剛接觸 Blender 怒见,或者對(duì)材質(zhì)還不太了解诱咏,那么見到 Principled BSDF 的選項(xiàng)一定有點(diǎn)懵:
這么多參數(shù)到底都是啥也殖?要怎樣調(diào)出想要的玻璃或泥土材質(zhì)窍蓝?
今天我們就來仔細(xì)了解一下這個(gè)「萬能」材質(zhì)shader腋颠。(如果你對(duì) Material、shader吓笙、texture 還感到茫然淑玫,建議先看一下 一文看懂材質(zhì)/紋理 Material, Texture, Shading, Shader 的區(qū)別)
什么是 Principled BSDF?
Principled BSDF 將多個(gè)層組合成一個(gè)易于使用的節(jié)點(diǎn)。 它基于迪士尼原理模型絮蒿,也稱為“PBR”著色器尊搬,使其與其他軟件兼容,如皮克斯的 Renderman?和虛幻引擎?土涝。 從 SubstancePainter? 等軟件繪制或烘焙的圖像紋理可以直接鏈接到此著色器中的相應(yīng)參數(shù)佛寿。
這是 Blender 官方文檔中對(duì) Principled BSDF 的說明。
可以說但壮,這是一款綜合型的材質(zhì)生成著色器(shader)冀泻,跟時(shí)下普遍使用的 PBR (Physically based rendering) 是原理類似的技術(shù)。
那么蜡饵,BSDF 又是什么弹渔?跟 BSDF 相似的還有一個(gè) BRDF :
BRDF - Bidirectional reflectance distribution function
BSDF - Bidirectional scattering distribution function
它們是 「雙向 反射/散射」分布函數(shù)的縮寫。
想要正確模擬真實(shí)世界中的光照溯祸,需要理解光遇到物體表面時(shí)發(fā)生的反射和散射肢专。
Non metals will exhibit both reflection and refraction.
Metallic materials only have reflection. All refracted light is absorbed.
BSDF 就是幫助我們實(shí)現(xiàn)更逼真的光散射效果的函數(shù)。
在 Blender 的舊版本中焦辅,默認(rèn)的材質(zhì)節(jié)點(diǎn)是 emission博杖。為什么后來改成了這個(gè)看似很復(fù)雜的 Principled BSDF 呢?Blender guru 在這個(gè)視頻 中分析了 Principle BSDF 的優(yōu)勢(shì)筷登,包括:
- 默認(rèn)處理 fresnel:渲染引擎自動(dòng)處理物體邊緣反光強(qiáng)于中心的光照效果
- 更合理的粗糙度:粗糙度增加欧募,fresnel 相應(yīng)減弱
- 金屬和絕緣體的區(qū)分:金屬反光有顏色,絕緣體沒有
- 其他一些技術(shù)細(xì)節(jié)
Principled BSDF 的參數(shù)
大致了解了 Principled BSDF 之后仆抵,我們?cè)賮硎煜ひ幌滤男┛此蒲刍潄y的參數(shù)。
作為材質(zhì) shader 的頭牌种冬,它的能耐一定不容小覷镣丑。下面這張官方文檔中的圖,十分直觀地展現(xiàn)了 Principled BSDF 的能力:
圖片左側(cè)就是 BSDF 的主要參數(shù)娱两,右側(cè)展示了設(shè)置為0~1不同數(shù)值時(shí)材質(zhì)的效果莺匠。
看似非常 overwhelming,對(duì)吧十兢?別暈趣竣,我們仔細(xì)來觀察一下,哪些行的最左側(cè)和最右側(cè)差別最大旱物?
其實(shí)只有這幾行:metallic遥缕,specular,roughness宵呛,transmission单匣。
這個(gè)觀察結(jié)果非常重要,它提示我們,BSDF 中最重要也是最常用的參數(shù)户秤,其實(shí)只有幾個(gè):
- Base color
- Metallic:大多數(shù)情況只取 0 或 1码秉,絕緣體為0,金屬為1鸡号,不需要取中間狀態(tài)
- Roughness
- Normal(bump mapping)
為什么沒有把 Specular(反光)列在里面转砖?因?yàn)榉垂獬潭雀馁|(zhì)的關(guān)系很大。如果是金屬鲸伴,反光會(huì)較強(qiáng)府蔗,而非金屬的反射較弱。所以一般不調(diào) Specular挑围,而是設(shè)置 Roughness 是 0 (非金屬) 還是 1 (金屬)礁竞。
更多的參數(shù)說明,可以參考官方文檔杉辙。
如何使用 Principled BSDF模捂?
接下來以 Suzanne 為例,看看如何使用 Principled BSDF 調(diào)節(jié)材質(zhì)蜘矢。
首先狂男,尋找并下載自己喜歡的材質(zhì)包(圖片分辨率最好2k以上),將材質(zhì)包中不同的圖片連接到節(jié)點(diǎn)的對(duì)應(yīng)參數(shù)品腹。一般來說岖食,圖片(從文件名可以判斷)對(duì)應(yīng)的參數(shù)如下:
- Base color 基礎(chǔ)色 —— 連接到 BSDF 中的 basecolor
- Metallic 金屬 —— 數(shù)據(jù)源為 Non-color data,連接到 BSDF 中的 metallic
- Roughness 粗糙度—— 數(shù)據(jù)源為 Non-color data舞吭,連接到 BSDF 中的 roughness
- Normal 法線 —— 數(shù)據(jù)源為 Non-color data泡垃,新建 Vector - normal map 節(jié)點(diǎn),新建 Vector-bump node 節(jié)點(diǎn)羡鸥,連接到 normal蔑穴,再連接到 BSDF 中的 normal
- Height/displacement 等高線 —— 數(shù)據(jù)源為 Non-color data,連接到 BSDF 中的 metallic
- Ambient occlusion 環(huán)境光遮蔽—— Blender已經(jīng)自動(dòng)處理了惧浴,不過在游戲引擎里需要用到
Node editor 的連線如下:
在圖片節(jié)點(diǎn)上游存和,還有兩個(gè)用于修改貼圖位置的節(jié)點(diǎn)
- Vector-mapping 節(jié)點(diǎn),連接 vector 到導(dǎo)入的素材
- Input-texture coordinates 節(jié)點(diǎn)衷旅,連接 uv 出口到 Mapping 的 Vector 入口
Ref
Principled BSDF — Blender Manual
Bidirectional scattering distribution function - Wikiwand
BSDF and BSSRDF - Interactive 3D Graphics - YouTube
Blender 2.8 How to use PBR textures with principled bsdf Cycles/Eevee - YouTube
How to Use Blender's New "Ultimate" Shader: The Principled BSDF - YouTube
cycles - Add a transparent image on top of a material - Blender Stack Exchange