1970 年代的電腦圖學

Jul 12 2009

animation

原文:HISTORY OF COMPUTER GRAPHICS – 1970-79

1970 年代,電腦圖學開始在電視產業現身。Computer Image Corporation(CIC)這一家公司開發了很多的軟硬體,像是 ANIMAC, SCANIMATE 和 CAESAR。這些系統的工作方式是,先把畫好的圖給掃進電腦,然後對掃進來的圖做處理,像是縮放、拉扯、變形、旋轉…等一些幾合變形,然後最後再把結果輸出給電視。(譯注:這是個很有趣的現象。如果 Computer Graphics 對那個時代來說,還是個非常新穎與實驗性質的技術,那麼一個經濟社會,對待新技術的方式,常常是由比較財大氣粗的超大型跨國企業,或是小到不行要求 niche 求生存的 start-up 才會去踫的。所以我原以為電影產業會比電視產業來得早接觸 Computer Graphics,顯然是我搞錯了!)

當時的 3D 模形只有 Flat Shading 一種,沒有多餘的陰影變化線索,讓看的人去感受它的立體樣貌,只能憑藉著外觀上的輪廓來猜測,非常的不直覺。雖然可以透過使用更多的 polygon 來讓 3D 模形的品質好一點,但幫助有限,而且對當時計算能力不夠好的電腦來說,是個負擔,並沒有解決掉根本的問題。1971 年,Henri Gouraud 發表了一篇論文,他想出了一個方法來改善這個問題:透過內插每一個 polygon face 頂點上的顏色,可以做出一些顏色的漸進式變化,這就是後來很有名的 Gouraud shading。(譯注,沒記錯的話,這個方法在 199x 年代的遊戲,是最常見的 shading 方法,那時的 Phong shading 算是比較昂貴的方法。又,當時 Gouraud 還不到 30 歲。)Gouraud shading 最棒的地方就在於:它的方法很簡單,計算不複雜,但是卻可以立即獲得很大的改善

1971 年另一個非常重要的進展,就屬微型電腦了。硬體的進步,讓架構比較簡單的電腦開始可以量產,這間接促使後來 PC 個人電腦的發展(譯注,大家應該也都知道,IBM 一開始就錯過了這個發展…)。因為愈來愈便宜的電腦的可能性增加,需要大量運算的電腦圖學出現了新的可能性。

同時期,Nolan Kay Bushnell(譯注:很不幸地,他也是來自猶它大學) 與他的朋友們建立了 Atari 這一家大型電動遊樂廠商,於 1972 開發出了 Pong 這個席捲了整個世界的熱門遊戲,也開創了遊樂產業,並於日後成為世上最大的 game company。(譯注:這導致了後來 Nintendo 成功地成為日本史上最成功的 game company!)

同時期,不少動畫公司成立,像是 Triple I、Locasfilm、MAGI…等。而 Gary Demos 則在 Evans 與 Sutherland 的公司(E&S)裏頭,使用猶它大學的技術,整合開發出了繪圖板與彩色的 frame buffer 來。其中最重要的,就屬 Triple I 這家公司投入製作 Westworld 這一部電影了,Westworld 是史上第一部有用到電腦圖學的電影。1973 年,SIGGRAPH 第一屆,那時參與的人約 1,200 人,在一個小型的禮堂裏頭舉辦,那時主要的內容都來自於當時圖學重鎮 – 猶它大學。

1974 年,Ed Catmull 在猶它大學完成了他的博士學位,他的研究包含了如下幾個貢獻:Texture Mapping, Z-Buffer, Subdivision。(譯注:在他的一篇博士論文裏頭,卻留下這麼多“真的“影響後世發展的東西,實在多得驚人,我在想,這是他的運氣特別的好嗎?)

想到 Texture Mapping 這個點子時,Catmull 是在猶它的停車場,與他的一位學生 Lance Williams 聊到的。當時他們正在想怎麼建造一個 3D 的城堡出來。討論過程中發現,現實生活中大部分的東西的表面都非常的複雜,有不一樣的顏色,質感,與對光的反應。就像建城堡用的石牆、沙發上的皮套、壁上的海報或是餐廳桌上的木頭紋路。Catmull 從這些觀察中了解到,如果我們有辦法把一些圖案或紋理給印在 3D 模型上,那就會更真實了!! Texture Mapping 就是在這麼一個「觀察 – 假設 – 試驗」的過程中成型,它同時是電腦圖學界往高品質的 rendering 邁進的一個里程盃。(譯注:他的學生 Lance Williams 同時也是 Mipmapping 的發明人!)

Z-buffer 是一個被提出來解決 hidden surface removal 的方法。z-buffer 與一般的 frame buffer 很像,差別在於每一個 pixel 存的值不是 color 而是 depth。當我們環顧四週時,會覺得某個東西在另一個東西的前頭(比較靠近我們),是因為它有某種程度上擋住後面的東西。我相信這種視覺上的認真,是透過後天學來的,亦即剛出身的 baby,可能沒有所謂的遠近感知。所以從這個來自於我們人生經驗的觀察,如何確定兩個東西的前後關係時,可以透過他們離我們多遠來決定。這樣的說法好像是廢話,不過 z-buffer 的確就是從這個廢話延伸出來的。現今,幾乎所有的 GPU 都內建 z-buffer,連手機上的 graphics chip 也不例外。(譯注:拿立體視覺來說的話,是不是可以有一個 S-Buffer (stereo buffer) 呢?!)

再回來聊聊 shading。雖然 Gouraud shading 和 Flat shading 比較起來很優,不過還是很遜,所以呢,就有了一位程式員(當然,他也來自猶它大學,那個時代,電腦圖學和猶它大學是畫上等號的!)叫 Phong Bui-Toung 的,他發現到 Gouraud shading 是內插顏色來換得比較漸進的顏色變化,但如果一加上 Specular 進 shading equation 裏頭後,會發現穿幫得很嚴重,尤其是當 Specular 剛好整個落在一個 polygon face 裏頭時,就整個不見了!於是 Phong 提出了內插法向量的作法來解決這個問題,這成就了 Phong Shading 與日後一堆以 rendering equation 為基礎,然後再提出別的 model 的研究出來! 之後 Phong 前往 Stanford 擔任教職,卻非常不幸在 1975 年因為癌症而去逝了。(譯注:Phong 的另一個貢獻 Phong Illumination/Reflection Model 主要是以經驗法則的方式,來解釋兼實作出 Specular 的效果來,這雖然是另一個貢獻,但常常這兩個東西被搞混,我們在這也就不細談了。)

1975 年,不讓美國專美於前的歐洲人,有了行動。一位法國佬 Benoit Mandelbrot 博士發表了一篇A Theory of Fractal Sets,這篇他研究了 20 年後,並且命名為 Fractal Geometry 的出現,讓電腦圖學界在模擬這方面有了大突破。Fractal(碎形)的出現,暗示了非常多大自然的圖騰或紋理都可以透過非常簡易的數學模型來模擬出來。像是樹紋、樹葉上葉脈的紋理、大理石的紋理、你皮膚上的皺紋、台灣中央山脈的走勢…等。隨後,他還寫了一本The Fractal Geometry of Nature的書。(譯注:這讓我想起一本書: Texturing and Modeling: A Procedural Approach

接著,我們再回到猶它聖地。1974 年,Ed Catmull 畢業後,做了點工,然後很不巧地,紐約技術學院(NYIT, New York Institute of Technology)要成立一個電腦圖學實驗室,於是 Ed Catmull 被請去擔任這個實驗室的總召。更巧的是,剛好猶它也因為一些因素,所以 Catmull 也就接下了這個位子。也就在那個時間,非常多人也一併投入 NYIT(譯注:因為 New York 比較接近世界的中心嗎?),於是乎,電腦圖學的領導地位也從 UU 轉到 NYIT 了。

接下來,就是另一個故事了,我打算就此停筆~

comments powered by Disqus