影視和引擎當中的PBR材質和線性色彩空間

pbr

Pbr材質應該都熟悉吧,就是如今遊戲影視廣泛應用的物理材質,pbr有很多種實現方式,而且不同的pbr有不同的特點。如今pbr總是和線性空間聯繫在一起,雖然兩者並不是絕對依賴,但都是爲了讓渲染更加真實更加理性化的方式。

pbr在非固有色貼圖上需要更明確定義貼圖是是線性的,原因是一般固有色貼圖需要人的感知,而且因爲歷史遺留問題,大多數固有色貼圖都是需要人眼感知的,人眼感知就會產生gamma校正問題,技術就不細說了,因爲很多技術博客都提到了,通俗點的說法就是人眼看到物體的顏色其實已經經過視覺和大腦的處理了,並不是物體以前的顏色了。

Untiy3d默認使用左側gamma方式容易曝光,右側是線性的,不容易曝光

 

線性空間下物體效果,最大的優勢就是光照的自然,特別是在光影在物體表面的衰減上

下面是對比圖

離線渲染下也是非線性空間下的物體容易過度曝光,或者灰濛濛的

 

 

所以固有色通常標記爲srgb,表示這是人眼裏看到的顏色,這樣計算機就能將這類圖片在內部轉換成線性的,來讓整個場景貼圖計算更符合自然

而非srgb貼圖,通常是可視化製作出來的(比如如今的substance painter之類),

實時渲染

Unity3d總的線性空間和圖片srgb設置

Unity3d默認是gamma空間,這是因爲線性空間需要支持OpenGL ES 3.0,部分手機和蘋果機不支持

Unreal4當中的默認就是線性空間,這也是爲什麼很多ue4項目質感很不錯的

貼圖處理格式還是要製作者根據實際情況調整

離線渲染

(這裏以maya2016 arnold4爲例)

以前老版本設置比較繁瑣,這也是爲什麼以前很多渲染項目中效果不如引擎中的,不僅需要自己改色彩空間,設置圖片是否是線性還需要再連節點(因爲以前版本arnold不能識別maya中的貼圖信息)。但是2017以後arnold5已整合如maya默認即線性空間,只需要關係圖片是raw還是srgb了。

 

可以看出線性空間和PRB都是必要的。

 

製作環節

這裏要說下一般有顏色的貼圖都是srgb的

法線貼圖是線性的,但以前軟件一般都能自動把法線貼圖認對,很多製作人員可以手繪法線貼圖,這是爲什麼呢,因爲熟練...

還有以前使用的HDR環境貼圖其實也是線性的,有人問那麼mask貼圖或者3s貼圖等是線性的嗎?答案就要看你的製作環境了,如果如今在pbr相關dcc軟件中製作,那麼這些貼圖都是線性的,如果是以前的素材,那八成都是srgb的了,因爲以前軟件多爲非線性空間,貼圖效果都靠對着湊,所以如今在線性空間裏都是可以算srgb的,雖然大多數貼圖還是要重新湊。

 

一般製作人除非項目指定某種金屬(或者高精度項目),其實並不需要關心哪種顏色代表的是金屬度多少多少,粗糙度多少多少,因爲我們只需要在相關軟件裏觀察調整質感導出貼圖,在其他軟件裏放上,或渲染或實時,整體效果是對的就可以了。現在相關貼圖軟件比如sp,sd之類直接就能在正確的線性空間下預覽pbr材質的效果。

 

 

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