2019/02/23

A dance with dragons

想像這一天會是什麼樣的心情想了好幾年, 此時此刻卻出乎意料的平靜. 就算在一年前, 大概也沒料想到今天我沒有在夢工廠工作室跟大家一起慶祝馴龍高手3在美國上映. 人生總是有些不確定, 是福是禍, 又有誰知道?

2011年三月八號晚上, 為了準備夢工廠的面試, 在舊金山唱片行Rasputin(RIP)買了兩片DVD: 功夫熊貓跟馴龍高手. 半夜看完熊貓沒力再追馴龍, 心裡想說: "面上了就看, 沒面上就把這張DVD折了!". 事後才知道面試官如果聽到你只講夢工廠的作品會想辦法問你有沒有別的喜歡的動畫, 確定你不是刻意諂媚(現在想到這點會笑了)


2011感恩節前一天, 在Hugo夫婦那時San Mateo的公寓裡喝酒, 背景放的電影是馴龍. 醉眼迷濛中, 看著Stoik跳進海中先救Hiccup再救Toothless, 一人一龍飛向最後大決戰, 滿滿的羨慕忌妒恨:"為什麼他們第一次搞出這麼棒的電影, 我卻沒有辦法參與到." 憑良心講, 那是我第一次真心覺得夢工廠端出不輸皮克斯的名人堂作品(結果奧斯卡還是被Toy Story 3拿去:| )


2012年一月, 菜鳥TD上工, 說明會認識了未來同事: 遊戲業轉戰電影業的Mark. 第一份工作是給剛成立的TV部門架pipeline跟寫Maya shelf scripts/plugins. 當時在忙的影集是馴龍的第一季, 品質跟電影自然不能比, 但也算是給了這個IP出上第一次力. 中間短暫被調回去做conditioning TD, 啃噬靈魂的工作, 小朋友千萬不要碰...

2012年七月, 回到電影部門做lighting TD, 參語的電影是Turbo, 上工第一天被shader組組長Feng老大電到飛起來(wing blur shader depth buffer). 透過海龜知道了寫ray tracer當興趣的UPenn雙傑Peter跟Karl, 才知道外國小孩可以把做興趣的ray tracer推到什麼程度. 聽著當時組裡的首席lighter Lok吐槽自家的renderer, 讚頌外面閃電般竄起的新星Arnold. 深深覺得自己的學生生涯過的蒼白無力, 買了個kindle決定認真啃PBRT(那本磚頭書揹著都能當重訓)


2013年二月, 由於Guardians票房慘澹, 夢工廠大裁員. 一個當時被颱風尾掃到的TD前輩邊找工作邊跟我抱怨了句:"我已經十年沒寫C++了.他們要我面試寫個memory manager是想怎樣?"突然有被嚇到, 認真開始想是不是要轉換職場跑道. 五月Turbo殺青, 工作之餘開始決定要寫個比學校作業再認真一點的ray tracer. 七月SIGGRAPH, Pixar秀出了Optix based ray tracing lighting previewer, 看著公司內部同事一邊轉貼一邊哭說我們還在石器時代時, 不經意看到Karl出現再demo的credit名單...


2014年四月, 一次外出吃飯認識了強者大學長Matt, 才知道台灣也有人在國外做rendering. 跟shader組同事Jon聊天才知道人家沒念大學還是跑來做graphics ("不要學我. 這條路太辛苦了") 問Mark要做什麼樣的準備才有可能轉換到rendering跑道:"多寫相關project, 再寫blog紀錄" 十月中受邀到Disney Animation open house見證人家全新打造的毀天滅地凶器Hyperion以及試刀首航Big Hero 6. 十一月夢工廠參賽代表Penguins of Madagascar被Big Hero 6打成豬頭(劇情跟畫面都潰不成軍)


2014年十二月, 透過Mark介紹面試了夢工廠rendering team, 認識了可以聊重金屬的未來老闆Rob跟irradiance caching奧斯卡殿堂級名人Eric. 由於Penguins票房重挫人事凍結, 當下沒有拿到offer. 聖誕節滑雪之旅與Siyang學長夫婦長談之後, 決定留下來等等看有沒有機會

2015年一月, 三年TD contract期滿前一天. 夢工廠宣布關閉北加分部PDI, 取消兩部電影, 裁員五百人. 當時嚇到魂飛天外, 跟同事喝悶酒喝到最後在廁所馬桶旁暈死 :| 大浩劫後第二天在食堂遇到Mark跟Eric, Eric問有沒有興趣跟他做些比較好玩的projects. 開始了rendering team打工仔之路(順道一提, 兩個projects opacity masked shadow跟procedural shader api現在都還活在renderer code base中)


2015年五月, 正式加入夢工廠rendering team, 成為組上最小的程序猿. 新renderer正式定名為MoonRay. 該年主要負責領域為hair intersection kernel跟procedural shader api. 年底shader組參戰,某天晚上跟Feng老大南北加遠端, 看到了初代的hair procedural成品的當下, 應該是2015最開心的一刻

2016年年初, 接手ray traversal scene graph, geometry instancing, particle rendering, alembic procedural. 公司內部開始出現:"這東西搞不好可以拿出來做電影"的聲音. 年底, 陣中volume大將離職, 接手volume rendering.



2017年年初, Disney新作Moana立下了未來兩年內動畫界無法逾越的特效高牆. 三月, 馴龍3特效總監Dave Walvoord向上級請命啟用MoonRay. "沒有一個ray tracer, 我沒有辦法作出與Moana抗衡的視覺", "我們是敗戰之犬, 要打一場逆風的反攻!" 如果說有人看到馴龍3 Tuffnut大喊那句:"I'm with you! Who else!?"那時我大概心底就是在那樣吶喊吧:) 四月, 上級批准正式啟用MoonRay. 下半年, 為了displacement map, 砍掉重練subdivision mesh跟加寫adaptive tessellation, 完成大部分MoonRay初代volume rendering系統(single/multiple scattering, emission importance sampling, LPE AOV)


2018年, 以戰養戰, 馴龍3到最後三個月都還在接收新features, 包括Mark的臨別贈禮adaptive sampling. improved emission sampling跟volume motion blur都是到年中才加進去. 雖說跟Disney Hyperion的十八個月暴徒計畫比起來還是溫和的多, 這應該是夢工廠玩過最狂野的一次技術推進. 感恩節前夕, lighting宣告完工. MoonRay順利完成第一部長篇電影.


做為一個馴龍高手的忠實支持者, 能夠以自己最擅長, 最希望貢獻的方式送這個系列最後一程, 我滿心感激. 視覺技術方面, 我相信夢工廠此時此刻已回到最前線, 能夠與Pixar/Disney/Sony再度一較長短. 衷心希望, 在講故事這一部份, 夢工廠能迎頭趕上, 讓觀眾知道, 美國作動畫的不是只有米老鼠.