本文約12000字,建議閱讀15 分鐘
很難預測最終我們會走到何處,但我們還需要繼續努力。
近日,計算機圖形學國際頂級會議 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 回憶道,在那段時間裡,自己與身邊的創作者們在各自的領域突破限制,将各種不可能變為現實,那是一個激動人心的時代。
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,因為我們可以利用無限量的計算和計算機圖形。動畫和強化學習方面的工作隻是一個開始,未來還會消耗更多的周期。
這不僅是我們使用特定領域語言和架構的方式,也是其他人構建他們的系統的方式,比如機器學習系統。
所以,當下可能是計算領域最激動人心的時刻,我希望未來有更多的人加入圖形學社區。
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 、遊戲與學術界之間的循環也産生了完全出乎人意料的驚喜。計算機圖形學一開始被邊緣化,然後經曆了前所未有的瘋狂過山車,從邊緣學科轉而成為許多行業和計算機科學的重要支柱,而這種變化将繼續下去。很難預測最終我們會走到何處,但我們還需要繼續努力。
視頻鍊接:
htt
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!