光線追蹤(Ray Tracing)是大家熟悉而又陌生的技術(shù),去過電影院的人肯定見過,然而除了計算機圖形領(lǐng)域的研究者,外界對該技術(shù)的了解知之甚少。光線追蹤是現(xiàn)代電影生成或增強特殊效果所依賴的一種技術(shù),比如逼真的反射、折射和陰影。正是這些效果的運用打造出了科幻史詩片中的星際戰(zhàn)士。這種技術(shù)會使飆車場景令人血脈噴張,使戰(zhàn)爭片的火焰、煙霧和爆炸場景看起來像身臨其境。  光線追蹤生成的影像與攝影機拍攝的影像很難區(qū)分開來。真人電影將計算機生成的效果與真實拍攝的影像無縫融合在一起,而動畫電影則通過光線和陰影隱匿用數(shù)字方式生成的場景,力求達(dá)到攝影機拍攝般的傳神效果。  提及光線追蹤,一種很簡便的方法就是立即環(huán)顧玩家的四周。玩家看到的物體被光束照亮,現(xiàn)在轉(zhuǎn)過身,追蹤這些光束從玩家的眼睛向后到與光線交互的物體的路徑,這就是光線追蹤。  如果玩家最近去看過電影,應(yīng)該能在動作片中看到光線追蹤。但在過去,計算機硬件的速度不夠快,無法實時使用這些技術(shù),比如在視頻游戲中。電影制作人可以隨心所欲地花時間來渲染單個幀,因此他們會在渲染場中離線渲染。而視頻游戲畫面轉(zhuǎn)瞬即逝。因此,人們依賴于另一種技術(shù)來處理大部分實時圖形,即光柵化。  什么是光柵化?  長期以來,實時計算機圖形一直使用一種稱為“光柵化”的技術(shù)在二維屏幕上顯示三維物體。該技術(shù)速度快,且效果足夠好,盡管它仍然比不上光線追蹤所能達(dá)到的水平。   借助光柵化技術(shù),可以在屏幕上通過用于創(chuàng)建物體3D模型的虛擬三角形或多邊形網(wǎng)格創(chuàng)建物體。在這種虛擬網(wǎng)格中,每個三角形的角(稱為頂點)與大小和形狀不同的其他三角形的頂點相交。每個頂點關(guān)聯(lián)著大量信息,包括其在空間中的位置以及有關(guān)顏色、紋理及其“正常形式”的信息,這些信息用于確定物體所朝向的表面的形式。  計算機隨后將3D模型的三角形轉(zhuǎn)換為2D屏幕上的像素或點。可以根據(jù)存儲在三角形頂點中的數(shù)據(jù)為每個像素分配一個初始顏色值。   進(jìn)一步像素處理或“陰影處理”,包括基于場景中的光線如何碰撞像素改變像素顏色,以及將一個或多個紋理應(yīng)用于像素,從而結(jié)合生成應(yīng)用于像素的最終顏色。  這種技術(shù)的計算量異常大。一個場景中的所有物體模型可以使用多達(dá)數(shù)百萬個多邊形,4K顯示器中有近800萬個像素。而且,屏幕上顯示的每個幀或圖像通常會在顯示器上每秒刷新30-90次。  此外,還要使用內(nèi)存緩沖區(qū)(為加快運行速度預(yù)留出來的一點臨時空間)在即將到來的幀于屏幕上顯示之前預(yù)先渲染這些幀。還需使用深度或“z緩存” 存儲像素深度信息,以確保在屏幕上顯示像素的x-y屏幕位置上的頂層物體,并且頂層物體背后的物體保持隱藏狀態(tài)。 這正是圖形豐富的現(xiàn)代計算機游戲依賴于性能強悍的GPU的原因。  什么是光線追蹤?  光線追蹤技術(shù)與此不同。在真實世界中,我們看到的3D物體被光源照亮,且光子可以在到達(dá)查看者的眼睛以前從一個物體反彈到另一個物體。   光線可能會被某些物體阻擋,形成陰影,或可能會從一個物體反射到另一個物體。比如我們看到一個物體的圖像反射在另一個物體表面的情景。然后會發(fā)生折射 – 光線穿過透明或半透明物體(如玻璃或水)時發(fā)生變化的情況。  光線追蹤通過從我們的眼睛(觀景式照相機)反向追蹤光線捕捉這些效果,這種技術(shù)是IBM的Arthur Appel于1969年在《Some Techniques for Shading Machine Renderings of Solids》中首次提出的。此技術(shù)可追蹤通過2D視表面上每個像素的光線的路徑,并應(yīng)用到場景的3D模型中。  十年后才迎來下一個重大突破。Turner Whitte在1979年發(fā)表論文《An Improved Illumination Model for Shaded Display》,闡述了如何捕捉反射、陰影和反射,他目前就職于 NVIDIA 研究事業(yè)部。  Turner Whitted在1979年發(fā)表的論文幫助光線追蹤技術(shù)在翻拍電影領(lǐng)域的運用實現(xiàn)飛躍發(fā)展。利用Whitted的技術(shù),當(dāng)光線遇到場景中的物體時,根據(jù)物體表面上碰撞點處的顏色和光照信息可以計算出像素的顏色和照明度。如果光線在到達(dá)光源之前反射或通過不同物體的表面,則根據(jù)所有這些物體的顏色和光照信息可以計算出最終的像素顏色。20世紀(jì)80年代的其他兩篇論文為計算機圖形革命奠定了其余的知識基礎(chǔ),這場革命顛覆了電影的制作方式。  1984年,Lucasfilm的Robert Cook、Thomas Porter和Loren Carpenter詳細(xì)介紹了光線追蹤如何結(jié)合眾多常見的電影制作技術(shù)(包括動態(tài)模糊、場景深度、半影、半透明和模糊反射),而這些效果當(dāng)時還只能依靠攝影機制作。  兩年后,加州理工學(xué)院Jim Kajiya教授發(fā)表論文《The Rendering Equation》,完成了將計算機圖形生成方式移植到物理學(xué)的工作,更好地展現(xiàn)了光在整個場景中的散射方式。  將這項研究與現(xiàn)代GPU結(jié)合起來取得了顯著的成果,計算機生成的圖像捕捉的陰影、反射和折射能夠以假亂真,與真實世界的照片或視頻很難區(qū)分開來。正是這種真實感讓光線追蹤開始征服現(xiàn)代電影制作領(lǐng)域。  這種技術(shù)的計算量同樣非常大。正因如此,電影制作人才依賴于大量的服務(wù)器或渲染農(nóng)場。而且,渲染復(fù)雜的特殊效果可能需要花上幾天甚至幾周的時間。  可以肯定的是,許多因素都會影響光線追蹤的整體圖形質(zhì)量和性能。實際上,由于光線追蹤的計算量異常大,此技術(shù)通常用來渲染場景中視覺質(zhì)量和現(xiàn)實感受益于此技術(shù)更多的部分,而場景的其余部分則使用光柵化進(jìn)行渲染。光柵化仍能提供出色的圖形質(zhì)量。  未來將如何發(fā)展?  隨著GPU性能日益強悍,下一階段理應(yīng)是讓更多人享受到光線追蹤技術(shù)帶來的好處。例如,借助光線追蹤工具(如Autodesk的Arnold、Chaos Group的V-Ray或Pixar的Renderman)和性能強悍的 GPU,產(chǎn)品設(shè)計師和建筑師使用光線追蹤在幾秒內(nèi)即可生成逼真的產(chǎn)品模型,促進(jìn)他們更加有效的協(xié)作,并省去昂貴的原型設(shè)計環(huán)節(jié)。 光線追蹤已經(jīng)向建筑師和照明設(shè)計師證明了它的價值,他們正在利用這些功能對光線與設(shè)計如何交互進(jìn)行建模。 隨著GPU的計算能力日益提升,視頻游戲?qū)⒊蔀榇思夹g(shù)的下一個前沿陣地。NVIDIA在星期一宣布推出NVIDIA RTX。這是一種光線追蹤技術(shù),可為游戲開發(fā)者提供電影級畫質(zhì)的實時渲染。它是NVIDIA在計算機圖形算法和GPU架構(gòu)領(lǐng)域經(jīng)過10年努力所取得的成果。  它包含在NVIDIA Volta架構(gòu)GPU上運行的光線追蹤引擎。它的設(shè)計支持通過各種接口進(jìn)行光線追蹤,立足于此,NVIDIA與微軟緊密合作,通過微軟新的DirectX Raytracing (DXR) API提供全面的RTX 支持。  為了幫助游戲開發(fā)者利用這些新功能,NVIDIA還宣布GameWorks SDK將添加一個光線追蹤降噪模塊。更新版GameWorks SDK即將推出,其中包含光線追蹤區(qū)域陰影和光線追蹤光澤反射。 所有這一切都有助于游戲開發(fā)者和其他人將光線追蹤技術(shù)應(yīng)用到他們的工作中,以創(chuàng)造更真實的反射、陰影和折射。  如此一來,玩家在家中玩游戲時便會享受到更多如同電影院好萊塢大片的電影級畫質(zhì),有更好的視覺效果及游戲體驗。缺點還是有的:玩家得自己做爆米花了。  請閱讀Matt Phar、Wenzel Jakob和Greg Humphreys合著的《Physically Based Rendering: From Theory to Implementation》。本書提供了現(xiàn)代逼真渲染技術(shù)的數(shù)學(xué)理論以及將其應(yīng)用于工作的實踐技巧。  想知道這對游戲玩家意味著什么嗎?請參閱GeForce.com上的“NVIDIA RTX技術(shù):讓游戲?qū)崿F(xiàn)實時光線追蹤”。查詢進(jìn)一步信息,請訪問官方網(wǎng)站 http://www.nvidia.cn/object/decrypt-nvidia-ray-tracing-cn.html。(robin, 張底剪報)
|