打開電視機(jī),點(diǎn)播您最喜歡的流媒體服務(wù),然后倒上一杯可樂。這個(gè)時(shí)代最重要的視覺技術(shù)已融入生活的方方面面。
在過去 15 年算力飛速增長的推動(dòng)下,路徑追蹤已經(jīng)席卷了整個(gè)視覺媒體領(lǐng)域。
它為電影大片帶來了各種大型效果、為最令人沉浸的情節(jié)劇添加了美妙的光影效果,并將動(dòng)畫藝術(shù)推向新的高度。
而這還只是冰山一角。
路徑追蹤(Path tracing)正在邁向?qū)崟r(shí)化,它將實(shí)現(xiàn)充滿動(dòng)態(tài)光影、反射和折射的逼真交互式 3D 環(huán)境。
什么是路徑追蹤?這個(gè)概念其實(shí)非常簡單,它連接著 500 年以來的藝術(shù)和科學(xué)領(lǐng)域創(chuàng)新者。
光柵化與光線追蹤之間有什么區(qū)別?
首先要了解一些術(shù)語的定義,以及現(xiàn)在如何使用它們創(chuàng)建交互式圖形,這些圖形能夠?qū)τ脩糨斎胱龀鰧?shí)時(shí)反應(yīng),比如在視頻游戲中。
第一個(gè)術(shù)語是光柵化(rasterization),這項(xiàng)技術(shù)可以從單視點(diǎn)生成圖像,從一開始就是 GPU 的核心?,F(xiàn)代 NVIDIA GPU 每秒可以生成超過 1000 億個(gè)光柵化像素,這使光柵化成為實(shí)時(shí)圖形(如游戲)的理想選擇。
光線追蹤技術(shù)比光柵化更強(qiáng)大。它不再局限于從一個(gè)點(diǎn)上看到的圖像,而是可以確定從許多不同的點(diǎn)和方向看到的圖像。從 NVIDIA Turing 架構(gòu)開始,NVIDIA GPU 就一直在提供能夠加速這種困難計(jì)算的專用 RTX 硬件。如今,單個(gè) GPU 每秒可以追蹤數(shù)十億條光線。
追蹤所有這些光線能夠比光柵化更精確地模擬光線在現(xiàn)實(shí)世界中的散射情況。但我們還必須回答以下問題:如何模擬光線以及如何把這項(xiàng)技術(shù)應(yīng)用于 GPU?
什么是光線追蹤?故事要從細(xì)繩開始講起
更好地回答這個(gè)問題需要先來了解這項(xiàng)技術(shù)的發(fā)展過程。
NVIDIA 圖形學(xué)研究副總裁 David Luebke 喜歡從 16 世紀(jì)北歐文藝復(fù)興時(shí)期最重要的人物之一阿爾布雷希特·丟勒(Albrecht Dürer)開始講起,丟勒使用繩子和砝碼在二維表面上復(fù)制出三維圖像。
丟勒一生致力于將古典和現(xiàn)代數(shù)學(xué)與藝術(shù)相結(jié)合,在表現(xiàn)力和現(xiàn)實(shí)主義方面取得了突破性的成就。
跟著繩子:阿爾布雷希特·丟勒在《測量論》(紐倫堡,1525年,f15)中首次描述了現(xiàn)在被稱為“光線追蹤”的技術(shù)。這項(xiàng)技術(shù)可以在二維表面上準(zhǔn)確表示三維物體。
在 1525 年的《測量論》中,丟勒成為了第一個(gè)描述光線追蹤概念的人。了解丟勒如何描述這個(gè)概念是理解它的最簡單方法。
想一想光如何照亮周圍的世界。
現(xiàn)在想象一下,用一根丟勒所使用的細(xì)繩從眼睛往后追蹤這些光線,一直到與光線互動(dòng)的物體。這就是光線追蹤。
將光線追蹤引入計(jì)算機(jī)圖形學(xué)
Turner Whitted 在 1979 年發(fā)表的論文《用于陰影顯示的改進(jìn)型光照模型》點(diǎn)燃了光線追蹤的復(fù)興。
1969 年,在丟勒去世 400 多年后,IBM 的 Arthur Appel 展示了如何將光線追蹤概念引入計(jì)算機(jī)圖形學(xué),并應(yīng)用于計(jì)算可見度和陰影。
十年后,Turner Whitted 率先展示了這一概念如何捕捉反射、陰影和折射,解釋了這一看似簡單的概念如何使更復(fù)雜的計(jì)算機(jī)圖形成為可能。這項(xiàng)技術(shù)在接下來的幾年里迅速發(fā)展。
1984 年,盧卡斯影業(yè)的 Robert Cook、Thomas Porter 和 Loren Carpenter 詳細(xì)介紹了光線追蹤如何將運(yùn)動(dòng)模糊、景深、半影、半透明和模糊反射等許多常見的電影制作技術(shù)結(jié)合到一起。在此之前,這些技術(shù)在計(jì)算機(jī)圖形中都無法實(shí)現(xiàn)。
Jim Kajiya 在 1986 年發(fā)表的論文《渲染方程》中不僅提出了描述光線如何在場景中移動(dòng)的簡練物理學(xué)方程,還概述了如何高效地應(yīng)用該方程。
兩年后,加州理工學(xué)院教授 Jim Kajiya 在一篇簡短的七頁論文《渲染方程》中通過光線追蹤將計(jì)算機(jī)圖形與物理學(xué)相聯(lián)系,并介紹了路徑追蹤算法,這使得準(zhǔn)確描繪光線在場景中的散射方式成為可能。
什么是路徑追蹤?
在開發(fā)路徑追蹤的過程中,Kajiya 從不相關(guān)的領(lǐng)域獲得了啟發(fā)——對(duì)輻射換熱的研究,或者說熱如何在整個(gè)環(huán)境中傳播。該領(lǐng)域的一些概念啟發(fā)他發(fā)布了描述光線如何穿過空氣和從表面散射的渲染方程。
渲染方程只有寥寥幾行,但卻不容易解出。計(jì)算機(jī)圖形場景很復(fù)雜,數(shù)十億三角形在今天并不罕見。但由于沒有辦法直接解出渲染方程,Kajiya 提出了第二個(gè)關(guān)鍵創(chuàng)新。
Kajiya 證明了統(tǒng)計(jì)技術(shù)可以用來解出渲染方程。即使沒有直接解出該方程,也有能夠沿著單個(gè)光線的路徑求解。如果能夠沿著足夠多的光線路徑解出該方程,就能準(zhǔn)確模擬場景中的照明,生成逼真的圖像。
那么如何沿著射線的路徑解出渲染方程?答案是光線追蹤。
Kajiya 使用的統(tǒng)計(jì)技術(shù)被稱為蒙特卡洛積分,可以追溯到計(jì)算機(jī)誕生之初的 1940 年代。開發(fā)用于路徑追蹤的改進(jìn)型蒙特卡洛算法至今仍是未被解決的研究問題;NVIDIA 的研究人員處于該領(lǐng)域的最前沿,他們定期發(fā)布提高路徑追蹤效率的新技術(shù)。
通過結(jié)合這兩個(gè)概念(使用以物理學(xué)為基礎(chǔ)的方程描述光線在場景中的移動(dòng)方式,并使用蒙特卡洛模擬幫助選擇可控?cái)?shù)量的光源返回路徑),Kajiya 提出了日后成為生成逼真計(jì)算機(jī)生成圖像標(biāo)準(zhǔn)的基本技術(shù)。
他的方法反映了光線在現(xiàn)實(shí)世界中移動(dòng)時(shí)的物理規(guī)律,將由各種不同渲染技術(shù)主導(dǎo)的領(lǐng)域,轉(zhuǎn)變?yōu)榭梢允褂煤唵?、?qiáng)大的算法重現(xiàn)大量高度真實(shí)視覺效果的領(lǐng)域。
路徑追蹤進(jìn)入電影行業(yè)
1987 年發(fā)布的路徑追蹤在之后的幾年被視為一種巧妙的技術(shù),同時(shí)也是當(dāng)時(shí)已知的最準(zhǔn)確方法,但它完全不實(shí)用。Kajiya 原始論文中的圖像只有 256×256 像素,但卻在昂貴的微型計(jì)算機(jī)上花了 7 個(gè)多小時(shí)才完成渲染,而這臺(tái)計(jì)算機(jī)的性能遠(yuǎn)超大眾使用的計(jì)算機(jī)。
但隨著摩爾定律推動(dòng)著算力的提高,這項(xiàng)技術(shù)變得越來越實(shí)用。摩爾定律認(rèn)為芯片制造商每 18 個(gè)月就會(huì)將微處理器上的晶體管數(shù)量增加一倍,使算力成倍增長。
從 1998 年的《蟲蟲危機(jī)》等電影開始,光線追蹤在越來越多電影中被用于增強(qiáng)計(jì)算機(jī)生成圖像。2006 年,第一部完全采用路徑追蹤的電影《怪怪屋》震驚了觀眾。這部電影使用了 Solid Angle SL(后來被Autodesk收購)和索尼圖形圖像運(yùn)作公司(Sony Pictures Imageworks)共同開發(fā)的 Arnold 軟件渲染。
該電影上映后大受歡迎,全球總票房超過了 1.4 億美元。它讓人們看到了新一代計(jì)算機(jī)動(dòng)畫的可能性。隨著算力的提高,越來越多的電影開始依賴這項(xiàng)技術(shù),它所生成的圖像往往與攝像機(jī)拍攝的圖像毫無區(qū)別。
問題在于渲染單張圖片仍然需要幾個(gè)小時(shí),而龐大的服務(wù)器集合,即“渲染農(nóng)場”要連續(xù)運(yùn)行數(shù)月來渲染圖片,才能制作出一部完整的電影。因此,這項(xiàng)技術(shù)需要取得巨大的突破才能應(yīng)用于實(shí)時(shí)圖形。
路徑追蹤在游戲中的應(yīng)用
多年前,路徑追蹤一直無法應(yīng)用于游戲。雖然許多游戲開發(fā)者表示,會(huì)想要在路徑追蹤的性能可以滿足實(shí)時(shí)圖形需求時(shí)使用這項(xiàng)技術(shù)。但由于當(dāng)時(shí)的性能與實(shí)時(shí)圖形的要求相距甚遠(yuǎn),路徑追蹤似乎無法實(shí)現(xiàn)。
隨著 GPU 變得越來越快以及如今 RTX 硬件的普及,實(shí)時(shí)路徑追蹤就在眼前。就像電影在轉(zhuǎn)向路徑追蹤之前開始融入一些光線追蹤技術(shù)一樣,游戲也已經(jīng)開始用有限的方式使用光線追蹤。
現(xiàn)在,越來越多的游戲都在某些方面使用了光線追蹤。它們將傳統(tǒng)的光柵化渲染技術(shù)與部分光線追蹤效果相結(jié)合。
那么這里的路徑追蹤指的是什么?它可能指各種技術(shù)的混合。游戲開發(fā)者可以光柵化主光線,然后對(duì)場景照明進(jìn)行路徑追蹤。
光柵化相當(dāng)于從單個(gè)點(diǎn)投射一組光線,這組光線會(huì)在集中的的第一個(gè)事物上停止。光線追蹤更進(jìn)一步,可以將來自多個(gè)點(diǎn)的光線投射至任何方向。路徑追蹤模擬光的真實(shí)物理特性,將光線追蹤作為更大照明模擬系統(tǒng)的組成部分。
這意味著場景中的所有照明均使用蒙特卡洛或其他技術(shù)隨機(jī)采樣,包括對(duì)物體或角色的直接照明,以及照亮房間或間接照明環(huán)境的全局照明。
僅通過一次反彈追蹤光線做不到這一點(diǎn),它需要通過多次反彈追蹤光線,甚至可能要像 Kajiya 所描述的那樣追溯光源。
一些游戲已經(jīng)在這樣做了,而且效果非常好。
微軟已經(jīng)發(fā)布了將路徑追蹤應(yīng)用于《我的世界》中的插件。
《Quake II》這部經(jīng)典的射擊游戲也憑借新的插件實(shí)現(xiàn)了完整的路徑追蹤,這種類型的游戲往往是應(yīng)用了高級(jí)圖形技術(shù)的沙盒游戲。
顯然,這個(gè)領(lǐng)域還有很長的路要走,游戲開發(fā)者需要知道客戶擁有路徑追蹤游戲體驗(yàn)所需的算力。
游戲需要有高質(zhì)量的視覺效果以及與反應(yīng)迅速的游戲玩家進(jìn)行互動(dòng)的速度,因此是最具挑戰(zhàn)性的視覺計(jì)算項(xiàng)目。
期待著這個(gè)領(lǐng)域的開創(chuàng)性技術(shù)能夠延伸到數(shù)字生活的方方面面。
未來趨勢(shì)
隨著 GPU 性能的不斷增強(qiáng),路徑追蹤的應(yīng)用順理成章地成為了下一個(gè)趨勢(shì)。
憑借 Autodesk 的 Arnold、Chaos Group 的 V-Ray 或皮克斯的 Renderman 等工具以及強(qiáng)大的 GPU,產(chǎn)品設(shè)計(jì)師和建筑師使用光線追蹤在幾秒鐘內(nèi)就能生成逼真的產(chǎn)品模型,這使他們能夠更好地開展合作并跳過昂貴的原型設(shè)計(jì)。
隨著 GPU 算力的提升,視頻游戲已成為光線追蹤和路徑追蹤的下一個(gè)前沿領(lǐng)域。
2018 年,NVIDIA 發(fā)布了 NVIDIA RTX。這項(xiàng)光線追蹤技術(shù)使游戲開發(fā)者實(shí)現(xiàn)了實(shí)時(shí)、電影級(jí)的渲染。
NVIDIA RTX 包括在 NVIDIA Ampere 和 Turing 架構(gòu) GPU 上運(yùn)行的光線追蹤引擎,支持通過多種接口支持光線追蹤。
NVIDIA 已經(jīng)與微軟合作,通過微軟的全新 DirectX 光線追蹤(DXR)API 實(shí)現(xiàn)對(duì) RTX 的全面支持。
此后,NVIDIA 繼續(xù)開發(fā) NVIDIA RTX 技術(shù),越來越多的開發(fā)者創(chuàng)造出支持實(shí)時(shí)光線追蹤的游戲。
《我的世界》甚至支持實(shí)時(shí)路徑追蹤,將塊狀的沉浸式世界變成了被光影籠罩的沉浸式景觀。
日益強(qiáng)大的硬件以及軟件工具和相關(guān)技術(shù)的激增將繼續(xù)推動(dòng)這項(xiàng)技術(shù)的發(fā)展。
游戲、虛擬世界、甚至在線協(xié)作工具等數(shù)字體驗(yàn)將呈現(xiàn)如同好萊塢大片一般的電影級(jí)品質(zhì)。
目前您在生活中體驗(yàn)到的視覺技術(shù)只代表身邊世界的未來趨勢(shì)之一。
編輯:黃飛
評(píng)論
查看更多