圖形學人物簡史:兩點陣圖靈獎與奧斯卡得主的圖形學研究往事

語言: CN / TW / HK

整理 | 李梅、王玥

編輯 | 陳彩嫻

8 月 8 日至 11 日,計算機圖形學國際頂級會議 SIGGRAPH 在加拿大溫哥華舉辦。2019 年圖靈獎和多次奧斯卡獎「雙料得主」Pat Hanrahan 和 Ed Catmull 在大會上亮相,作了一場題為“Shading Languages and the Emergence of Programmable Graphics Systems”(著色語言與可程式設計圖形系統的出現)的報告。

Pat Hanrahan,皮克斯動畫工作室創始人之一,現任斯坦福大學計算機圖形學實驗室教授。他在皮克斯動畫工作室主導了 RenderMan 介面規範和 RenderMan 著色語言的設計,並參與了《玩具總動員》等皮克斯經典作品的製作。憑藉在渲染方面的傑出工作,他曾 3 次獲得奧斯卡金像獎。

Edwin Catmull,著名電腦科學家,皮克斯動畫工作室聯合創始人及前總裁,曾參與創辦紐約理工學院(NYIT)計算機圖形實驗室,該實驗室被稱為現代視覺特效的起源地。他將自身對於動畫的熱愛與計算機圖形學融合,依靠自身技術先後 9 次獲得奧斯卡金獎。

2019 年,為表彰他們對 3D 計算機圖形學的貢獻,以及對電影製作和計算機生成影象 (CGI) 等應用的革命性影響,Hanrahan 和 Catmull 這兩位計算機圖形學的奠基者被共同授予圖靈獎。

在本次演講中,Hanrahan 通過他在皮克斯和斯坦福的圖形學研究經歷,展示了自上世紀 80 年代以來渲染系統、著色語言、GPU 等的發展歷程。他認為, 圖形學的發展帶來了計算機體系結構的黃金時代,使得我們可以構建不同型別的計算機來優化不同的任務。

而 Edwin Catmull 講述了自己入門計算機圖形學、為了圖形學發展而奔走求職,再到創立 Lucas 影業計算機圖形學部門的傳奇經歷,而這個部門正是皮克斯的前身。Catmull 回憶道,在那段時間裡,自己與身邊的創作者們在各自的領域突破限制,將各種不可能變為現實,那是一個激動人心的時代。

1

Pat Hanrahan

獲得圖靈獎實在是榮幸之至。第一位在計算機圖形學領域獲得圖靈獎的人是計算機圖形學之父 Ivan Sutherland(1988年)。Edwin 是 Ivan 的學生,而我在皮克斯動畫工作室工作,所以這是兩代研究者共同的榮譽。在我之前的一整代計算機圖形學學者為這個領域奠定了基礎,在早期的職業生涯中給了我很多啟發。

圖注:1988 年圖靈獎得主 Ivan Sutherland

我因為在電影行業的計算機影象生成作品受到讚譽,我就首先從這方面講起。下面這張著名的虛擬影象是由 George Lucas 的電影公司 Industrial Light and Magic(簡稱“工業光魔”)製作的,名為“The Road to Point Reyes”。Point Reyes是北加州的一個海濱,製作這張影象旨在讓 Lucas 相信 計算機圖形學可以為想象中的世界繪製逼真的畫面,可以創造出我們在世界上看到的多樣性,並展示出令人信服的細節和複雜性。

圖注:The Road to Point Reyes

被授予圖靈獎後,我意識到, 更大的電腦科學界實際上並不太瞭解計算機圖形學或製作電影所需的知識。 他們認為這很神奇,的確很神奇,我不得不向人們解釋計算機圖形學是什麼,以及製作電影需要什麼樣的圖形學知識。我們需要開發模型和演算法來為我們周圍的一切建立圖片,整個 SIGGRAPH 圈都在為此共同努力。多年來,我們弄清楚瞭如何製作人的照片,如何渲染人、地點、事物、茶壺、兔子、山、腿、溪流、雲、彩虹、光暈、光環、布料。我還研究頭髮和面板。不僅僅是 Edwin 和我,整個圖形學圈子提出了幾百上千個超酷的想法,使得製作電影成為可能。

這張照片只是早期用圖形學能製作出虛擬影象的一個例子。我們在盧卡斯電影公司時,Lucas 主要為他的電影做特效,目標是 建立可以無縫融合到實景中的計算機圖形。

下圖是早期的一個應用:1985 年工業光魔發行的電影“Young Sherlock Holmes”(《少年福爾摩斯》)。你可以看到教堂裡的彩色玻璃人物。

圖注:電影《少年福爾摩斯》

計算機圖形學的早期目標是製作逼真的影象,這也是我們的第一個目標。

渲染系統

我們當時有一個叫做 Reyes 的渲染系統。Reyes 是 “render everything you ever saw” (渲染你所見過的一切)的有趣縮寫。我們的目標是 模擬視覺世界的多樣性,眼睛能看到什麼事物,我們就要做到能對此進行建模。 我們想要實現完全不同層次的幾何和視覺複雜性;想要沒有偽影的、能與實景結合的高質量影象;我們想讓這個渲染系統一直能在硬體中高效工作。

大家應該讀過 Robert Cook、Loren Carpenter 以及 Ed Catmull 合著的這篇關於 Reyes 的影象渲染架構的偉大論文。當我到達目的地時,他們已經完成了所有這些令人驚歎的創新工作。

我在 1986 年到皮克斯的時候,我們有一個硬體方面的目標。我們要渲染一個具有 8000 萬個微多邊形的場景,而在當時,如果你購買一個硬體,它可能只能夠渲染 40000 個多邊形。我們需要的計算總量遠遠超出了我們用現有機器所能做的事情。所以,除非我們 構建硬體來加速過程, 否則我們不可能做到這一點。

以 Monsters University (《怪獸大學》)這部電影為例,它需要 1 億小時的 CPU 時來計算,這大約比我們的目標高出 100 萬倍。1983 年到 2013 年,30 年來,在摩爾定律下,計算能力每 5 年增加大約 10 倍。 所有的一切都是通過計算能力的提高來實現的。

我的工作是在渲染質量中處理著色語言。下圖是 1983 年的我,當時我是一個非常快樂的研究生,那是我發現計算機圖形學大約 1 年後,我花了 1 年時間自學如何用 C 語言和 unix 程式設計,我以前不知道如何程式設計。我決定學習程式設計是因為我想學習計算機圖形學並創作一些東西。我努力實現每篇論文,我工作的實驗室裡有一個 STC 圖形終端,我整日坐在那裡編寫軟體來實現各種演算法。

圖注:1983 年的 Pat Hanrahan

這是我寫的第一篇論文,題目是“Procedures for Parallel Array Processing on a Pipelined Display Terminal”。事實上,當時我的導師 Lenn Yore 對神經網路非常痴迷,他主要研究計算機視覺和硬體。這些為硬體構建硬體和語言的想法,自從我開始從事圖形學以來就一直存在於我的生活中。

在我加入皮克斯之後,我讀到了兩篇很棒的論文,其中一篇是 1984 年 Robert Cook 發表的“Shade Trees”,是當時 Render Advance System 專案的一部分,另一篇是 1985 年 Ken Perlin 發表的“An Image Synthesizer”。他們的想法是,如果你有一個渲染系統,你應該為它構建某種語言或某種擴充套件它的某種方式。

這是我當時寫的語言。除了我,沒有人喜歡這張被腐蝕了的茶壺的照片,我以前一直用它作為我的測試示例。

茶壺上的凹凸不平是由 Ken Perlin 提出的噪聲函式產生的,你只需將六個分形雜色(fractal noise)相加,就可以建立這種隨機的凹凸紋理,然後再用它來對錶明進行擾動。最後,計算表面法線(surface normals),對事物進行著色。這就是一個典型的 RenderMan 著色器。所以實際上,我的貢獻只是在 Robert 所做的事情基礎上,構建了一門完整的語言,並弄清楚瞭如何在軟體中有效地實現它。

這是早期階段我們在 80 年代做這件事的時候。老實說,我做這個研究的主要原因是懶惰。我的使用者都非常苛刻,他們對渲染系統的用途有 100 萬個想法,他們想讓我做的事情太多了,我當時主要在做 Reyes, 設計這種語言並告訴他們自己去做他們想讓我做的所有事情,所以這在很大程度上是一種權宜之計。

大約在同一時期, 圖形處理單元(graphics processing units,GPU)和圖形工作站 (graphics workstations)出現。 kurt Akeley 在 1982 年碩士畢業後到矽谷圖形公司(Silicon Graphics,SGI)與 Jim Clark一起工作。我最喜歡他的一篇論文是“RealityEngine Graphics”。在1984年,工作站所能做的就是畫線框;在 1988 年,可以繪製陰影多邊形;到了 1992 年,你可以得到完整的紋理對映(texture mapping)。這中間花了8年。摩爾定律在同時發生作用,但這項技術並非一夜之間發明的。

OpenGL 架構

當我 1995 年到斯坦福工作後,興起了一股 GPU 熱潮。在某種程度上,英偉達在 1999 年命名了 GPU(Graphics Processing Unit)這個術語。他們 第一次使用 GPU 這個名稱,在單個晶片實現了完整的圖形管道。 而在此之前,晶片可以做光柵化 (rasterization)、可以畫三角形、畫線,但無法在光照方面做轉換。

這個GPU是用 1700 萬個晶體管制成的,如今 GPU 中的電晶體數量實際上是其數千倍,但在當時,得到整個圖形是一個相當大的工程奇蹟。以前的圖形管道比如一個 SGI 機器是由多塊晶片構成的,而這個 GPU 在單個晶片上實現了全部,這是一個真正的突破。

我認為 Kurt 最重要的工作之一,是開發了 OpenGL 架構,這裡只是示意性地繪製了一個簡化的檢視。那個時候,皮克斯和 SGI 決定共同開發一個 3D 介面,Kurt 代表 SGI,我代表皮克斯,我們每週都要一起開會。

最後,我們分道揚鑣了,我們完全尊重彼此的所作所為。我記得他有一天向我解釋過,為一個工作站或者互動計算機開發一個圖形庫,跟為一個渲染系統開發圖形庫非常不同。事實上我認為 OpenGL 和比 RenderMan 更有影響力,因為前者實際上可以在我們的每一臺計算機上執行。

關於 OpenGL 真正有趣和重要的是,它是一個架構,這樣的架構規範意味著它獨立於任何特定的實現。我們都知道 IBM 360 系統之父 Fred brooks,他獲得了 1999 年圖靈獎,但不是因為他在計算機圖形學方面的工作,而是因為計算機架構方面的工作。架構規範只是提供了一個構建方式的藍圖,有了它你就可以通過多種不同方式去實現它。

這個架構實際上與 CPU 指令架構的設計非常相似。因此,在某種意義上, 它為圖形晶片奠定了基礎。 多年過去,已經又出現了不少進步,比如 DX 9 和 DX 10 等,已經超出了 Kurt 一開始所做的。

我離開皮克斯之後還繼續在做語言和架構這兩件事。我在 1995 年寫過一個基金申請。我寫道,我想做超出我們現在可以做的事情,下一步該做什麼非常明顯,那就是光線追蹤、全域性照明。並不難做出這樣的預測,因為我們可以想象摩爾定律的向前發展,並將我們已經想出的方法應用到硬體中。

實時可程式設計著色語言

在那之後,人們試圖提出實時可程式設計著色語言。北卡羅來納大學教堂山分校的 Henry Fuchs 和其他人領導的團隊開發了 Pixel Planes 和 Pixel Flow 架構。最早的實時著色語言之一是由 Mark Olano 和 Anselmo Lastra 在1998 年開發的,還有 Mark Peercy 在2001 年開發的一個系統。我們在 2001 年開發了一種稱為“Real-time Shading Language”的著色語言。之後到 2003 年,Bill mark 和 Kurt Akeley 以及其他在英偉達工作的人做了 CG。後來,HLSL/GLSL也都在那個時候被創造出來。

我想強調的是,採用我們在軟體中開發的技術並構建實現相應的硬體並非易事。這產生了一個非常重要、而且到如今我們仍然在使用的方法,即 Multipass Algorithms。你可以使用渲染系統執行一次,再執行一次,在這個過程中積累影象,然後再次執行,你可以清晰地增強影象,新增細節,新增陰影。這是一個通過圖形系統執行六次不同通道來製作保齡球瓶的示例。這是 Mark Peercy和Mark Olano、Airey、Ungar 在“Interactive Muti-Pass Programmable Shading”這篇論文中提出的方法, 你可以將其看作是一個幀緩衝(framebuffer),就像暫存器或累加器一樣。

你只需在它上面執行一些操作,然後新增一些內容,如 C 代表來自你正在渲染的三角形的顏色。T 代表紋理。一遍又一遍地重複這個過程,這看起來是在執行一個程式,你只是在執行這些指令,製作幀緩衝區,並計算出你想要的。這是一個非常有吸引力的想法,能夠用它完全實現一種著色語言。

而與此同時,所有圖形供應商都開始提出一種 著色器程式(Shader Programs) 的方法。這與Multipass Algorithms 不同,它並非像執行一個非常簡單的指令那樣,向幀緩衝區新增一些東西,而是有一個完整的執行程式,可能是一個有 128 條指令的小程式,但它會接受來自光柵化階段的輸入,在它上面執行這個程式,然後儲存、輸出。

結果證明,這是一個非常重要的見解。可以這樣理解它,如果你使用 Multipass,就像是你在做簡單的向量運算;而如果你使用著色器程式,那你就是在對輸入進行非常複雜的操作。後者的好處是,與你花費的頻寬量相比,你需要做更多的算術運算。要知道,記憶體頻寬始終是一個限制因素。事實證明,這是一項非常重要的創新,並且它對於開發程式至關重要,更多的圖形系統採用了這種著色器程式的方法,我們稱之為 “arithmetic intensity” (算術強度),即你必須做大量的計算。

這個難題的最後一小塊拼圖,是 GPUPU 。GPUPU 並不是一個新想法,關於這方面的研究可以追溯到計算時代的起始點,是在我的研究生時期。人們多年來一直在建造平行計算機,並實現了這樣一種簡單的資料並行程式設計模型,我曾對使用該並行程式的機器進行了程式設計。關於這種並行程式的問題已經全部得到了解決。

在這種並行程式中,初始部分是一個 map (對映),它把一個函式應用到一個集合上,就像你對三角形生成的所有片段執行著色器程式設計,你可以將一個函式應用於片段集合。此外,還有一個 filter(過濾器),如果你有一堆東西,你可以刪除其中的一些。接著是 gather(收集),給記憶體分配一整套地址,然後將其全部收集起來。

但是還有另外兩個 GPU 不擅長的東西,即 scatter 和 reduce,是指寫入一些東西到隨機位置上,分散了所有的記憶體並縮減,這類似於對一個向量進行加和。這兩個事情是相當簡單的,我們可以稍微調整一下 GPU 就能做到這些事情,並進而實現一個通用的平行計算機。

這就帶來了 Brooke 系統的問世,它由我的學生 Ian Buck 在 2004 年推出,後來他去了英偉達,擔任 CUDA 的首席架構師。這的確只是一個很簡單的想法: 把 GPU 變成資料並行虛擬機器,即使你不是一個圖形學程式設計師也可以使用它。 此前,人們嘗試在GPUs 上執行不同的演算法,必須得是一個圖形學程式設計師才行,要想執行一個執行程式,你得渲染三角形,得學習如何使用 OpenGL 或或者 DX 之類的。

這或許就是最後一步,我們總是非常需要週期。我們需要構建平行計算機,並經過幾年的時間,逐漸把它們成為通用的計算機。

另外兩個我認為很重要的方面,一是 特定領域的語言(domain-specific languages)。 我們可以將 OpenGL 看做是一個庫,就像下圖中所顯示的一個簡單的OpenGL 程式。

但我們也可以將 OpenGL 看做是一種具有某種語法的語言。這裡我寫了一份關於 OpenGL  的語法。即使它只是一個庫,它也很像嵌入在 C 語言中的一門小語言。如果你不遵守這個語法,它就會給你報錯,甚至給你藍屏。所以 OpenGL 實際上是一種嵌入式的、特定領域的語言。

這意味著什麼呢?我教授圖形學,我可以在一週或兩週內就能教會人們使用 OpenGL 系統。所以它非常容易使用,你無需瞭解任何有關英偉達硬體的知識,而且超級便攜,能在每個人的 GPU 上執行,且速度非常快,渲染速度也快得令人難以置信。

使用 OpenGL  作為程式設計圖形的語言所帶來的改變,是我們鼓勵在該領域進行令人驚歎的創新。它得以讓當時的 ATI 、英偉達以及其他公司在不改變程式設計模型的情況下探索完全不同的硬體實現。這是構建CPUs 的人從未有過的優勢,因為他們總是用 C 語言和組合語言進行程式設計,不可能在不惹惱所有程式設計師的情況下更改架構,因為一旦更改工具將不再有效。所以,這是一件非常偉大的事情,我認為現在這種使用特定領域語言來引入新架構的理念是值得鼓勵的,有很多遵循這種路徑的系統,比如 Haylight。

圖形學帶來計算機架構的黃金時代

另一個非常相似且重要的想法是 特定領域的架構(domain-specific architectures)

我現在主要從事的是硬體設計,我正在自己製造晶片,我認為 現在是構建晶片的一個很好的時期。 我為什麼會對此感興趣呢?我們都聽過摩爾定律的終結,對於依賴摩爾定律的圖形學領域的研究者來說,它的結束就像是一種生存威脅。如果摩爾定律消失了,那就意味著我快退休了,可能也是時候退休了。

你可能認為摩爾定律的終結帶來的是世界末日,但在 2017  年 Hennessy 和 Patterson 的圖靈獎演講中,他們實際上認為這將是 計算機體系結構的黃金時代。 他們的基本論點很簡單,即我們過去只有一種計算機,比如 ARM 計算機或 x 86 計算機,而現在我們建造的是各種專門的計算機。這就像生物學,想象一下寒武紀大爆發,我們從只存在少數生物體發展到了一個佈滿生命的星球。我們現在擁有各種有趣的計算裝置。

我們都知道蘋果的 M1 Max 晶片,它上面有編解碼器、壓縮晶片、安全晶片,有8個普通核,還有高效能核,2個做 I/O 的低效能核,還有 2 個核心 GPU。要注意,GPU 比 CPU 更大,從計算能力的角度來看更是要大得多。第一個 GPU 有 1700 萬個電晶體,而該晶片上有 570 億個電晶體。

所以現在人們正在使用和構建許多不同型別的計算機來優化不同的任務,這就是我所稱的“domain-specific architecture”。

最後,我想說的是, 圖形學確實改變了計算機系統的構建方式。 目前世界上效能最高的計算機是 GPUs,因為我們可以利用無限量的計算和計算機圖形。動畫和強化學習方面的工作只是一個開始,未來還會消耗更多的週期。這不僅是我們使用特定領域語言和架構的方式,也是其他人構建他們的系統的方式,比如機器學習系統。

所以,當下可能是計算領域最激動人心的時刻,我希望未來有更多的人加入圖形學社群。

2

Edwin Catmull

構想圖形學的未來

很高興能夠參與這個活動。SIGGRAPH 是我 40 多年來的家,我在這裡有很多回憶和朋友。在我的職業生涯中,這個領域一開始發展比較緩慢,但隨著這個領域反過來改變了其他行業,我們便經歷了一場不斷加速的徹底變革。我想談談這些變化對我個人帶來的強烈衝擊。

年輕時,我想成為一名動畫師,但坦白地說,我的能力不夠強。所以我轉學了物理。就讀猶他大學的時候,臨近畢業時,我選修了一門由 Alan Kay 教授的電腦科學課程。他的課程打開了我走進新世界的大門。所以我又進入猶他大學的研究生院學習電腦科學。我上的第一節課是 Ivan Sutherland 教的。可以說我的運氣很好,Alan Kay 和  Ivan Sutherland 這兩位老師對我有極深遠的影響,後來他們都獲得了圖靈獎。

圖注:2003 年圖靈獎得主 Alan Kay

我在很早的時候就掌握了幾個基本法則。第一個法則來自 Alan。Alan Kay 告訴我們一個不太直觀的想法: 人應該隨著指數增長去理解其增長的意義,去看到現實以外的東西,從而去設計未來。

在1969年,我目睹了一件對我來說毫無意義的事。當時是在一場 ACM 會議上,Alan 在演講中說, 計算機會越來越快,越來越小,有一天膝上型電腦將變為現實。 要知道當時的計算機還很龐大,需要放在好多個機架上。Alan 放出一張幻燈片,幻燈片上展示了計算機未來可能的樣子。那張圖上的計算機看起來非常像多年後出現的一臺 HT 膝上型電腦。那臺“未來計算機模型”是摺疊式的,螢幕上展示著一張 ACG圖片。

在他的演講後,聽眾們一個接一個地問問題,其中一個提問的人是當時的 ACM 主席。他批評 Alan, 說 Alan 不應該做出這麼荒謬的預測,而且把 ACG 圖片放到模型的螢幕上也很扯。我不明白當時他為何那麼氣憤,但是我因此知道了,即使是有經驗的人也很難去思考指數增長的含義,而且這個現象到如今仍然如此。

從那以後我便告訴自己,一定不能對這樣的變化視而不見。 “思考變化”成了我的一條基本法則, 並且貫穿了我之後的職業生涯。

在研究生院裡,Ivan 又教給了我另一套法則。當時他在麻省理工學院已經在圖形學方面打下了基礎,又在哈佛大學建立了第一個虛擬現實和增強現實系統,然後和 Dave Evans 在猶他大學建立了計算機圖形學程式。他描繪了計算機圖形學的願景,然後建立了一個循序漸進的程式,準備以這個願景為目標去解決問題。

最初,計算機影象還在多邊形方面受到了非常大的限制。我們一次只能處理一行掃描線。而Ivan 和團隊發明的程式的第一步就是開發確定影象中可見多邊形的演算法。建立可見多邊形演算法的人中有一個叫做 John Warnock,他後來創辦了Adobe。另一名學生開發了一種演算法,可以用於建立實時渲染多邊形的硬體。

在動畫電影中尋找生機

下一步目標是讓物體看起來平滑,但其輪廓仍然是多邊形的,這時我意識到,我可以將我對動畫的熱愛與計算機圖形這個新領域結合起來。

我做過一個課堂專案,是給我的左手製作一個多邊形模型。我很喜歡這個專案,也想要為計算機圖形學的進步增添一份我自己的力量。所以 Ivan 建議我想想方法,看看如何能彎曲多邊形的輪廓。經過大量思考後,我認為這種方法很明顯有根本上的缺陷。 我需要的是渲染補丁,我需要的是直接渲染曲線,但這要求的記憶體比當時計算機的可用記憶體多得多。 我唯一能做的就是把整個影象和 Z 緩衝區放在記憶體中。由於操作在那個時代不支援分頁,所以我寫了一個頁面來將影象塊移進和移出記憶體。我甚至弄壞了其中一個磁碟檔案,因為它在磁碟上到處嘎嘎作響。這些磁碟在當時都是很大的。

但是我被 Alan 的思想所啟發,那就是我們在模擬未來時應該懷有“我所想的會變成現實”的信心。哪怕這種發展很緩慢。我現在有一個數學定義良好的表面可以使用,所以我可以渲染 B 樣條補丁達到紋理對映。這些影象是向前邁出的一大步,而其他隨後的研究則繼續在這一發展的鏈條上添磚加瓦。 我們開發的演算法受到我們現有機器的啟發和限制。這似乎是舊時代的說法,比如記憶體有多少,機器有多慢之類的,但它並不能真正限制一門學科的發展。 在藝術領域也是如此。我們知道自己能做的工作是受到限制的,而我們要挑戰的是超越極限。當挑戰成功後,原有的限制邊界便向外擴充套件,我們面臨的挑戰也變成了突破下一個限制。

在猶他大學時,還有一個令我自豪的專案。大學贊助了關於曲面數學的研討會,而我花了很多時間思考曲線。我知道使用預先準備好的補丁網路會有問題。網格的拓撲結構不適用於像人手這樣的自然物體,因此我通過逆向工程,將 B 樣條的數學轉化為一組幾何運算來解決這個問題。這些操作可以作為遞迴細分網格的規則應用於非預見網格。我用基本的高中幾何證明了這點,並且覺得這是個很好的想法。我將這個想法展示給一位教授,曲線補丁正是他的專長。他幾乎沒看我 18 頁的手寫證明就直接說:Ed,這是什麼鬼東西?我被傷到了,便把這個想法擱置一旁。過了一陣子,我把這個想法拿給 Jim Clark 看。他實現了這個想法,我們為此寫了一篇論文。多年以後,Tony DeRose 把這個想法推進到了下一個階段。我們又將其開源,隨著時間的推移,這個想法最終成為了如今電影產業中主要使用的表面補丁。

早在上大學的時候,我就相信這個想法是有可能得到應用的。這是一個我可以為之長期努力的目標。我一直支援這個願景,並試圖在迪士尼和大學之間建立一個交流專案,因此我去到了伯班克。我到了迪士尼,見到那些製作了我童年記憶裡動畫的電影製作人,能真是太棒了。

圖注:位於伯班克的迪士尼工作室總部

可惜迪士尼對交流專案沒有興趣,他們只是想招募相關人才來幫助設計佛羅里達的新專案,可是我沒有興趣。迪士尼已經是遊戲產業中唯一有可能對計算機影象學感興趣的工作室,而我發現他們其實對此毫無興趣。所以我想,追求自己夢想最好的地方應該是在大學裡。

但是當時有一個問題,那就是計算機圖形學被認為與電腦科學無關,只被認為是一個有趣的邊緣學科。很少有大學課程對計算機圖形感興趣,而唯二的兩間對此感興趣的大學,康奈爾大學和俄亥俄州立大學,計算機圖形學的課程甚至都不在他們的計算機科學系裡。

當我在面試大學的崗位時,我試圖向面試官解釋圖形學未來的巨大潛力。但沒一個人聽進去,我也因此沒能在大學裡找到工作。1974年底,我接到 NYIT 院長的電話。他不懂技術,但他想製作動畫電影,而且他相信計算機圖形學前程遠大。這對我來說是好訊息。但壞訊息是,他認為電腦科學家將取代藝術家。NYIT願意購買兩個全綵色的可磨損緩衝器,一個價格是13萬美元。我們準備好開始工作了。Alvy Ray Smith是繼我之後第二個加入團隊的人,之前他在施樂帕羅奧多研究中心工作,但是那裡對於顏色的觀點很奇怪,他為此感到沮喪,於是離開了原工作地。

開始工作後,我在幾個 3D 渲染系統中編寫了一個 2D 動畫系統。我們還從世界各地召集了志同道合的人。我是管理方面的新手,所以想複製我在猶他大學的經歷,通過讓大家分享和支援同一個願景,同一種文化而將大家集合起來,這將是一個漫長的一步一步來的過程。我認為對於我們的研究進展不應該保密,所以我認為最好的辦法是加入 SIGGRAPH,招募比我聰明的人,把我們研究的一切都發表出來。事實證明,這是我做過的最好的決定之一。

在 NYIT 工作 5 年後,我們意識到團隊的最大弱點是缺少電影創作者。就算創造出了好用的工具,可是沒有能使用這種工具的人,我們就不可能成功。於是我們開始拜訪各種電影工作室,向他們展示我們的工作,但對方都沒什麼興趣。而一部電影的出現改變了一切,這部電影就是《星球大戰》。星球大戰的導演 Lucas 不懂技術,但是他看到了工業光魔公司做出的特效,並深深相信 計算機技術將成為電影製作中重要的一部分。 電影行業中終於有一個有頭有臉的人物願意投資我們了。

圖注:科幻片《星球大戰》

1979年,我離開 NYIT,在工業光魔開始搭建計算機部門。Lucas 吸引了很多對這個行業感興趣的人,他野心勃勃, 想要改變電影製作的三大板塊:視覺特效、視訊剪輯和數字音效。 於是我們便在這三大板塊裡進行深耕。他的公司位於舊金山北部,這意味著我們可以坐車一小時到矽谷,或者乘飛機一小時到好萊塢。舊金山是一個很好的地點,因為我們可以快速到達矽谷和好萊塢,而其本身又相對偏遠。

幸運的是,George 支援我們要把成果釋出到更大的圈子裡去的決定。當時我們的一個競爭對手買了一臺價值 1000萬美元的 Cray-1 超級計算機,於是我們討論了“製作一部未來水平高質量的電影需要什麼”並進行了一番計算。最後得出的結果是,我們需要100臺 Cray-1 的計算能力,但只能付得起 1/10 的價格。按照計算速度指數曲線來看,我們還需要14到15年。所以我們最好把時間和資源花在我們現在看到的許多問題上。

如果我們要設定一些瘋狂的目標,就需要先明確問題是什麼以及我們需要採取什麼行動。巧合的是,當我們在15年後完成《玩具總動員》的故事時,我們已經非常接近曾經對於計算能力的估計。在未來變化的影響下工作的過程是非常需要重視的,要處理電影解析度的影象,就需要我們設計並構建一個系統來在計算機中儲存整個填充解析度影象。而這就需要更多在工作站裡可用的並行處理,於是 影象計算機 應運而生。

在渲染方面, Lauren Carpenter 開發了一種可以處理高複雜性的新渲染方式。正如 Pat 所說,我們在燈光和陰影方面取得重大進展後, Rob 加入了我們。我們三個人在我辦公室的白板前碰面,討論我們的未來的大目標應該是什麼。

當時SOTA的渲染多邊形數量大約是四萬個,我們通過 Pat 的計算得出我們的目標是八千萬個。我不知道為什麼我們沒有四捨五入到1億,這個結果是計算中突然蹦出來的。這是滿足工業光魔公司高標準的條件,也是我們的目標。我們對於複雜性、運動模糊和景深的追求高到瘋狂。我們想要樹立並追求一個高到離譜的目標,所以逼迫自己以一種完全不同的方式來思考這個問題。這導致了一系列新想法的誕生,也改變了從 Lawrence 架構開始的渲染複雜性。與我們一起工作的硬體設計師 Rodney Stock 建議我們考慮點取樣方式,其做法類似於印刷中使用的抖色(dithering)方式。Rob 做了這個實驗並嘗試了各種不同的方法來進行樣本的蒙特卡洛分佈,最終他想出了一個很好的方法來實現樣本分佈。而Tom porter 提出了一個很關鍵的想法,他將樣本隨時間分散,這解決了運動模糊的問題。

然後 Rob 重新編寫了一個面向物件的清晰架構,使得軟體能夠隨著新技術的開發而進化。我們知道,除非計算能力至少提高100倍,否則這是不現實的,但我們也知道,或遲或早,我們的想法終將變成現實。我構思了一個短片來展示了我們在 Lucas 影業所做的工作,而這個短片就是 Andre & Wally B。John Lasseter 加入了我們並創造了動畫角色,並賦予了角色只有一個真正的好動畫師才能給予的生命。那是一個激動人心的時代,在那時,極具創造力的人們在各自的領域紛紛掙脫桎梏,突破界限。

不過,工業光魔公司的情況出現了變化,到了 1984 年底,George Lucas 發現有必要把計算機部門賣出去。最終 Steve Jobs  買下了這個部門。儘管 George 告訴他我們一心想做動畫,但皮克斯公司還是誕生了。

於是我們開始從事製造和銷售特殊用途計算機的業務,這是我從來沒有預料到的,包括 Steve 在內的所有人都沒有任何製造、銷售高階硬體的經驗,所以我們犯了很多錯誤。我們僱了製造人員,為客戶編寫軟體,迪士尼就是我們的其中一個客戶,他們希望我們為手繪單元格上色。

令我驚訝的是,當我們開始製造時,我學到了很多東西。我以前認為製造是相當平庸的一件事,但我錯了。儘管我們失敗了,但這些失敗是企業進行多次調整的結果,而不是真的做錯了什麼。我們無法與不斷加速的摩爾定律競爭,這種垂死掙扎的潛在動力帶來了很多變化,是時候退出硬體業務、專注於軟體業務了。因為我們希望保持迪士尼對我們的信任,但我們為他們編寫的軟體只能在我們的硬體中執行,所以我們將硬體業務賣給了另一家公司,讓別人製作影象。

我們與迪士尼簽訂了另一份合同把軟體轉移給 SGI。猶他大學畢業生 Jim Clark 使用幾何引擎(Geometry Engine) 和 GPUs 的前身建立了 SGI。

此時,做工作站的公司之間還沒有很激烈的競爭。圖片渲染質量很好,但都很難用。Jim 找到我,建議我們應該共同為行業設計一個渲染介面。最後共有 19 家公司參與了這一過程。我感到很自豪的一個決定是我們邀請 Pat Hanrahan 做我們的設計架構師。Pat 贏得了所有人的信任,他是一個聆聽者,同時也是一個偉大的設計師。Pat 的設計非常簡潔,他在 Robert 的概念基礎上構建了複雜的著色語言。他所做的這些工作都是為了讓人們更容易獲得渲染,這就是 RenderMan 介面的故事。

電影/遊戲+GPU

在 SIGGRAPH 圈子裡,每年大家都會發表新的研究進展。很多年以來,聖盃都屬於逼真影象的製作,但 圖形學研究已經擴充套件到建模、模擬和複雜性。 如何建模和渲染水流、布料或頭髮的波動?如何模擬自然現象?非常重要的一點是,如何控制模擬以滿足故事的需求?這些問題都十分吸引人。

然後,特效行業開始與計算機圖形學融合。以工業光魔公司為起點的特效行業對行事方法沒有任何教條觀念,他們並不專注於所掌握的東西,而只是關心他們能在螢幕上得到什麼。只要有好的想法,他們就會使用。1991 年是最為關鍵的一年,那年發行了電影《終結者 2》,主角正是由 CG 製作的;那年也發行了3D版《美女與野獸》,同時皮克斯與迪士尼達成合作,開始製作《玩具總動員》。

前進的步伐隨著計算機速度的增長而加快。1993 年,《侏羅紀公園》上映,這向電影業發出了一切即將改變的訊號,隨後是 1995 年的《玩具總動員》。 91 到 95 年,行業經歷了技術接受度發生重大變化的轉折階段。

同期,遊戲行業開始興起。當時的 3D 遊戲還很粗糙,但已經能給人留下深刻印象。John Carmack 推動了在 PC 上實現 3D 遊戲。

英偉達在 1993 年成立後開始製造晶片。他們在 6 個月內設計和製造了一款晶片,並開始它以每 6 個月釋出一款新晶片為目標的英偉達文化,這種釋出週期是前所未有的。AMD 是增強 GPU 效能快速迴圈的一個競爭對手。同時,SIGGRAPH 在演算法、光照模擬方面也有大量研究,這些都是遊戲行業想要的。英偉達從所有現存事物中汲取靈感,試圖滿足不斷髮展的圖形學行業對於速度和真實感的無限渴望。SIGGRAPH 以及其他學術和娛樂行業的規模都不再有能力製造專門的晶片,但遊戲行業可以。

GPUs 被用到工作站中,為圖形學研究人員提供了更快的演算法開發機器,發表了更多 SIGGRAPH 論文。 遊戲、GPU 公司和 SIGGRAPH 圈之間形成了一個極佳的迴圈,這個迴圈帶來了計算效能的提高,並在幾年內一直保持著摩爾定律。 這是一個無人可以操縱的虛擬迴圈。

在 2009 年到 2012 年左右,GPUs 開始顯示出在遊戲以外的領域的用處。那些模擬所需的矩陣乘法多年來一直很有用,所以人們開始在科學應用中使用這些乘法。

神經網路的構思出現在 50 多年前,當其逐步走向實用,便給我們帶來了深度學習,並對許多行業產生了重大影響。正如神經網路與深度學習的奇妙關係,GPU 、遊戲與學術界之間的迴圈也產生了完全出乎人意料的驚喜。 計算機圖形學一開始被邊緣化,然後經歷了前所未有的瘋狂過山車,從邊緣學科轉而成為許多行業和電腦科學的重要支柱,而這種變化將繼續下去。 很難預測最終我們會走到何處,但我們還需要繼續努力。

視訊連結:https://www.youtube.com/watch?v=MdPXBnJWai8

更多內容,點選下方關注:

掃碼新增 AI 科技評論 微訊號,投稿&進群:

「其他文章」