工作上的需求,google 了好一陣子,想看看有沒有人利用 Renderman 做出很棒的插畫風格,結果連結到 在 CGTalk 上看到一則 Renderman for Maya VS. Mental Ray 的討論串。
這一系列的討論文,源起於一位在丹麥某動畫室的工作者。他心血來潮想做個 RfM ( Renderman for Maya ) 與 Mental Ray 的比較,然後得出了一個結論:除了 Ray Tracing 相關的 rendering,其它的部分,RfM 都大大地勝過 Mental Ray。結果就因為他的說詞「太強硬」,加上他本人又對 Mental Ray 不太熟,所以其實兩邊的調校與設定沒有很一致,比較起來有點不公平(ps. 其實我覺得他也不太熟 Renderman 啦,只是剛好 RfM 的 preset 結果還不錯而已,然後因為和 Maya 的整合非常的好,使用操作起來很方便,所以他就一直在稱讚 RfM 了),於是就被「群起圍攻」啦。
愈看愈有勁,不過也僅僅是看到第四或第五頁,就沒力了。首先的感覺是:「吵架是人的天性吧,尤其當吵的東西是你喜愛或有強烈主觀的東西時,會一個不小心,從一開始的善意推廣演變成困執地捍衛…這過程實在太常見於日常生活了」。
重點是,經過大家的討論,與自己對 Renderman 的了解,有如下的初步結論:
- Ray Tracing 這一部分,因為 Renderman(更正確一點來說,是 Pixar’s RenderMan,縮寫為 PRMan)使用的是 scanline rendering algorithm,所以「註定」會輸給專職於這一塊的 Mental Ray,這很合理也很明顯。因此,當處理的是反射(reflection),折射(refraction)等,這些需要用到 ray tracing 特性的場景時,使用 Mental Ray 是一個比較不錯的方案。
- Depth of Field 這一部分的比較,好像是平分秋色,不過我是直接略過這一塊。整個來說,我個人覺得 DoF 還是透過輸出 depth pass,然後由 compositing 這一環節處理掉比較快,拿 renderer 花時間在這一塊,是有那麼點兒不值得啦,畢竟 render farm 真的挺貴的。
- Motion Blur 的部分,那就不得不說,Renderman 很厲害,可能也是它最厲害的一塊了。它真的表現得很不錯,而且很快。雖然 Mental Ray 也可以變得很快,不過參數的調校上,不是很輕易就可以做到的,而品質上也相對地有些影響。有趣的是,這兩個 renderer 算出來的 motion blur 常常不太一樣,讓我開始認真思考「倒底怎麼樣的 motion blur 才叫好?」。
- 計憶體管理與使用的情況,也是 Renderman 勝出,這得歸功於 Renderman 使用的是 REYES 這個有名的架構。至於計憶體的管理好不好這件事,對你有什麼影響,則是取決於你「輸出的圖的大小」與「整個 3D 場景的複雜度」。如果輸出的圖檔,大小在 2k(2000) 以上,或是 3D 場景裏頭的幾合資料很大時(有多大,我還不是很清楚,這可能有待別人做些實驗,不過現在計憶體愈來愈便宜,所以這方面的數值,會逐年增長),那就可以很明顯地看出,Renderman 的架構與程式寫得很好的優勢。
- Displacement 的部分,感覺是個沒啥說服力的比較。
- 可惜的是,沒有去比較 SSS 與 Occlusion 的部分,這兩個部分,我覺得是近期電影、特效和動畫市場,使用得最大量,也最為人所關心的技術了。
忘了說,最後透過 wikipedia,找到這一很棒的網頁:Renderers List。裏頭的東西實在多到嚇人,非常的多 =.=
最後,感謝親切的 ray 學長,提醒了我有寫過這麼一篇文章,於是呢,就把它小小修了一下,重新翻上檯面來了。