2010/02/05

Back to the root


"老七,這已經是七日之前的消息了" ~火鳳燎原

這已經是一個月之前的事了!!!一口氣補一個月的進度!!!

回到匹茲堡後,學期也正式開始。第一天旁聽了MAYA(這是聽興趣的,只是希望能夠每週固定花些時間操作一下這隻model神兵,讓自己稍有一些modeling的概念),下午就到了project room報到,Andrew Gartner(他是MAYA的助教.......)已經在那邊清理打掃房間了,Andrew說兩位二年級組員(Deepak, Ferderico)都會晚幾天到,所以現在只有我們加上Panda三位一年級生。把自己的電腦接上後,馬上收到Deepak跟指導教授Mike Christel的信件,除了更新一下聯絡資訊,課程規劃,Mike希望我們馬上先build up最新版的panda3d source code,然後決定project專攻的項目。Deepak強烈希望不要去碰egger,已經參予panda相關計畫兩個學期加一個暑假,他是說那東西是Disney永遠擺不脫的痛,可Andrew當初進來這project最想做的東西就是這個,所以........留待之後Deepak回來再商量..........

這段空窗時間,能做的就是架好工作環境,trace code跟收集論壇上提到的bug資料。我program時最怕的就是架工作環境這檔事.......manual跟你說的標準程序絕對不是標準程序,不是漏裝一個package就是少reference某個路徑,剩下這些都得靠一些神奇的方法補完,然後每次補完下次又忘掉,要在別的地方架時又得再研究一遍。經過一番手忙腳亂(包括source code五小時前的更新把building在99%時crush掉),兩天後總算架起一個可以運作的版本,Deepak也總算到了系館(印度飛美的班機誤點........),我們跟advisor Mike跟Ruth也終於開了第一次的advisor meeting,相較於Deepak的立場,Mike跟Ruth則是強烈希望我們把egger revamp這個topic收拾掉,因為.......這是客戶的top 2 urgent requirement,按照Disney的說法是希望我們幫忙解決兩個requirement,另外一個討論結果是Advanced shader input。講老實話也沒什麼好討論,除了Andrew以外所有人都是衝著shader來的,根本就是自動代入。

在這次開會前Andrew問過我跟Panda到底想做什麼,我的回答是都OK,客戶交代什麼我做什麼,Panda則是希望去做shader effect(她好像誤以為我們這個project是要做advanced shader.......差一個字天差地遠啊.........從GPU programming變成data structure苦工活.........),所以現在要把小組再拆成兩個team分工這兩項topic時,我已經有預感我會去egger組(剩下一個還沒到的Ferderico在這學期CG教授Adrian那邊co-op,跟Siggraph論文死線搏命中,這種graphic魔人沒理由不把他丟到shader組),果然當Mike問Andrew希望哪一個跟他一起搞egger時,Andrew回道:"probably Wayne!"兩邊講老實話都是data structure苦工,只是跟我預期要來做的東西還是有差別,如果說shader我還有一丁點的basic knowledge,egger這邊就幾近是零了。這個panda專用的model format,上學期身為modeler的Andrew跟他打了一學期的交道,我則只有一次好奇打開來看一看資料的結構。所以分組後幾天,幾乎都是Andrew在帶著我,教我去看哪些相關的資料。

Andrew Gartner,自稱Jack of All Trades,跟Hugo差不多,是一個全才型的角色。拿了Computer Science的學位後,又在動畫學院,文學,音樂學院(這個音樂學院就是傳說中的Berkeley College of Music.......ya! DT跟Steve Vai念的那間.........)都待了一段時間。幫他打個廣告,他的個人網頁http://www.andrewgartner.com/,有興趣可以去看看他rigging的作品,本來以為這一手ETC一年級生只有Ji跟Hugo會,後來才發現自己的隊友也是這方面的高手,同時寫MEL script也蠻有心得,一開始跟著他弄是真的壓力頗大,有種踏進別人的絕對領域的感覺= =,想要幫忙,又一直動作慢人半拍像是在扯他後腿,好不容易人家請你幫個忙,在還沒搞清頭緒時他又已經解決了........有一天林燕跟我聊到這事,她一聽到我的狀況就笑了:"我BVW有跟他同組過,跟你感覺一模一樣,因為他很有經驗,做什麼事都很快,偏偏我也是個慢慢磨的作風,所以很有壓力,不過我跟他學了蠻多東西,你如果在她旁邊邊看邊學,應該會學到很多!"
Andrew Gartner,身材比例高瘦到很像卡通人物XDD
Andrew真的教我蠻多東西,當我在trace code看到眼花撩亂時,他主動過來分享他看扣的心得:"don't be scared, Wayne~~fold down those bullshit declare and API, it's not as big as you think~~"這句話我受益良多,畢竟我這輩子看過最大規模的code大概就是這隻大熊貓,source code檔數量破萬!又不知道這十多年經過多少人的修改添加,找個definition常要向上翻個三層四層,call的API也是亂七八糟什麼都有(每個cpp檔include的表頭大概都塞了一個螢幕的長度= =),不用這種"望文生義"的方式trace code找到天荒地老什麼都找不到........看著看著,慢慢自己也看出了些心得,想到以前學Object-Oriented時教授講到:"現在你們腦袋裡很難有物件導向的概念,主要就是碰到的程式還不夠大........."這下好了,這次真的看到一隻大尾的了!最近跟Andrew在討論時,我發現我漸漸能跟上他的步調,甚至有些時候能比他早點出要修改的位置,自己也是頗感欣慰:我應該是有進步的!
大陸女同學Panda,works for Panda

暫時跳出project,這學期另外一門課我去修了資工系的CG,這邊也是有夠刺激!理論跟實做的份量差不多是把歐陽老大的CG跟CYY的redering打包在一起的量(我覺得實做應該還超過),五個project,第一個openGL的基本操作直接把歐陽老大的所有作業撂倒(讀模型,算動態mesh,繪圖投影,矩陣transform,打光材質,一次就是紅皮書兩百多頁的份量),第二個是現在開始要動手的loop subdivision演算法+texture mapping,第三個: GPU programming,第四個:ray tracing +photon mapping(當時修rendering時兩個人寫一個photon mapping就期末project的量了........),第五個:crowd simulation,期中期末作業另計,光修這門就飽了........可是也覺得:如此花錢來這念書有價值。真的把這課好好修完,像吞了大補丸,可以功力大進吧!同時也對在CMUCS念完四年的單洋跟John敬意大增,能在這種負荷下操出來的學生(他們說系必修OS跟演算法才是最恐怖的東西= =),難怪能在BVW馬上展露出驚人的實力!

project1基本上憑著一己之力把它解決掉了(我跟延通一至的心得:大學用過的openGL在這個project已經全部用完了........),近來越發覺得:"同學沒有義務教你,你自己沒有下功夫,又憑什麼去問人家?再者,你真得比人家差嗎?卡在bug上是很痛苦(尤其是當你發現那是很蠢的bug時),但那種痛苦,應該就是變強所必須經過的路吧........如果每次卡住都馬上有人跟你講你是哪裡有問題,那你永遠不知道自己的盲點在哪!"甚至是在解assignment時也是(這邊理論方面的數學也是超靠杯),John那時笑著跟我說我解出第五題他拿一到四的解答跟我換,原本心裡想說:幹!你John都解不出來了指望我解出來?可反過來想想,這不是直接自己先承認自己比別人差了?為什麼不試試?事實上最後是解出來了,當然中間還是掙扎了一段時間,可是在解出來那一刻,我真的覺得我沒有比較差。我想說的是:我現在也是CMU的學生,為什麼要覺得自己低人一等?拿出態度啊!都已經是研究生了!變強一點好不好!

跳回去Panda,跟客戶陸續的meeting(他們都直接用電話meeting的,可像Hugo他們已經飛了一次西雅圖,最近又要再飛一次,Luc他們也是飛了趟芝加哥,宛似企業飛人!)也將任務內容慢慢具體化了:egger組期中前的任務是:switch of phong shading auto generation, texture copy feature, stand alone GUI, strip off bad normal and mesh,現在就是Andrew做一三(三剛好是他另一門課Design Studio的project,一理論上不難),我做二,其時分工分量上也算公平,當Andrew說三整個交給我時,也讓我覺得:他是真的把我當隊友看待,而不是跟班!三討厭的點在於panda那個很貼貼補補的先天不良,要修改path name跟texture copy要在四個layer間穿梭,然後因為跨平台的考量不能call Win API,花了一段時間找到panda自己的API後,昨天終於成功的將texture自動複製到新建的目錄中,應該這週可以把整個feature完成!
  看到這個水波的網格在動態飄動時,爽了大概五分鐘
看到成品時反而還沒那麼興奮


插曲是,現在的project team風格......公務員很多,一天到晚都在開會,report,更新task board。說真的我是覺得這種東西蠻浪費時間的,可也就是覺得,Ferderico直接就跟製作人Deepak槓上,弄的前兩天空氣中感覺都有股火藥味。諷刺的是,Ferderico昨天憑著一己之力把期中前shader組的目標:one advanced shader input幹掉了!又該說什麼?兩邊的立場我都能理解。某些東西講難聽點就是表面功夫,做給外面人看的,但沒有東西表面功夫做再漂亮也沒用。那現在最有意見(指導教授眼中的問題人物)的偏偏是出力最大的,當製作人的能說什麼?出社會老闆要哪一個?well.......我不知道........也不只我們這組有這種問題:Deepak還是programmer,有些組的producer真的是純producer,就一天到晚被酸:"那個只會出一張嘴,又什麼都不懂的廢物"huh.......Deepak在那次爭論時,說道:這裡不是Computer Science,請不用那邊的方法做事!"難道來ETC,也是要教我所謂"社會"的作業模式?這模式真的比較好嗎?

Untitled from memecs on Vimeo.


Ferderico的graphic研究,真魔人一隻!

哩哩雜雜亂打一堆,一直寫流水帳,打完也懶得修了!一句話:前四個禮拜,我覺得很充實!希望這學期結束,我真的能學到一些東西。