設置
  • 日夜間
    隨系統
    淺色
    深色
  • 主題色

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

雷峰網 2022/8/18 18:14:42 責編:汪淼

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

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

Pat Hanrahan,皮克斯動畫工作室創(chuàng)始人之一,現任斯坦福大學計算機圖形學實驗室教授。他在皮克斯動畫工作室主導了 RenderMan 界面規(guī)范和 RenderMan 著色語言的設計,并參與了《玩具總動員》等皮克斯經典作品的制作。憑借在渲染方面的杰出工作,他曾 3 次獲得奧斯卡金像獎。

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

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

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

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

Pat Hanrahan

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

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

1988 年圖靈獎得主 Ivan Sutherland

▲ 1988 年圖靈獎得主 Ivan Sutherland

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

The Road to Point Reyes

▲ The Road to Point Reyes

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

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

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

電影《少年福爾摩斯》

▲ 電影《少年福爾摩斯》

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

  • 渲染系統

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

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

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

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

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

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

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

1983 年的 Pat Hanrahan

▲ 1983 年的 Pat Hanrahan

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

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

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

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

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

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

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

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

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

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

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

  • OpenGL 架構

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

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

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

我認為 Kurt 最重要的工作之一,是開發(fā)了 OpenGL 架構,這里只是示意性地繪制了一個簡化的視圖。那個時候,皮克斯和 SGI 決定共同開發(fā)一個 3D 界面,Kurt 代表 SGI,我代表皮克斯,我們每周都要一起開會。

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

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

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

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

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

  • 實時可編程著色語言

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

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

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

你只需在它上面運行一些操作,然后添加一些內容,如 C 代表來自你正在渲染的三角形的顏色。T 代表紋理。一遍又一遍地重復這個過程,這看起來是在運行一個程序,你只是在執(zhí)行這些指令,制作幀緩沖區(qū),并計算出你想要的。這是一個非常有吸引力的想法,能夠用它完全實現一種著色語言。

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

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

結果證明,這是一個非常重要的見解??梢赃@樣理解它,如果你使用 Multipass,就像是你在做簡單的向量運算;而如果你使用著色器程序,那你就是在對輸入進行非常復雜的操作。后者的好處是,與你花費的帶寬量相比,你需要做更多的算術運算。要知道,內存帶寬始終是一個限制因素。事實證明,這是一項非常重要的創(chuàng)新,并且它對于開發(fā)程序至關重要,更多的圖形系統采用了這種著色器程序的方法,我們稱之為 “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 上運行,且速度非??欤秩舅俣纫部斓昧钊穗y以置信。

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

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

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

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

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

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

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

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

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

Edwin Catmull

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

  • 構想圖形學的未來

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

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

2003 年圖靈獎得主 Alan Kay

▲ 2003 年圖靈獎得主 Alan Kay

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

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

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

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

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

最初,計算機圖像還在多邊形方面受到了非常大的限制。我們一次只能處理一行掃描線。而 Ivan 和團隊發(fā)明的程序的第一步就是開發(fā)確定圖像中可見多邊形的算法。創(chuàng)建可見多邊形算法的人中有一個叫做 John Warnock,他后來創(chuàng)辦了 Adobe。另一名學生開發(fā)了一種算法,可以用于創(chuàng)建實時渲染多邊形的硬件。

  • 在動畫電影中尋找生機

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

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

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

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

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

位于伯班克的迪士尼工作室總部

▲ 位于伯班克的迪士尼工作室總部

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

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

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

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

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

科幻片《星球大戰(zhàn)》

▲ 科幻片《星球大戰(zhàn)》

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

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

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

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

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

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

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

于是我們開始從事制造和銷售特殊用途計算機的業(yè)務,這是我從來沒有預料到的,包括 Steve 在內的所有人都沒有任何制造、銷售高端硬件的經驗,所以我們犯了很多錯誤。我們雇了制造人員,為客戶編寫軟件,迪士尼就是我們的其中一個客戶,他們希望我們?yōu)槭掷L單元格上色。

令我驚訝的是,當我們開始制造時,我學到了很多東西。我以前認為制造是相當平庸的一件事,但我錯了。盡管我們失敗了,但這些失敗是企業(yè)進行多次調整的結果,而不是真的做錯了什么。我們無法與不斷加速的摩爾定律競爭,這種垂死掙扎的潛在動力帶來了很多變化,是時候退出硬件業(yè)務、專注于軟件業(yè)務了。因為我們希望保持迪士尼對我們的信任,但我們?yōu)樗麄兙帉懙能浖荒茉谖覀兊挠布羞\行,所以我們將硬件業(yè)務賣給了另一家公司,讓別人制作圖像。

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

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

  • 電影 / 游戲 + GPU

在 SIGGRAPH 圈子里,每年大家都會發(fā)表新的研究進展。很多年以來,圣杯都屬于逼真圖像的制作,但圖形學研究已經擴展到建模、仿真和復雜性。如何建模和渲染水流、布料或頭發(fā)的波動?如何模擬自然現象?非常重要的一點是,如何控制仿真以滿足故事的需求?這些問題都十分吸引人。

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

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

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

英偉達在 1993 年成立后開始制造芯片。他們在 6 個月內設計和制造了一款芯片,并開始它以每 6 個月發(fā)布一款新芯片為目標的英偉達文化,這種發(fā)布周期是前所未有的。AMD 是增強 GPU 性能快速循環(huán)的一個競爭對手。同時,SIGGRAPH 在算法、光照模擬方面也有大量研究,這些都是游戲行業(yè)想要的。英偉達從所有現存事物中汲取靈感,試圖滿足不斷發(fā)展的圖形學行業(yè)對于速度和真實感的無限渴望。SIGGRAPH 以及其他學術和娛樂行業(yè)的規(guī)模都不再有能力制造專門的芯片,但游戲行業(yè)可以。

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

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

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

廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。

相關文章

關鍵詞:圖形學,圖靈

軟媒旗下網站: IT之家 最會買 - 返利返現優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應用 魔方 最會買 要知