PBR材質:基本原理和簡單製作

概要:介紹PBR材質的基本原理以及製作一個簡單的PBR材質
參考資料:BASIC THEORY OF PHYSICALLY-BASED RENDERING
如有問題,多多指正。
侵刪。

1.PBR是什麼,光線的基本原理。

PBR即Physically-based rendering,基於物理的渲染。基於物理的渲染,即通過計算光線與物體表面的交互狀態而實現模擬真實世界畫面的一種渲染方式。通常用於影視特效,寫實風格的遊戲,工業領域。現實中的環境,肯定不止一種光源,而是有很多光源一起發生作用,光線互相交織在一起的。
寫實的材質

光的組成包括:光源,顏色,亮度,衰減,強度,形狀,以及無數的“線”。當光或者說光線打到物體上,可以發生兩種反應,一種是折射,一種是反射。折射的光線會被吸收,或者被離散,而反射的光線則會繼續進行反射作用。根據光的折射原理,光不是在物體的表面進行折射的,而是在第二表面,也就是進入物體第二表面之後,發生的折射效應,此時光線會被離散或吸收,吸收使得光的強度變小,而離散使得光的方向發生改變,強度則不會發生改變。而光在各種物體的表面,折射和反射的情況也是非常不同的,比如在粗糙的物體,物體的反射就會增多,光線經過多次漫反射,其光滑度就很低,比如毛衣,牆磚。

2.相關的幾種基本概念和PBR材質的構成(以unity標準材質爲例)

DIFFUSION & REFLECTION(擴散和反射)

反射:當光線打到物體表面時,一部分光線會被反射,在法線的相對側根據某個角度進行反彈,就好像一個籃球打在牆上,會被反彈回去,這個概念比較好理解,從法線的一側,然後碰到表面,在法線另一側進行反彈。而在光滑的表面,通過反射,就容易得到一種鏡像的效果,也就是像鏡子一樣,比如拖的很乾淨的地面,因爲光滑,反射就容易出現“鏡像”的效果。

擴散:當然,光打在物體上,不止會發生反射,還有發生別的反應。比如有一些光線進入了物體內部,被物體吸收或者是轉換成了熱量。而發生反射的,則通過多次反射進入你的眼睛或者是攝像頭,然後被你看到,這就是我們常說的“漫反射”。我們把這種光稱之爲diffuse light(散射光)。對於不同波長的光,散射光(diffuse light)的吸收和散射通常會大不相同,所以對於一個對象,我們要給它顏色,或者說,每個物體,其實都是有顏色的。而散射光部分光線的反射並不是有規律的反射,而是隨機或者說非常混亂的反射,這部分光在進行計算的時候,會給一個反射率,作爲計算這個“部分”的多少或者說反射的多少。

TRANSLUCENCY(透明度)

透明度;這個比較好理解,但是因爲某些物體的屬性,比如蠟燭甚至是人的皮膚,光線的散射會更復雜。如果一個物體表面足夠薄,光線可以穿過該物體,這個物體就是“半透明的”,光線會到達裏面那一層,要處理這種效果,不能簡單使用顏色,而是需要特殊的陰影系統。而另外一種,“全透明”物體,也就是如玻璃,光線可以穿到另一邊,在這個物體裏面幾乎不會發生散射。

Metallic(金屬)

金屬:顧名思義,就是表現金屬屬性的一個參數。

Albedo(RGB)(反照率)

Albedo英文原意是反照率,其實就是基礎顏色或者貼圖,在上文中我講到,一個物體最基本的是會有顏色的,透明的物體物體,也是有顏色的,所以這個Albedo也就是基本的顏色(或貼圖)。

Smoothness(光滑度)

表現物體的光滑度的一個參數,通常會與金屬Metallic一起使用。

Normal Map(法線貼圖)

法線貼圖就是在原物體的凹凸表面的每個點上均作法線,通過RGB顏色通道來標記法線的方向,你可以把它理解成與原凹凸表面平行的另一個不同的表面,但實際上它又只是一個光滑的平面。對於視覺效果而言,它的效率比原有的凹凸表面更高,若在特定位置上應用光源,可以讓細節程度較低的表面生成高細節程度的精確光照方向和反射效果。
簡而言之,就是使用該帖圖,可以使畫面更有立體感,同時豐富更多的細節。

Height Map(高度貼圖or視差貼圖)

高度貼圖是使用法線投影進行渲染時存儲源對象相對高度的灰度貼圖。
可以將高度貼圖作爲目標對象上置換貼圖。這是向低分辨率對象的邊緣添加細節的方式,因爲邊緣本身不受發現凹凸貼圖的影響。高度貼圖在某些時候可以糾正法線貼圖製作凹凸感時的錯誤,使物體表面的細節更加真實。

Occlusion(遮擋剔除)

參考unity的官方文字:
The occlusion map is used to provide information about which areas of the model should receive high or low indirect lighting. Indirect lighting comes from ambient lighting and reflections, so steep concave parts of your model like a crack or a fold would not realistically receive much indirect light.

Occlusion texture maps are normally calculated by 3D applications directly from the 3D model using the modeller or third party software.

An occlusion map is a greyscale image, with white indicating areas that should receive full indirect lighting, and black indicating no indirect lighting. Sometimes this is as simple as a greyscale heightmap
for simple surfaces.

At other times, generating the correct occlusion texture is slightly more complex. For example, if a character in your scene
is wearing a hood, the inside edges of the hood should be set to very low indirect lighting, or none at all. In these situations occlusion maps will often be produced by artists using 3D applications to automatically generate an occlusion map based on the model.
上面的意思大概是,遮擋貼圖是一種計算物體表面光線的強度貼圖,通過使用它,可以對物體的每個部分的吸收到的光線進行區分,部分地方會受到較多的光線,而其他部分,則會受到更少的光線,這樣可以更好地處理物體的明暗細節。在遮擋貼圖中,白色的表示會吸收到更多的光線,而越黑的,則會吸收到更少的光線。

Emission(自發光)

自發光:聽字面意思就很清楚,可以使物體自身發光,因爲生活中自發光的材質也有不少,如燈管,顯示屏等。

3.使用PS快速製作一個PBR材質

以unity裏面的standard材質爲例,製作一個足球的PBR材質:
在這裏插入圖片描述

首先,足球肯定是需要一種顏色,或者是貼圖的,根據足球的紋理,邊縫是凹下去的,而球面的五邊形是凸出來的,所以這裏我們先找一張鋪平的足球貼圖,作爲Albedo貼圖
在這裏插入圖片描述
在這裏插入圖片描述
首先,使用PS繪製Noremal Map,也就是法線貼圖
在這裏插入圖片描述
加上的效果如下,可以看到,中間的縫有了一點的凹凸感:
在這裏插入圖片描述
接下來是金屬貼圖,因爲足球的表面其實是半光滑的,金屬感肯定是沒有的,但是在貼圖上還是要進行設計。金屬貼圖爲黑白圖,越黑的部分不顯示金屬特性,越白的部分會顯示金屬特性,所以直接將Albedo的貼圖作爲金屬貼圖即可,調節光滑度進行調整。
在這裏插入圖片描述
而高度貼圖則很不一樣,黑的部分會凹下去,白的部分則會凸出來,所以我們需要把足球的貼圖縫隙設計成黑色,其他設計成白色。
在這裏插入圖片描述

在這裏插入圖片描述

至於Occlusion Map,按理來說,足球的底下是暗的,上面應該亮一點,所以在ps裏面嘗試將左右兩邊的亮度減低
在這裏插入圖片描述
最後效果:
在這裏插入圖片描述

可以看到,足球的表面有了一種明顯的凹凸感,但是因爲貼圖處理的不是特別好,所以顯得有點模糊,這一點需要再進行細緻的調整。

總結:其實PBR材質的渲染與其shader的編寫方式有很大的關係,但是很多高深的數學知識,會容易勸退人,本節也只是瞭解了一些簡單的原理,其知識量其實是很大的,一下子無法學完,需要慢慢耕耘。如果是美術人員,只是通過工具實現PBR材質的效果,也是可以的,PBR材質製作的模型效果,算是頂級的了,當然,前提是你願意打磨。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章