animation
如果,開發像上頭這張圖所呈現的視覺效果,是很容易,而且可以隨著人的藝術創造力而有不同的變化,並且使用在 3D 動畫裏頭也很順利且自然的話,那該是件多麼有趣的事…
1986 年,Steve Strassmann 在 SIGGRAPH 上發表了一篇論文 – Hairy Brushes ,目的在透過一些方法,模擬出中國國畫中的水墨畫(不過當時,他的論文裏是指日本水墨畫…但其實就是中國水墨畫嘛…這樣的情況,可以用「情何以堪」嗎?)。這個論文的發表,說不定是「看得到」的最早 NPR 論文研究了。(所以,我們可以說 Steve Strassmann 是 NPR 之父嗎?)
NPR 是 Non-Photorealistic Rendering,和電腦圖學 (Computer Graphics) 發展至今的 rendering 研究相較起來,NPR 根本是「旁枝末節」:一點兒都不重要,也沒什麼技術貢獻的玩意兒。但它卻愈來愈常出現在我們的生活中,尤其是娛樂產品…
NPR 雖然只是 CG 裏的一個小分支,而且年輕得很,但它的的研究方向與成果卻也不少,受重視的程度,不亞於那些正規研究,最明顯的例子,就是有一個專門辦來供 NPR 相關研究投稿用的 – NPAR,一個在 2003 年開始經營,至今已經 5 歲了的學術會議。SIGGRAPH 1999 那年,還因此新開了一個全力的 course,就叫 Non-Photorealistic Rendering,這個 course 的講師一流,內容由淺入深,是個非常適合入門 NPR 的素材,看完這一份 course,再去看現在的 NPR 發展,會有非常大的幫助。
NPR 的研究中,涉及到的就是這麼一些關鍵字:edge-detection, outlines, silhouette, toon-shading, frame-coherence, brush strokes, toon shading, image synthesis。所以呢,當在描述這個技術時,我喜歡用 NPR 這個說法,而不是 toon shading,因為 toon shading 或 toon shader 只是一個部分,並不是全貌。
看過這樣的 Maya 嗎? 沒有的話,那你一定要去看一看這一篇文章。
Thomas Mann 在 2004 年時,因為某些原因(其實就只是好玩),基於他使用過的一些軟體的經驗(3dsMax, AutoCad, Medit, Microstation, Form-Z, Lightscape, Softimage, Poser),決定給 Maya 重新設計一個新的 GUI,於是有了這個所謂的 A suggested redesign for Maya’s graphical user interface。
個人最愛的是下頭的這一張,針對 Hypershade 的設計,因為它幾乎是整個把 XSI Softimage 的優點給拿了過來了,讓人好生羨慕 Softimage 的使用界面呀 @@~
今年(2007)五月,我寫了一篇常見 3D 軟體的比較,那是一篇原文刊登在 CGSociety 的 CGWiki 上頭的文章,換句話說,那是一篇集眾人之力(Wiki 嘛),合寫出來的比較清單,也因為這樣,它一直持續有所更新,像是距離我上次看,又新增了 Truespace 和 Silo,而且很多小地方也有所更動。說不上這一些更動都是正面或正確的,因為不乏會有對某個軟體的狂熱份子出現,或是某個軟體在這個 wiki 上的活躍人口遠大於其它軟體,就會產生某種程度上的偏頗。
在前幾天,上 wikipedia 看一些 3D 軟體的發展歷史時(ex, Maya, Softimage, Blender),發現到了在 TDT3D 上頭的一篇 3D applications 2007 comparisons table。這是一篇由一個人,目前是一位教授 3D 軟體的講師,過去十年來都在 CG 產業打滾,列表上的軟體清單都是自己用了很久,且在近 12 個月來,一一安裝最新的版本,然後在每個軟體上頭做同樣的事情與測試,才產生出來的一篇文章。個人覺得更有看頭,不失為另一份可以拿來參考的好文章。
我很喜歡他說的一段話,特別節錄過來:
I used all of this 3D applications in 10 past years, when I was working for companies in CG area, now it’s relatively easy for me to switch from one to others and I have a good feeling with softwares interfaces…of courses that’s always a long and a painfull tasks to switching but when you learned 2 or more package in 3D applications, technical features is always the same, the most difficult is to know where to found !
這應該是我使用 Pixar’s RenderMan 以來,看過最落落長的一個 rendering job 了。粗略地算了一下,有 300 個左右的 task,且根據原作者(發表在 Pixar’s RenderMan 官方討論版裏頭)的說詞,有一半是 ptfilter,另一半是 brickmap,我的天…是什麼情況會用到這麼多的 ptfiter,難道是有 100 多顆彈珠散落一地嗎?
最近無聊時,在想一件事。就是呢,為平麼有這麼多的事情都可以被表示成一個樹狀結構(tree)或是圖(graph)呢? 就拿 rendering 這件事來說,一個 RenderMan 的一個 frame,可以被拆成很多個 task,然後每個 task 之間的關係,就組成了像左圖那樣的一個樹狀結構。
然後呢,因為 rendering 真的很費時,至少就 animation 來說是這樣的。(遊戲就當做特例吧,如果一個遊戲的 rendering 要很久的話,會有人想玩嗎?)爭取時間的方法之一就是平行運算(parallel computing)。如果以 task 為最小的運算單元來看,那如何做到同時可以有很多個 task 同時運算,就是重點了。就樹狀結構來看,屬同一層級(sibling)的 task 就可以同時運算,彼此互不相干。
所以呢,這應該就是以樹狀結構來表示一個 job 的好處之一呢?
說來說去,我只是覺得這個 job 的 task 實在太多了,有點噁心,希望我們家的 lighter 不會產生這種 job 來 XD
Glass scene rendered in POV-Ray, demonstrating radiosity, photons, focal blur, and other photorealistic capabilities
當 Opensource 裏頭,有悠久歷史,且常常是學習電腦圖學(Computer Graphics)中的算圖(Rendering)領域的學子,會去拿來當作一個練習平台的 POV-Ray (@Wikipedia),遇上了工業上赫赫有名的 RenderMan 標準時,就誕生了 POV-Man 這個計畫。
就個人來說,會忍不住想給 POV-Ray 灌上有點神祕,學術上比較高貴的感覺,原因無它,就因為它讓我覺得很遙遠,無從著手,而且除了看到使用它算出來的圖的品質不錯以外,完全不曉得可以拿它來幹麻。
右邊這一張圖,是使用 POV-Ray 算出來的圖,它有 raytracing 特有的反射(reflection)、折射(refraction)和聚焦(caustics,是這樣翻的嗎?)。這張圖同時還算出來景深(Depth of Field)、軟軟的影子(soft shadow,應該不是這樣翻的吧)。
在 1999 年,在 POV-Ray 的 newsgroup 上有這麼一段:
Well, this reminds me recent discussion in c.g.r.r., where discussion
about hard-coded textures vs. “coded shaders” took place. Perhaps
someone could create patch for texture plugins: user creates it’s own
R. Annema 弄了一個列表,叫 Renderers List v2,然後他把整個網站弄得很像 Wiki,讓每個人可以新增或修改上頭的列表,於是多年後,被我找到…
隨意看了一下,發覺裏頭竟然沒有 Pixar’s RenderMan 也,然後也沒有一個所謂的 RenderMan 相容渲染器(RenderMan Compliant Renderer)的列表,實在太可惜了。而且我有點好奇,不曉得這個清單還有人在更新嗎? 相容於 RISpec 規格的 renderer 好像還不少,像是 Aqsis, Pixie, RenderDotC, Angel, AIR, 3Delight, jrMan, … 等,應該還有不少。
在家裏的時候,我使用的是 3Delight。把它安裝在 Mac OS 上,感覺挺順利的。它的 renderer 程式叫 renderdl (prman),shader compiler 叫 shaderdl (shader),texture maker 叫 tdlmake (txmake),括弧裏的,是 Pixar’s RenderMan 的程式。
目前只做過幾個簡單的測試,主要是在 shader 上頭,model 方面,就隨便拿一個有的 RIB 檔就用了。3delight 內附的預設 shader,有非常的多(感覺有一半的樣子)都可以在 RenderMan Repository 上頭找到,這多少說明了,它預設的 shader 並沒有特別經過處理或設計的,而且就它們找得到的 shader,而且還算 ok 的,通通集結起來的。
說到這,我就不得不說一下 Pixar 的 RenderMan Studio 內附的 shader,雖然還沒有 OO 化,但在 AOV 的設計上,一改過去 RAT 6.
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.