硬體加速與軟體加速光線追蹤之間有什麼區別?

作者 Brian Caulfield

硬體加速大不同,真正的差異之處卻並不在硬體和軟體方面,而是在於 GPU 加速有無搭配專用 RT Cores。

你不需要專門的硬體來執行光線追蹤,而是你會想要有這個硬體。

以軟體執行光線追蹤的紀錄已經有幾十個年頭之久,它可以做出極為精美的畫面:電影製作者數十年來一直在使用光線追蹤這項技術。

但現在如果你要即時進行光線追蹤,NVIDIA Turing 架構中的 RT Cores 這般的專用硬體會產生出十分顯著的差異。遊戲需要用到即時光線追蹤技術。

即時光線追蹤曾被視為是圖形領域的「聖杯」,讓遊戲玩家及創作者可以享受到電影製作者長久以來一直在使用的相同技術。

多間遊戲開發公司今年推出不少新款 AAA 級遊戲大作,再加上去年推出的 NVIDIA GeForce RTX GPU,曾被視為瘋狂的想法現已成為主流。

數百萬人對受惠於 RTX 內 RT Cores 及 Tensor Cores 的 PC 期待不已,他們將享受到光線追蹤所帶來更美好的體驗,許多人覺得這般體驗會持續數年,甚至是數十年之久。

但要是少了專用硬體,便無法做到即時光線追蹤。原因在於雖自1970年代開始便發展出光線追蹤技術,真正的趨勢其實是更新穎的內容:GPU 加速光線追蹤加上專用核心。

去年在 Microsoft 推出 DirectX Raytracing(DXR)API 後,使用 GPU 來加速光線追蹤演算法便獲得了新的動力。對於遊戲玩家和創作者來說,這是個好消息。

光線追蹤並非什麼新玩意兒

光線追踪到底是什麼東西?看看你的四周,你看到的物體被光束照亮。現在從你的眼睛沿著那些光束的路徑,回到與光線產生交互作用的物體上,那便是光線追蹤。

IBM 的 Arthur Appel 最早於1969年在一篇名為《Some Techniques for Shading Machine Renderings of Solids》的文章中,提到光線追蹤這項技術。在 Turner Whitted、Lucasfilm 的 Robert Cook、Thomas Porter 和 Loren Carpenter、CalTech 的 Jim Kajiya 等先驅推動下,光線追蹤現已成為電影與電腦圖形產業的標準,用於創造出極為寫實的照明效果和影像。

一直到去年為止,幾乎所有光線追蹤效果都是以離線方式來完成的。光線追蹤是一項極耗運算的技術。今日你在電影裡看到的那些光線追蹤效果,也要用到眾多搭載 CPU 的伺服器渲染農場來運行。遊戲玩家希望玩到具有高互動性的即時遊戲,不想浪費幾分鐘或幾小時去等待每個畫面慢慢渲染出來。

相較之下,GPU 的執行速度就快多了,這要歸功於它們靠著大量運算核心來更快處理複雜任務。加上以往 GPU 使用另一種稱為「光柵化」的渲染技術,可以在平面螢幕上顯示立體物體。

通過光柵化技術,便能使用虛擬三角形或多邊形網格將平面螢幕上的物體,建立出 3D 立體物體模型。在這個虛擬網格中,每個三角形的角(稱為頂點)與大小及形狀各異的其它三角形的頂點相交。就算是它的效果遠不如光線追蹤能做到的那麼好,光柵化技術的速度還是很快,可以產生出十分優秀的結果。

GPU 承擔光線追蹤作業

倘若使用這些 GPU 及其平行處理能力來加速光線追蹤呢?這正是 GPU 加速軟體光線追蹤可以派上用場的地方。2009年推出的 NVIDIA OptiX 以 GPU 加速光線追蹤技術,鎖定設計專業人士。在從2009到2019年的十年中,在連續幾代的 NVIDIA GPU 上都能見到 OptiX 的執行速度不斷穩定爬升。

NVIDIA 在2015年的 SIGGRAPH 大會上,展現出光線追蹤技術如何在幾秒鐘的時間裡,將 CAD 模型變成與照片別無二致的逼真影像,加快了建築師、產品設計師和平面藝術家的工作速度。

去年初 Microsoft 肯定了 GPU 加速軟體光線追蹤技術,推出 DXR,通過 Microsoft 的 DXR API 全面支援 NVIDIA RTX 光線追蹤軟體。

提供高效能即時光線追蹤技術,需要搭配兩個創新項目:專用光線追蹤硬體 RT Cores,還有提供高效能人工智慧處理能力的 Tensor Cores,以產生出更高階的除噪、抗鋸齒及超高解析度的影像。

RT Cores 可以加快找出光線與場景內 3D 幾何物體相交的位置,以加快執行光線追蹤技術。這些專用核心加快了稱為「包圍體階層」(bounding volume hierarchy,BVH)的樹狀光線追蹤結構的運行速度,用於計算構成電腦生成影像中光線與三角形相交的位置。

首見於 NVIDIA 在2018年針對企業與科學運算領域推出之 Volta 架構,以加快人工智算演算法運行速度的 Tensor Cores,靠著稱為 NVIDIA DLSS(Deep Learning Super Sampling,深度學習超級採樣)的特殊人工智慧技術,又更進一步加快了圖形密集的運算工作。RTX 的 Tensor Cores 讓這一切成為可能。

Turing 架構的執行表現

拿 Turing 架構與前一代  Pascal 架構來比較渲染電玩《戰慄深隧:流亡》(Metro Exodus)其中一個畫面的速度,便能明白其中的工作原理。


上方是使用 Pascal 架構來渲染電玩《戰慄深隧:流亡》其中一個畫面的時間,中間的則是使用光線追蹤技術進行渲染的時間。

在 Turing 架構的執行時間圖上,可以看到有一個綠色的部分,那便是 RT Cores 正在運作。正如你所看到的,比起在 Pascal 架構 GPU 上所花的時間,使用 Turing 架構來執行相同的光線追蹤作業,只用了五分之一的時間。

NVIDIA 與合作夥伴推出多款產品,從要價999美元最高階效能的產品,到售價149美元的入門級產品,推動 Turing 架構產品進入市場,企圖改寫圖形領域的發展。有著 RT Cores 及 Tensor Cores 的 RTX 產品,售價349美元起。

廣泛支援

毫無疑問地,即時光線追蹤技術是下一代遊戲領域的發展重點浪潮。

部分最重要的商業生態系統合作夥伴已經宣布支援這項技術,為遊戲採用即時光線追蹤技術打開了大門。

Microsoft 的 DirectX 12 多媒體編程介面內有一個稱為「DirectX Raytracing」(DXR)的光線追蹤組件。若由 GPU 啟動,每台 PC 都能享有加速光線追蹤的益處。

我們在三月份的遊戲開發者大會上,在 Pascal 和 Turing 架構 GTX GPU 上啟用了 DXR 加速光線追蹤技術。

可以肯定的是,Pascal 這般的早期 GPU 架構,是設計為加快 DirectX 12 的執行速度。在這個硬體上是使用可編程著色器核心來執行運算,GPU 的許多其它圖形功能都能共享這項資源。

由於可以透過不同方式來執行光線追蹤而產生出相異的益處,拿 Turing 架構 GPU 來玩使用光線追蹤效果的遊戲時,表現會更出色。

而在多數熱門遊戲上,效能優勢只會更為顯著。

EA 的 AAA 級遊戲引擎 Frostbite 支援光線追蹤。全球有九成遊戲採用的 Unity 與 Unreal 引擎,現也支援 Microsoft 的 DirectX 光線追蹤技術。

這些加總起來,讓成千上萬名遊戲開發者可以更輕鬆地在他們的遊戲中執行光線追蹤技術。

NVIDIA 在開發光線追蹤遊戲上總共投入了逾百名人員。

至今已有數百萬名玩家使用有著 RT Cores 的 GPU 加速 RTX 硬體來玩遊戲。

拜光線追蹤所賜,那個數字每週都還在不斷成長。