renderman
1980 年代,Ed Catmull 率先帶了一匹人,加入了當時的 Lucasfilm,並在裏頭成立了一個電腦部門,那時他們列出了一些目標,像是提出新的數位合成系統來取代舊有的光學式沖印設備、數位剪輯系統,與使用電腦產生的圖來取代模型拍攝等。他們那時應該是一群學者(或研究人員),目的是搞出一些軟硬體來。
3D 的部分,設計了一個叫 Pixar-3D 的巨型機器(其實就是一台電腦),而上頭的軟體架構取名為 Reyes(by Loren Carpenter),代表 Render Eveything You Ever Saw(其實是一個國家公園裏頭,一個湖的名字)。1986 年 Pixar 離開了 Lucasfilm,遇上了好心的 Steve Jobs,讓他們得以繼續發展 Reyes。Pixar-3D 這個硬體計畫,後來改名為 Reyes Machine。
最後,他們第一代硬體,取名為 RM-1,一台特別打造的機器,用來負責 rendering 這麼一回事,隨後,有這麼一段說法:
Pat Hanrahan realized that, in the face of this often changing hardware architecture, a standard interface to rendering hardware, like Silicon Graphics had to their hardware, was a good idea. So he started design work, at first with SGI and later without them, on the next-generation GL, called the “Rendering Interface,” or RI.
RenderMan 雖然沒有像 3DS Max, Maya 或 Photoshop 這樣的火紅,也比較不容易買(比較貴,每年還要付錢)和拿到(海盜版? 我因為運氣很好,待在一家有買 license 的公司,所以一直以來,都不覺得需要上網去找海盜版,而且也希望自己可以不用去找,這樣省得麻煩),所以網路上的資料本就不多。但隨著 Pixar 這十年來的大紅大紫,全世界愈來愈多家動畫公司與投資者的關注與投入,的確是可以 google 到一些東西了。
但是呢,RenderMan 真的是很複雜的東西(Mental Ray 也一樣很複雜,不見得就比較簡單),而且華文資料還不算多,於是就在前些日子決定寫這麼一篇文章了。這是一篇極度地個人看法,一點都不公正而且偏頗得很的 整理文,列表的順序也是依自己的喜愛程度排列,但我盡量讓它看起來,對看官你有幫助,尤其是那些「開始使用 RenderMan 工作的華人們」,大家一起加油吧 ;)
首要推薦網站:
Pixar’s RenderMan 官方網站 RenderMan Repository by Tal Lancaster RenderMania by Simon Bunker The RenderMan Academy by Rudy Cortes RManNotes by Stephen May CG References and Tutorials by Malcolm Kesson RenderMan by Ian Stephenson 次要推薦網站:
Renderman.ru Death Fall Renderman community @ hightend3d RenderMan Shader Language source code @ ’Texturing and Modeling: A Procedural Approach’ Journal of Graphics Tools 中國 CG 聯盟 – RenderMan RenderMan 華文社區論壇 Materials and Shaders @ TurboSquid RenderMan @ wikipedia 更正一些人對Renderman錯誤的觀點 @ 不良牛 BBS Pixar’s RenderMan 官方網站 Pixar 的官網,主要就是可以拿到 RISpec (目前最新版面為 3.
每位玩過 Warcraft, Starcraft, Broodwar 的人都知道,Blizzard 的動畫做得很棒,故事也科幻/奇幻得很有特色。像是它的 Starcraft 兩代的故事就整個讚到不行,而且終於,有了 Starcraft II 來把它的故事做更進一步的延伸,同時,還滿足了廣大的玩家(好吧,我承認我屬於後者,對於它的故事,我只是略知一二而已)。
據說,Starcraft II 的預告片(Trailers)和串場電影(Cinematics)(沒看過的你,一定要去抓下來看看,是人類的基本兵種 marine 的誕生過程,看完後會覺得整個酷到不行。)會使用 Renderman 來算圖,而且 Blizzard 還因為這樣而應徵起了 Renderman Programmer。
這裏有一篇針對 Starcraft II 的那個預告片做的“官方訪談〝(Insider Interview: the making of the starcraft II cinematic teaser),對岸的火星時代有簡體中譯。文章中提到,預告片裏的那隻 marine 是 Blizzard 動畫小組(Cinematic team)做過的 3D 模型中,polygon 面數最多的(500 萬面),同時也是最複雜的一個(這算是廢話)。他們在製作這一個預告片時,是動畫小組和遊戲小組(Game team)合力討論與合作的。因為不是外包給別的動畫公司來製作,所以整個動畫和遊戲的同調性很高,不過他並沒有指出有哪些細節的同調,只約略提到,不管是造型,故事等之類的。
同時,訪談中也提到,Blizzard 過去在做自己的動畫時,是使用一些比較不有名(off-the-shelf)的程式,然後當他們要做這一隻預告片時,那隻程式直接說:「老子不幹了,這玩意兒實在太複雜了」(我看到這段時,覺得很好笑)。後來,他們的解決方案之一,正是 Pixar 出的 Renderman!!!
為此,Blizzard 的這個 Cinematic team 急需熟稔 Renderman Programming 的人員加入。根據我在 Pixar Support Forum 裏的觀察(這個 forum 只有有買 Pixar 軟體產品的公司,才看得到),前一陣子的確是有一個暱稱 Blizzard Entertainment 的帳號,問了很多問題,感覺得出來有不少問題,是他們正在熟悉 Renderman 的過程所遇到的(這些我們也都遇過,問過,或解決過了),不過現在比較少看到來自他們的帳號的發問,應該是進入撰寫一堆配套工具的時期。
…等(註 1),都是還不錯的入門級影片。而且一般來說,大約只要花兩三天的時間,就可以吸收整片 DVD 的精神與重點了。整體來說,它的產品非常的「入門導向」,影片的品質也做得很好。
同樣出品「品質不錯的 3D 教學影片」的公司,比較有名的還有 The Gnomon Worksop、M.I.A. Training Center、Simply Maya、等。其中的 The Gnomon Workshop 的教學內容比較進階與完整,而且講師也比 Digital Tutors 來得專業很多,所以它們的 DVD 的對像也是給「有一些經驗的人」看的。而 Simply Maya 的產品難易度則和 Digital Tutors 差不多。另有一個性質很特別的活動,叫 Maya Master Class 課程,是由 Autodesk(過去是由 Alias 主辦)每年,從世界各地挑選出幾位,用 Maya 成精,有一些獨到見解,且經驗豐富(一般來說,都是參與個數片電影動畫或遊戲製作的業界人士)的人出來,開的一些課程,算是學習 Maya 最最進階與 state of the art(中文怎麼翻?)技術的地方了。
而就在最近,Digital Tutors 放了一系列「介紹 RenderMan for Maya 2.0 的教學短片」,免費供人在網路上直接觀看。我一口氣快速地把數個影片看了過去,覺得說明得還不錯,很簡明,而且很有趣,讓我得以把它和自身使用 RenderMan 的 RAT(RenderMan Artist Tools)與 RMS(RenderMan Studio)的經驗作個比對,順道猜測 RfM 功能下的底層,是怎麼運作的。這樣一來,即使我沒使用過 RfM,也可以很快速地把它和 RAT 或 RMS 做個比較出來。
整個一系列的影片,從一開始的 plugin 啟動,介紹 Render Global 裏幾個參數的意思,接著就 subdivision, curve rendering, constructive solid geometry, subsurface scattering rendering, ambient occlusion, motion blur… 等。甚至還介紹了如何善用 multi-pass rendering, 與 mental ray 的合作,還有同時使用 slim 與 RfM… 等,相當的豐富。而且重點是,每一個短片都真的很短,可以只消花中午午休,就一口氣看個好幾段,很適合想充份利用午休時間的人觀看。
工作上的需求,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 而已…),於是打算向 3D 動畫界的當紅炸子雞 – Pixar – 買軟體 – RenderMan – 時,你可以預期會買到一些東西與服務,這是這篇 blog 要講的東西。
對了,如果你覺得「向 Pixar 買軟體」這件事很奇怪,你只知道皮克斯(Pixar)的動畫,壓根兒不知道它有賣軟體,更無法把它和軟體公司想起一塊的話…這一定不是你的錯。就像一般人對 IBM 的印象,就是硬體與服務,根本不會注意到它們推了一堆重量級的軟體是一樣的道理。不過這不正是世界有趣的地方嗎? 永遠會在不起眼的地方看到讓人覺得不可思議的事正在發生著 :)
首先你要知道的是,Pixar 賣的 RenderMan,目前有 三 四個產品(未來還會再 近期多公佈一種),端看看官你自己的需求與預算,這 三 四個產品分別是 RenderMan Pro Server、Render Artist Tools、RenderMan Studio 和 RenderMan for Maya。(更正,剛剛才發現, RenderMan Artist Tools 已經不再單獨出售了,世界變得真是快呀…)
RenderMan Pro Server RenderMan Pro Server,簡稱 RPS,目前最新版本是 13.0.4,下個版本是 13.5。你可以把它想成就是一個 renderer,就像 mental ray、Brazil Rendering System、V-Ray 等一樣。換句話說,如果你想要擁有和 Pixar 一樣品質的 renderer(渲染器嗎? 中國同胞的用語,感覺挺不賴的,不曉得在台灣怎麼稱呼 :p),那你可以買這個軟體。RPS 吃的檔案是 .rib 檔,所以如果你 3D 檔案是 Maya 的 .
這週二(2007/03/09),與太極影音的 RD/TD 同仁分享了一下我的讀書心得,內容是 Advanced RenderMan,主要是第六章的內容。作了一個 20 頁的投影片,主題放在 RenderMan 的 Reyes 架構,然後再從 RenderMan 寫給 Maya 用的 plugin: MTOR,挑出幾個 RenderMan Globals 裡頭,比較常用到的參數拿來講,把這幾個參數和 Reyes 的關係說明一下。不過其實我也還不是瞭解得非常透徹,所以內容都很淺顯。投影片的大綱如下:
The Reyes rendering pipeline RIB Geometric Primitives Bounding & Dicing Shading Shading before Hiding Parallel Shading Antialiasing RenderMan Shader evaluation pipeline Slim Network Ensemble Reyes VS. OpenGL
Pixar 赫赫有名的軟體 RenderMan,起源於美國的猶它大學(The University of Utah),更正確一點的來說,是來自於 1970 年代,猶它大學資訊系裡頭,一位叫 Edwin Catmull (SIGGRAPH 的專訪)的博士,他當時正在解決一些和 rendering 有關的問題。隨後,Ed(Edwin)來到加州,參與了 George Lucas (喬治盧卡司)的 Lucasfilm 這個團隊,他們那時的任務是完成 Star Wars 裡頭的光劍(Light Saber)特效。後來,Lucas 因為與老婆離婚,在巨額贍養費的壓力下,把那時他覺得最沒有用的這群人(Ed 和其它電腦圖學研究者),賣給別人了。
那位買家,正是當時被 Apple (蘋果電腦)踢出家門,於是自己開了一家叫 NEXT Computer (現在已經不存在了),賣一個叫 NeXTSTEP 的一個作業系統(就是現在 Apple 上,大家愛死了的 Mac OS X 的前身)。那位買家當時會想買下 Ed 等人,主要是因為他的這個 NeXTSTEP 作業系統的特色之一是很漂亮,所以需要一些程式來凸顯它的漂亮。所以需要一群人,幫他秀一些很漂亮的畫面出來,於是相中了 Ed 這群人在玩的技術。後來, Ed 一群人成立了 Pixar 這家公司,而這位買家則是現在最紅的 Steve Jobs。
Pixar 的這群人,就先假設是由 Ed 領軍好了,他們的任務是:「透過電腦,產生美輪美幻的圖片出來,而且要逼真到無法和真正的攝影照片有所區分」。為此,在聚集了來自猶它大學與美國紐約理工學院(NYIT)的人才後,他們著手從無到有開發一套系統出來。Loren Carpenter 實作核心 rendering 的部分;Rob Cook 負責的是 shading 這個子細統;而整個架構則是由 Pat Hanrahan 來主導。(Ed 呢? 他可能負責聊天吧……我開玩笑的啦!!)最後整個系統叫 REYES,這個字眼有兩層意義。一是,在加州有個非常漂亮的海岸線,就叫 Point Reyes,Carpenter 很愛去那,所以這個名詞也是他先提出來的。二是,REYES 後來被冠上了 Render Everything You Ever Saw 這個標語(你也曉得的,文人就喜歡玩這種把戲,只是有人玩得很高竿,有人的手法很遜。不過遜又何妨,就像 IBM 其實是 Internal Business Machines,不也是很ㄙㄨㄥ / )。在 SIGGRAPH 1987 這一年(那年,我快滿十歲),Cook, Carpenter 和 Catmull 發表了一篇論文「The Reyes Rendering Architecture」(論文),Renderman 這個名詞,則是在 1989 年正式定義並公開。接著,在 SIGGRAPH 1990 又發表了一篇論文「A Language for Shading and Lighting Calculations」,這篇論文決定了 renderman shading language 的語法,同時也是現在 shading language 語法的始祖。附代一提,Pixar 這家公司成立於 1983 年,當時還在 Lucasfilm 旗下,然後於 1986 年被 Steve Jobs 買走。