renderman
上頭是我目前打算在 SIGGRAPH 2011 的暫時(我相當懷疑,參加 SIGGRAPH 可以事先很明確地訂下行事曆來…)的行程。每天的行程看起來都還挺不錯的,至少,幾乎每晚,都會參加一個“晚會“,像是 Taipei Reunion, The Foundry GeekFest, Disney R&D Mixer, RenderMan Users Group Meeting~ 我同行的同事更帥氣,他還找到了 Houdini User Group Meeting 來著,先祝他有個很有看頭的一晚 :)
上頭的行事曆只有列出 studio talk, courses, exhibit talk,並沒有包含任何的 technical paper sessions,(好吧,Papers Fast Forward 算是)我打算在活動的前一天再整個釐清我的行程,現在看起來,這樣就夠累人了,應該是每天都要一杯咖啡來提神才行。
這可能是我第七次(?)參加 SIGGRAPH 盛會,開始覺得前六次的收獲怎麼這麼少而感到懨煩,倒也不是說沒有收獲,只是覺得不夠多,不夠過癮。這次想藉 SIGGRAPH 之名,多與一些人有比較深入的談話,同時帶回一兩個短期的學術研究方向回來~ 希望是這樣~
PS. 一直有人要我帶 Pixar’s teapot………..
I just suddenly discovered an app from App Store, Alfred. Really funny. It looks like Quicksilver from it’s description. But most interesting is, it reminds me of the render farm management tool, Alfred.
Every computer graphics researcher should look at this wonderful talk by Rob Cook @ Siggraph 2009 for his perspective of the current CG achievement and the future challenges of this field. I am so excited to know that Siggraph officially released this recording such that I can review it again casually at my cabin~
美國時間 2009/08/04 晚上,於紐奧良(New Orleans)的 New Orleans Sheraton 飯店深處,RenderMan 開發團隊的老大 Dana Batali 正式於 Stupid RenderMan’s Tricks 2009 中,對外(某種程度上)公開發表 RPS 15.0 將於今年秋冬上市,它包含了如下幾個重大的變革:
New Texture Format: Ptex 回顧 Disney 於 2008 年的一篇技術論文:Ptex: Per-Face Texture Mapping for Production Rendering,裏頭提出一種新的儲存 texture 的檔案格式:ptex,它有如下的優點:
polygon 或 subdivision surface 常常會有的 texture UV 的大問題沒了。 雖然還是一樣有 UV,但卻是 per-face 的 UV,每個 face 之間的 UV 可以有某種程度上的獨立性,間接去掉了 texture 的接縫(seamness)問題。 同時,因為每個 face 的 UV 是獨立的,所以可以非常方便地讓不同的 face 有不同的 UV 分佈密度。 最最重要的是,它的儲存結構大大降低了 texture size 與提升了 texture I/O 的時間。 Disney 的 Brent Burley 特別指出,在拍攝 Meet the Robinson 時,有的角色一隻的 texture 就有數百 GB,對於非常重視 texture 品質的 Disney 來說,是一個大災難。 Imager Shaders prman 總算支援 imager shader 了。它有點像是 GPU 裏頭的 pixel/fragment shader,不同的時,shader script 的長度無限制、同時 imager shader 不只可以存取每一個 pixel 的值,它同時可以是在 pixel sample 下運作,這代表有機會實作一個 pre-hinder。或是可以搭配 AOV 來實作出 multi-layer multi-pass rendering w/o occlusion!
阿則為了從旁給與我一些鼓勵,於是轉貼了一個非常有趣的網頁給我:GEEK OF THE WEEK :Wayne Wooten RenderMan Software Engineer, Pixar
以下是不負責任,依自己喜好翻譯:
你的工作內容? 在西雅圖的辦公室,我協助維護一個叫 Pixar’s RenderMan 的軟體,這個軟體主要被一些諸如 Industrial Light & Magic (ILM), Weta, Framestore 等知名特效動畫公司使用,用它創造出了非常多大賣座的電影作品。當然啦,Pixar 本身也使用它締造了不少部大作。
**你擔任過最最酷的工作職位:**Animation Scientist(動畫科學家)。
**你幹過哪些非常黑客的事?**最近嗎? 我讓我的 Acer 小筆電成功安裝了 OS X;破解了我的 iPhone;在我自家的 Apple TV 裏頭安裝了 Boxee 這一套媒體播放中心;還有…
**最愛的電影:**Ghost in the Shell(攻殻機動隊)與 2001: A Space Odyssey(2001 太空漫遊)。
**最愛的遊戲:**龍與地下城,尤其是它的第四版。
**最愛的書:**別鬧了,費曼先生。
使用 RenderMan 的資訊人,比例相對來得少,我們很容易可以遇到一位使用 Java, C/C++, C#, PHP, Javascript, Perl, PHP 的程式人員,因應他們的需求而產生的 editor 也多如牛毛,幾乎可以說每一個月就有一個玩意兒被提出來供這些廣大的程式設計人員使用與把玩。
RenderMan 的技術人員呢? 乏人問津呢~
某一天,在一個非常意外的情況下,我發現了 highlight.js 這個程式。那時的我,想要在我的這個網站上發表一些程式碼,大多是 Mel, Python, Rib, Rsl, Tcl…,於是上網研究一下,想找個適用的程式碼來做到 syntax highlighting。那時並沒有想到 Rib 或 Rsl 也會被支援,只是不經意 google 一下…
用了一陣子,發覺 highlight.js 雖然不賴,但是 Mel, Rib 與 Rsl 的支援很明顯有點過時了,於是先後向原作者提了兩次的更新,並把我所知道的 syntax,直接加諸在原來的程式碼上,然後再把結果回寄給作者看,請他看看覺得如何。
總之呢~~就是我又再次感受到 opensource 界人的親切,他都一一接受了。於是我在不經意的情況下,再次對 opensource 界有了一點點微薄的貢獻了。
highlight.js 的 demo 網頁。
PS. 我知道有個非常優秀,集眾人心血大成,支援約莫 100 種 language,而且非常有彈性,可以任意客製化輸出結果的 GeShi (Generic Syntax Highlighter),但它實在太優秀也太大了,而且好像對於 Rib, Rsl, Mel 沒有直接的支援,就像我說的,RenderMan/Maya 的使用者,在 CS 界算是小眾中的小眾,而這也是為什麼我這麼愛 highlight.js 了,因為它讓我得以很快速地分享我的一些想法(英文版)。
第一屆的 SIGGRAPH Asia 2008 於這個冬天,在新加坡落幕了。雖然沒有親臨現場參與到,但從多方得來的消息(第一手 + 第二手 + 第 n 手),皆透露出“與預期的有些落差“。另一個說法是「比較接近正常的學術論文樣貌」,亦即在有聲光、有話題、有商業加持等的活動,數量上都減少了,因而使得原來的 paper session 的比重就來得比較高了。因為是第一屆,所以 course 的部分有不少“入門級“的,但我特別喜愛這種 course,裏頭常常會有令人意外的東西。
由 SCAD(Savannah College of Art and Design)的 Malcolm A. Kesson 教授所開講的 Pixar’s RenderMan,就是個很好的「入門兼中等級」課程。Kesson 教授從事 Graphics Programming 教學(特別是與 RenderMan 有關)已經十餘年,是一位非常敬業且時時在 Pixar 官方討論板上提問題,讓人尊敬的教授。他自行維護的 fundza 已經出現在我的網站不下數次了,非常推薦。
雖然沒有機會現場收聽,倒是拿到了 course note,花了幾個晚上看完。說實在的,參與 SIGGRAPH course 是一件非常「累人」的任務,多麼累人,你只要稍稍回想一下,你那大學時期,聽課聽到有點出神,不小心跑去和周公下棋的經驗。對了,大致的感覺就是那樣。更何況是單單看 course note(pdf 檔),不過終究是看完了。
據說,偉大的天才科學家:愛因斯坦,他的研究之路是經過計劃的。他先是下了苦功把需要的技能一一學會,才開始了他的研究。換句話說,他把需要的「工具」摸熟了,才開始上工。(這也有可能是盜聽塗說,畢竟是一點兒考據都沒有的話,聽聽就好)
在這邊,提出一套學習 RenderMan(我的經驗,幾乎都來自於 Pixar’s RenderMan,但在寫這篇文章時,會盡量保持中立,把 PRMan 特有的東西給獨立出去不提)的途徑,說不定半年後我就推翻掉這個說法了,但「推翻」這件事本身就很有趣,所以還是值得試試。
What is RenderMan all about? RIB -> RSL -> front-ends (RMS/MtoR/3Delight For Maya/…)
slimcmd "plt0 SelectAppearances {func0 func1 func2}" this might failed….!!! use the following.
slimcmd plt0 SelectAppearances "{func0 func1 func2}"