本文對于渲染師或者渲染愛好者來說是一道技術(shù)大餐,但你要有耐心,跟著筆者的思路從頭到尾看完,除了看圖之外更要看字,這道大餐才算是能真正吃上。
在進行渲染測試以及撰寫本文的時候,我盡量站在嚴謹、客觀的角度去看待Arnold、Vray和Mentalray這三款常用渲染器。
寫這篇文章最初的想法源于這篇帖子:《用一個場景打破AR的神話》,里面討論的內(nèi)容有所受教,但關(guān)于“Vray GI偏暖,Arnold
GI偏冷”的觀點本人持懷疑態(tài)度,抱著打破砂鍋問到底的原則,我決定深入測試Arnold、Vray、Mentalray三款“通用渲染器”在室內(nèi)渲染中的異同。帖子里那個測試場景非常典型,于是我拿來用到這個場景并做了輕微修改。本文少講表面操作,多講技術(shù)原理,有興趣的請往下看。請盡量不要跳著閱讀,否則思路會亂??赐旰笠苍S你會對這三款渲染器有新的理解。
本文著重討論以下四個內(nèi)容:
1、為什么Vray適合做室內(nèi)效果圖渲染?
2、Arnold、Vray、Mentalray,他們的全局照明技術(shù)差距在哪里?分別有什么特點?
3、在理解的基礎(chǔ)上用三種渲染器實現(xiàn)基本一致的渲染效果(更深入的了解Arnold、Vray、Mentalray的全局照明系統(tǒng),解決Arnold的色彩bug)。
4、Biased GI vs. Unbiased GI vs. Hybrid
GI?
感謝百度貼吧的Jaminna提供的場景文件,我稍作修改以更好的適應(yīng)本文的內(nèi)容。
我調(diào)節(jié)好的場景測試文件:點此下載
文件版本分別是:
maya2013 64位
maya to arnold 1.0.0.1
vray for maya 2.30.01
mentalray for maya 2013.0 - 3.10.1.4(maya2013自帶)
-----------------------------------------------------------------------------
場景描述:
場景的模型和材質(zhì)非常簡單,全部的shader都是lambert,不攜帶任何光澤反射(specular)、鏡面反射(reflection)、折射(refraction)、3s等內(nèi)容??偠灾褪呛喕梢粋€純diffuse漫反射環(huán)境,這樣能夠?qū)W⒂跍y試漫反射全局照明在arnold、vray、mentalray中的異同。
全局光,其英文名叫Global
Illumination,翻譯過來叫全菊照明,哦不對是全局照明,也可以叫間接照明,我個人更接受間接照明(Indirect
Illumination)這個叫法。英文簡稱叫GI,在常用渲染器中,全局照明通常指的是全局漫反射照明。
測試燈光環(huán)境搭建:
1、測試場景中使用了一盞平行光來模擬太陽直射光,然后根據(jù)渲染器的不同,arnold用了aiSky來作為藍天的間接照明,vray使用了Override
Environment的內(nèi)容來作為藍天,mentalray使用了Image Based
Lighting來作為藍天背景。天空的顏色與顏色強度在三個渲染器中我都設(shè)置為完全一致。但是Arnold的aiSky中顏色設(shè)置有bug。
2、場景中平行光在Vray和Mentalray渲染層中的燈光強度為2,在Arnold
渲染層中相對應(yīng)的強度值為2*3.14=6.28,我不能很好的解釋為什么在本場景中arnold的燈光強度要乘以π才能得到實際等值于Vray和Mentalray中2的燈光強度,但經(jīng)過測試的結(jié)果確實如此。
3、本次測試在三款渲染器中全部使用線性工作流程。
注:你可以下載打開測試文件看看,對理解本文更有幫助。
-----------------------------------------------------------------------------
一、用戶常用默認設(shè)置下的測試結(jié)果對比:
一款商用渲染器的好壞,易用性是一項很重要的評判指標,我拿到這個場景后根據(jù)arnold、vray、mentalray的基本特點,使用了一般情況下最常用的設(shè)置,打開了全局光(arnold的diffuse的反彈次數(shù)為3,vray使用irradiance+light
cache,mentalray使用finalgather),并把采樣設(shè)置到產(chǎn)品渲染級別,其他的參數(shù)盡量使用渲染器默認的設(shè)置,得到了如下三張圖的效果:
看到這張圖的親們,請先不要激動,不要產(chǎn)生偏激的想法,先把本文看完再做評論。
在最常用的設(shè)置下,三種渲染器得到的結(jié)果差別很大,arnold整體照明偏冷,vray偏暖,mentalray偏黑且質(zhì)量低下,渲染時間上arnold最慢。
用戶常用默認設(shè)置下的結(jié)論:
Mentalray的常用設(shè)置渲染的結(jié)果基本沒法看,從這一點可以看出mentalray的易用性偏弱。
-----------------------------------------------------------------------------
接下來讓我們來做一些改進,一是去掉arnold中aiSky偏色的bug,二是把mentalray渲染的挫效果進行提升。
1、解決aiSky的偏色bug。
在這里我也提到過arnold在aiSky使用純色的情況下,顏色有bug,在nuke中取色顏色明顯不對,也就是說你在aiSky里設(shè)置一個<<0.8,0.9,1.0>>的顏色值,渲染得到的結(jié)果并不等于<<0.8,0.9,1.0>>,而且這個bug和gamma值什么的一點關(guān)系都沒有。解決的方法就是建立一個gammaCorrect節(jié)點,設(shè)定顏色為<<0.8,0.9,1.0>>,gamma參數(shù)保持為1,然后連接給aiSky的Color通道,見下圖:
上圖是使用arnold渲染器的情況下有顏色bug的渲染圖和去除bug之后的渲染圖的對比,可以看到原本的淺藍色天空在出bug的情況下,變得更深,因此房間的間接照明偏冷,去除bug后房間的冷色調(diào)明顯減少。結(jié)果更接近Vray使用經(jīng)典的Irradiance map+light cache得到的渲染效果。 2、增強mentalray渲染的效果。
這個場景屬于半封閉場景,因此間接照明的使用是否得當將直接影響到室內(nèi)環(huán)境的光線充沛度,在僅僅采用finalgather作為間接照明技術(shù)的情況下,mentalray只能得到反彈一次的間接照明采樣,對于室內(nèi)場景來說遠遠不夠,這就是為什么mentalray只開fg渲染室內(nèi)特別黑的原因。 所以,讓我們同時開啟mentalray渲染器面板中的Global Illumination的勾,并在平行光下開啟mentalray選項卡下的emit photons,調(diào)節(jié)相關(guān)的值,又提升了一些finalgather的參數(shù),得到如下渲染結(jié)果(注意mentalray在渲染為exr格式并勾選Enable Color Management并將設(shè)置都改為sRGB的情況下,輸出的結(jié)果在nuke中和在render view中看到的不一致,因此請關(guān)閉Enable Color Management并在nuke中查看mentalray渲染出來的exr,并且一定記得把exr位深設(shè)置為32bit): 這個結(jié)果更進一步的接近Vray渲染的結(jié)果,只是黃色調(diào)更重一點,暗部更暗一點。 1、Mentalray與Vray和Arnold相比,需要花費更多的參數(shù)調(diào)節(jié)時間去得到理想的效果。 2、Arnold的aiSky的顏色bug確實存在,但可以解決。 ----------------------------------------------------------------------------- 從上圖可以看到,三種渲染器得到的結(jié)果是越來越一致了,但現(xiàn)在仍然存在兩個問題:1、arnold渲染的結(jié)果為什么還是偏暗?2、mentalray渲染的結(jié)果為何過于偏黃? 第二個問題我本人目前沒找到答案。 關(guān)于第一個問題“Arnold渲染結(jié)果偏暗?”我們可以好好探討下: 影響間接照明充沛度的關(guān)鍵因素是什么?是間接照明反彈次數(shù),在不同的渲染器里有不同的叫法,比如gi bounce、ray depth等,arnold渲染器默認的漫反射照明的反彈次數(shù)為1(見下圖) 而我在本文中之前渲染所使用的diffuse depth=3,效果比1要好的多,但還是比較暗,角落照不亮,如果我把diffuse depth設(shè)置為30呢?我們來看下圖分別設(shè)置diffuse ray depth=1、3、30的渲染效果對比: 那么我們回過頭來看看arnold的diffuse ray
depth=30的渲染結(jié)果和之前Vray和mentalray渲染結(jié)果的對比:
從上圖可以看出,Arnold在diffuse ray depth=30的時候,渲染結(jié)果與Vray的渲染結(jié)果已經(jīng)十分接近了(但渲染時間變得很夸張),因此可以判斷Vray和Arnold在GI算法設(shè)計上遵循著同樣的能量守恒原則,并不存在“這個渲染器的渲染風(fēng)格偏文藝,那個渲染器的渲染風(fēng)格偏小資”這種感性的說法。
Mentalray的GI效果與Vray也是類似,只是更加明顯的傾向于“模擬近似算法”、“糊糊的”、“細節(jié)不足”等感覺。差距就在于mentalray使用的Global
Illumination技術(shù)過于老舊。這點是硬傷。
我們之前說過,影響間接照明充沛度的關(guān)鍵參數(shù)是GI反彈次數(shù),Vray使用Irradiance map+Light
cache技術(shù)得到效果直接默認就很好,根本就不用像arnold那樣需要去人為調(diào)節(jié)什么ray depth,這是為什么呢?
導(dǎo)致Vray渲染間接照明燈光充沛的的原因,要歸功于Vray獨有的Light
Cache(LC,燈光緩存)技術(shù)。燈光緩存技術(shù)牛逼在于它默認的ray
depth=100,更牛逼的地方在于無論這個depth設(shè)置為多高,都不會明顯減慢渲染速度。
所以這也解釋了為什么渲染室內(nèi)效果圖大部分人都選擇Vray,因為Vray的IR+LC的組合渲染室內(nèi)又快效果又好,全局光看著最舒服,轉(zhuǎn)角細節(jié)也保持的不錯,再加上光子烘焙技術(shù),室內(nèi)室外游覽動畫也都不會閃。在室內(nèi)效果圖渲染這塊領(lǐng)域,arnold不是不行,而是arnold要得到一張成品圖要更慢。從效率和效果上綜合來說,必然是Vray占優(yōu)勢。
有人會說我可以在窗戶上用area light(portal light)發(fā)射天空顏色進行直接照明來彌補ray
depth不足導(dǎo)致的暗角,這方法是可以,但僅僅是一種提升的手段,即便用了area
light仍然無法在室內(nèi)效果圖領(lǐng)域與Vray抗衡。
關(guān)于GI反彈次數(shù)的話題,我們一直在講arnold和vray,Mentalray其實也有類似的參數(shù),它在Global Illumination的選項下面,見下圖: 寫到這我發(fā)現(xiàn)了自己之前的一個錯誤,mentalray的gi默認的photon reflections和phont refractions的值是5,被我直接開到100了,也就是說之前mentalray開FG+GI渲染的結(jié)果都是100的參數(shù)渲染的,按照默認的情況下我應(yīng)該以5的值去渲染,抱歉。 如果把photon reflections和phont
refractions的值設(shè)置為5,結(jié)果和在arnold中將diffuse ray
depth設(shè)置為5的結(jié)果類似,同理,如果把photon reflections和phont
refractions的值設(shè)置為3,結(jié)果和在arnold中將diffuse ray
depth設(shè)置為3的結(jié)果類似。Mentalray的結(jié)果我就不上圖了。
最終我們基本統(tǒng)一了arnold、vray、mentalray三種渲染器渲染同一個室內(nèi)場景的效果,見下圖:
如果arnold的depth開到100,效果應(yīng)該會更好一點,但是渲染速度基本接受不了。 最終統(tǒng)一渲染效果的結(jié)論:
1、在三種渲染器中,得到理想的室內(nèi)全局照明效果,mentalray所花的人工調(diào)節(jié)測試時間最長,Arnold渲染時間最長,Vray使用IR+LC模式速度最快,質(zhì)量最好。 2、在三種渲染器中,合做封閉、半封閉場景的照明渲染,Vray表現(xiàn)最佳,也就是說做室內(nèi)效果圖渲染首選Vray。 3、在三種渲染器中,Arnold使用起來最簡單,最容易上手,但要成為進階用戶需要不少渲染理論知識。 4、在三種渲染器中,Vray技術(shù)花樣最多,但技術(shù)封閉性比較好(也就是很多用戶不需要去理解Vray渲染背后所發(fā)生的事情)。 5、在三種渲染器中,Mentalray界面最不友好,操作最繁瑣。 以上就是對于這個場景我所理解到的東西,希望對各位理解三種渲染器的GI技術(shù)有所幫助。 ----------------------------------------------------------------------------- 接下來我們討論另一個關(guān)于GI的話題,就是物理算法(unbiased,無偏差算法)與模擬算法(biased,有偏差算法)的比較。 長話短說,我直接給我了解到的結(jié)論:
如果你在Mentalray中采用的是FG+GI的組合,對應(yīng)到Vray中就是Irradiance Map+Photon Map的組合,也就是說FG與Irradiance Map是類似的技術(shù),GI與Photon Map是類似的技術(shù),遺憾的是Photon Map比較老舊,效果也不夠好,已經(jīng)被更好的Light Cache所取代,而mentalray還只能繼續(xù)用Global Illumination。 Mentalray沒有物理算法的GI技術(shù),Vray既有物理算法又有模擬算法,Arnold只有物理算法。 Vray的Brute-Force(暴力準蒙特卡洛算法)與Arnold GI的算法是類似的,也就是說,如果在Vray中采取BF+BF的GI組合,得到的渲染結(jié)果與Arnold的渲染結(jié)果會更加相似(幾乎一模一樣),見下面4張圖: 以上兩張為Arnold與Vray中depth=3時,同時采取暴力算法的渲染圖對比 以上兩張為Arnold與Vray中depth=30時,同時采取暴力算法的渲染圖對比
可以下載圖片到nuke里認真比對,圖片我上傳的是無損png文件。 通過渲染測試數(shù)據(jù)我們可以發(fā)現(xiàn),Vray采用BF+BF的GI算法的情況下,得到的渲染結(jié)果與Arnold幾乎一模一樣!在同樣采取暴力算法的情況下,Arnold較Vray的渲染速度優(yōu)勢在于低depth的情況下,一旦depth變得很高的時候,Arnold的暴力算法會比Vray更慢。當然,我只是針對這個場景的測試結(jié)果說話,并不敢保證在所有場景渲染中都能得出這樣的結(jié)論。 至此,Arnold是不是一個“那么神奇”的渲染器,我想認真的讀者可能會在心里小小懷疑一下了! -----------------------------------------------------------------------------
在本文的所有用到Vray Light Cache渲染的圖片中,LC的參數(shù)除了depth外都保持的是默認值。 以上的結(jié)論都是針對靜幀渲染。動畫渲染的結(jié)果會是怎么樣?是不是各種GI技術(shù)會出現(xiàn)大跌眼鏡的結(jié)果,也許我會另寫一篇評測文章,還請繼續(xù)關(guān)注我的博客,不用記地址,只要百度搜索“cg風(fēng)火連城”或者“cg烽火連城”即可。
關(guān)于Mentalray: 關(guān)于Arnold: 關(guān)于Vray:
全文完
歡迎有不同見解,可以博客留言或者微博留言,也可以加Vray&Arnold渲染技術(shù)交流群:84745035 討論。 對于網(wǎng)友留言的補充: 1、arnold的aiSky的顏色bug,在使用hdr與jpg貼圖的時候,不存在,只有在直接賦予rgb顏色的時候,才有bug。 |
|