PBR work flow in Unity HDRP

前言

Physically Based Rending ( 簡稱PBR)

顧名思義就是基於物理表現的渲染,光線接觸在物體表面能夠表現出更為豐富的細節。雖然會得到趨近物理正確的結果但實際上根據不同的渲染引擎,得到的結果還是有所不同。以下先以Unity HDRP所使用到的Channel進行解說


真實世界的顏色不只是單一顏色

藉由不同的channel完整的製作PBR材質

Diffuse Map

在Unity HDRP稱為Base Map

Base color information of the surface (表面顏色RGB),沒有含反光以及發光的材質diffuse與 diffuse strength (或 Kd, 或diffuse gain) 都對應一樣的數值。當光線從各個方向到達,這些數值會加乘,產生漫射的效果。唯一差別是給你不同程度的控制,例如RGB,另一個讓你控制整體的強度。

而diffuse指的是,增加一個繪圖圖層,上面模擬出自身陰影或是類似烘焙的occlusion map 這是一種增加表面細節的手段。

將Base Map放上channel後會出現基本的Metallic 以及 Smoothness可以調整參數,如果有Bake AO的話則可以另外調整AO Remapping

Mask Map

Mask Map 是Unity HDRP 新的渲染方式,它為我們提供了在Unity中實現真實結果的資源。 HDRP為Unity新的Lightning系統帶來了Physical Light Units (PLU),新的volume包含有關霧,視覺環境,陰影,反射等的信息。

Mak Map 包含了四種原本在3D世界常用的材質通道

  1. Metallic Map
  2. AO Map
  3. Detail Map
  4. Smoothness

Red channel: Metallic mask. 0 = not metallic, 1 = metallic.

Green channel: Ambient occlusion.

Blue channel: Detail map mask.

Alpha channel: Smoothness.

在Substance 裡面 AO Map 以及其他基本的Map都可透過Bake或是內建渲染技術輸出,而其中以Detail Map較為特別,他是屬於獨立製作的。

Detail Map

The Detail Map細節貼圖是引入HDRP的新貼圖,並與其他貼圖的合併,這些貼圖為材質添加了細微的細節。如:皮膚的毛孔、眼球的細節。

Detail Map使用以下通道:

紅色:灰度使用Overlay Blending疊加混合

綠色:Normal Map法線貼圖的Y通道

藍色:Smoothness平滑度

Alpha:Normal Map法線貼圖的X通道

Normal Map

Normal Map 中文稱法向量貼圖。簡而言之,Normal Map是透過光源與法向量的計算(光將會根據法向量在物體表面產生強弱、濃淡的表現), 取得該物體表面凹凸的高度資訊,並將此資訊儲存在一張RGB點陣圖中,也有另一個說法,Normal Map 意指將一個高模在外面包一層低模進行Bake,用在低解析度模型,偽裝出高解析度的模型細節表現。

R紅色channel儲存X 軸的資訊,G綠色channel儲存Y軸的資訊,而藍色channel則儲存Z軸的資訊。使用normal map的基本作法是把複雜模型上的細節紋裡,藉著投影的方式轉移成為低面數模型的normal map,只要不是近距離的比較觀察,在光影表現上兩者看起來是有著相同的細節。例如:藍色( Z軸)越深的地方,代表其深度越明顯。

Height map

Height map 又稱視差貼圖,當然也可以放bump map

其實也是一種法像貼圖類似的概念, Height map通常與Normal map結合使用,通常它們用於為紋理貼圖負責渲染大凸起和凸起的表面提供額外的定義。

雖然Normal map修改了紋理表面上的光照,但是視差高度貼圖更進一步並且實際上移動了可見表面紋理的區域,以實現一種表面遮擋效果。

顏色越深代表深度越深,反之越白的地方則為越凸

正常的Unity HDRP 並沒有出現height map的選項, 需要在右側的Displacement Mode選擇Pixel displacement即可匯入Height map

Coat Map

HDRP使用Coat mask作為透明塗層效果。 Coat mask 可在參數調整,0為dafault狀態。使用“Coat mask”模擬出“汽車烤漆”或“塑料”等材質,在使用Coat mask的時候不需要特別給它材質,在正常的情況下調整參數就可以看出汽車烤漆效果。

Substance painter導出材質到Unity HDRP (自訂)

在substance painter中導出時添加新的配置,點擊+號新增一個配置,然後在output maps中點擊create右邊的類型就能創建一張貼圖,名字決定了創建的貼圖有什麼通道,譬如RGB就是常見的色彩貼圖。這裡選RGB+A通道來生成unity的顏色貼圖

導出base color材質

將按鈕Base Color拖到RGB上,鬆手,會彈出一個框,選擇RGB Channels。這就表示substance painter在輸出時會在新建的這個貼圖的通道裡輸出sp裡的Base Color的色彩數據。注意,拖動RGB到相關通道後鬆手時應該選擇RGB Channels,拖動其餘的均選擇Gray Channel

Painter PBR to Unity HDRP Work flow – Mask map

這邊使用的材質導出以Mask map最為複雜,其他的只要依照以下的概念即可完成

Base map – RGB+A
Normal map – RGB
Emission map – RGB
Mask map – RGBA

Mask Map 導出材質概念

Red channel: Metallic mask. 0 = not metallic, 1 = metallic.

Green channel: Ambient occlusion.

Blue channel: Detail map mask.

Alpha channel: Smoothness.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *