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材質的思路走才是對的。具體怎麼做的話,還要說很多。可能關心的人不多,就寫到這裡了。


籠統講是父子關係,pbr就是physic based rendering,Vray 是封裝成圖形化界面的渲染器,讓使用者不用接觸底層的任何代碼,通過封裝好的介面值,去實現pbr渲染,同理ue4的材質系統也是封裝的圖形化界面(disney體系),各家的封裝方法不一樣,但目的都是把歷年siggraph的知識結晶用上來更好更快更易用的生產計算機圖像。
這好比nvidia發布了新的gpu晶元,各家自己設計電路板封裝成成品顯卡,就有了華碩Gtx1080,微星gtx1080。


PBR(Physically Based Rendering)是一套偏寫實風格的材質與光照渲染方案,是現在次時代引擎都引進的一個流行趨勢。

PBR的核心理念是依據現實的物理數據,為材質與光照建立一個參照標準,代替以前那種靠感覺調參數的思路,說白了就是提供材質與燈光的參照表給你照著調,這樣不管誰做的場景,或者放到不同項目里,燈光和材質都傾向於統一,也就是傾向於現實。

至於PBR與VR有什麼不同,本質上它們是不同領域的東西,一個用於遊戲實時渲染,一個用於靜幀和CG渲染。兩者相同的地方是在材質高光控制上採用了類似的思路。

以前的非PBR材質有高光顏色、高光級別與光澤度3個參數,也就是高光強度和範圍可以分開調(反射是一個額外的元素),比較自由,現在的PBR材質只用一個光澤度參數,將高光強度、高光範圍、反射(包括菲涅爾)整合到一起調,類似於3dsmax的VR高光,好處是高光直接有了反射、模糊反射、菲涅爾效果,壞處是對性能的要求也提了一個檔次。

這是它們在材質部分相同的地方。但VR本質上是一個插入到傳統材質與燈光系統中的GI解決方案,它的重要任務是全局光。

而PBR的燈光與VR完全不同,PBR並不包含GI(遊戲引擎沒辦法拖VR那種精度的GI),核心仍然是基於遊戲的各種摳性能的燈光技術,結合Image Based Lighting(基於圖像的照明)與AO(遮蔽陰影)來模擬全局光。另外PBR使用的是光度學單位,燈光也是按參照表調。

另外PBR為了區分以往的材質系統,調整了一些材質元素的叫法,比如以前的Diffuse(漫反射),現在叫Albedo,如果你看到這種稱呼的貼圖,你立刻就能識別到它是PBR材質,它旁邊通常還有一張法線貼圖和光澤度貼圖。

如果VR的重心是GI,而PBR的重心則是解決了材質的質感問題,遊戲引擎終於可以大量使用模糊反射(類似於當初VR反射模糊的出現),這對遊戲畫面有質的飛躍,所以接下來一段時間,大家都會熱衷於這個。

以上是我個人對CryEngine3引擎中PBR的心得,PBR在不同引擎看可能有不同差異,不要被我帶到溝里。


父類 與 子類 哈哈


戴老師講的很有深度,收益匪淺


pbr是一種簡化的適合於實時引擎的材質系統。基本是vray材質的極度精簡版。


推薦閱讀:

不同物理材質給人帶來的情緒感受差異是怎麼產生的?

TAG:材質 | V-Ray | 虛幻引擎 |