1. 程式人生 > >pbr材質系統和vray材質系統有什麼不同

pbr材質系統和vray材質系統有什麼不同

現在遊戲行業開始流行起來的pbr材質系統,在CG渲染領域已經發展很多年了。就是說,遊戲行業的材質在慢慢追逐影視的效果,最近這兩年才比較接近了。

所以,CG渲染領域用的材質可以實現幾乎一切遊戲pbr材質可以實現的效果,反之則不行。

具體回答問題:
pbr材質(這裡說的是最流行的metalness roughness模型)使用的引數是albedo metalness roughness normal,而vray材質的主要對應引數有diffuse specular glossiness normal或者bump

albedo就是大家熟悉的diffuse,也就是物體的固有顏色。

metalness翻譯過來是金屬度,描述材質是金屬還是電介質,這是給大家提供的一個感性解釋,實際上這個引數真正控制的東西是F0,也就是菲尼爾反射中,與攝像機視線垂直的面的反射率,當metalness值為0的時候,F0的值是0.04,也就是IOR為1.5的時候對應的F0;而當metalness值位1的時候,F0的值是1;metalness是0-1的中間值的時候,F0也會在0.04和1之間進行插值,我猜是線性插值。在這個過程中F90不變,永遠恆定為1。這其實就是對菲涅爾效果的粗略描述了。

在vray的材質球上,沒有一個能跟metalness相對應的引數,可能有些人會以為是specular,控制反射強度的這個引數。實際上不行。因為specular會整體改變整個材質球的反射強度,而metalness只改變F0的正面反射率,側面永遠是1。

不過剛才也說了,F0和折射率,也就是IOR,有對應關係,可以通過公式進行換算。所以vray裡,IOR某種程度上可以對應metalness。

roughness = 1 - glossiness 這兩個單詞本身就是反義詞。

normal或者bump不用說了。

以上只要完全把屬性一一進行對應,vray的材質可以完全還原pbr材質的效果。但是vray的材質還有很多很多別的功能,比如說透明、半透明、物理演算法的3s效果,diffuse 本身的roughness屬性都是pbr沒有的。



另外,有些pbr材質具有specular屬性。比如說UE4的pbr材質,然而這裡的specular和vray裡的specular有些近似,但不同。UE4材質球的specular指的其實也是F0的反射強度,預設0.5對應的就是F0的0.04,往0調會略微降低F0,往1調會略微提高F0。


還有一點非常關鍵,我放在最後講。就是原則上用正確的方法去連結貼圖,可以讓vray材質球得到和pbr材質球非常近似的視覺效果,但是對於邊緣的反射強度處理是不一樣的,雖然說由於菲涅爾反射的存在,模型的邊緣處反射率恆定為1,但是當物體微表面粗糙的時候,光線在邊緣的地方,容易發生相互的反射、遮擋等等,會讓反射率從巨集觀上看起來有所下降。目前我測試過幾款渲染器,vray arnold 和mr對於邊緣處反射模糊的處理和pbr材質球都不一樣,並且實際上是錯誤的;唯一我發現正確處理的是redshift的材質。

如果你使用的是vray arnold 或者mr渲染器,並且沒有意識到這個問題,那麼可以說絕大多數你調的材質都是錯的。按照pbr材質的思路走才是對的。具體怎麼做的話,還要說很多。可能關心的人不多,就寫到這裡了。