當前位置:
首頁 > 最新 > DirectX光線追蹤是圖形革命的第一步,微軟的3D API邁向了電影質量的圖形

DirectX光線追蹤是圖形革命的第一步,微軟的3D API邁向了電影質量的圖形

在GDC上,微軟宣布了一項針對DirectX 12:DirectX光線追蹤(DXR)的新功能。新的API為硬體加速的DirectX應用程序提供了光線追蹤功能,為遊戲帶來更逼真的照明,陰影和材質,迎來了新的時代。有一天,這種技術可以使我們在好萊塢大片中已經習以為常的那種逼真的圖像。

無論您擁有哪種GPU,無論是Nvidia巨大的3000美元Titan V還是35美元Raspberry Pi中的小型整合產品,基本原理都是一樣的; 事實上,自從3D加速器在20世紀90年代首次出現以來,GPU的許多方面都發生了變化,但它們都基於一個共同的原則:光柵化。

3D場景由幾個元素組成:有三維模型,由三角形構建,紋理應用於每個三角形; 有燈光照亮物體; 還有一個視口或攝像機,從一個特定的位置看現場。實質上,在光柵化過程中,相機表示一個光柵像素網格(因此光柵化)。對於場景中的每個三角形,光柵化引擎會確定三角形是否與每個像素重疊。如果是這樣,那個三角形的顏色就會應用到像素上。光柵化引擎從最遠的三角形起作用,並靠近相機,所以如果一個三角形遮住另一個三角形,像素將首先由後三角形著色,然後由前三角形著色。

這種基於覆蓋的過程就是為什麼光柵化也稱為畫家的演算法; 讓我們想起神話般的鮑勃羅斯,首先放下遠處的天空,然後將它覆蓋在山上,然後是快樂的小樹,然後可能是一個小的建築物或破碎的柵欄,最後是最接近的樹葉和植物我們。

GPU的大部分開發集中在通過減少必須繪製的數量來優化此過程。例如,視口外部的對象可以被忽略; 它們的三角形永遠不會通過柵格網格可見。位於其他對象後面的對象的部分也可以被忽略; 它們對給定像素的貢獻將被更靠近相機的像素覆蓋,所以即使計算它們的貢獻也沒有意義。

GPU在過去的二十年里變得更加複雜,頂點著色器處理單個三角形,幾何著色器產生新的三角形,像素著色器修改後柵格化像素,計算著色器執行物理和其他計算。但操作的基本模式保持不變。

柵格化具有可以快速完成的優點; 跳過隱藏三角形的優化是有效的,大大減少了GPU的工作量,光柵化也允許GPU一次一個地流過三角形,而不必同時將它們全部保存在內存中。

但光柵化存在限制其視覺保真度的問題。例如,位於相機視野之外的物體無法看到,因此它將被GPU忽略。然而,這個對象仍然可以在場景中投下陰影。或者從場景中的反射表面可以看到它。即使在一個場景中,從明亮的紅色物體反射的白光也會趨向於將該光線擊中的所有物體塗成紅色; 這種效果在光柵化圖像中找不到。其中一些缺陷可以通過陰影貼圖(它允許來自視野外的對象在其中投射陰影)等技術來修補,但結果是光柵化圖像總是最終看起來與現實世界不同。

從根本上講,光柵化不能像人類視覺工作的方式工作。我們不會從我們的眼睛發出一束光束,看看這些光束相交的是哪些物體。相反,來自世界的光被反射到我們的眼中。它可能會在路上反彈多個物體,並且在穿過透明物體時,可能會以複雜的方式彎曲。

輸入光線跟蹤

光線追蹤是生成計算機圖形的技術,它更接近地模擬這種物理過程。取決於所使用的確切演算法,從每個光源或從每個光柵像素投射光線; 它們在場景中的物體周圍反射,直到它們撞擊(取決於方向)相機或光源。從每個像素投射光線的計算量較小,但從光源投射會產生更高質量的圖像,以準確地複製某些光學效果。光線追蹤可以產生更精確的圖像; 先進的光線追蹤引擎可以產生逼真的圖像。這就是為什麼光線追蹤用於在電影中渲染圖形的原因:計算機圖像可以與真人視頻鏡頭集成在一起,而不會看起來不合適或不合適。

但是光線追蹤有一個問題:它的計算量非常大。柵格化已被廣泛優化,以試圖限制GPU必須完成的工作量; 在光線追蹤中,所有這些努力都是徒勞的,因為任何物體都有可能為場景貢獻陰影或反射。光線追蹤必須模擬數以百萬計的光束,其中一些模擬可能會被浪費,反射到屏幕外或隱藏在別的東西之後。

這對電影來說不是問題; 製作電影圖形的公司將花費數小時渲染單個幀,並且大量伺服器場用於並行處理每個圖像。但是對於遊戲來說這是一個巨大的問題,在這個遊戲中,每幀只能畫16毫秒(每秒60幀),甚至更少。

但是,現代GPU現在速度非常快。雖然它們速度不夠快,但是仍然能夠以高刷新率對高度複雜的遊戲進行光線追蹤,但它們確實有足夠的計算資源,可以用來做一些光線追蹤。這就是DXR的用武之地。DXR是一種光線追蹤API,它擴展了現有的基於光柵化的Direct3D 12 API。3D場景以適合光線追蹤的方式排列,並且使用DXR API,開發人員可以生成光線並追蹤其在場景中的路徑。DXR還定義了新的著色器類型,允許程序在光線與場景中的對象交互時與光線交互。

由於性能方面的要求,微軟預計至少目前DXR將被用於填補一些光線追蹤功能非常出色的部件,而光柵化技術則不會像反射和陰影那樣。DXR應該讓這些東西看起來更真實。我們也可能會看到使用光線追蹤技術的簡單的程式化遊戲。

該公司表示,它已經在DXR上工作了近一年,尤其是Nvidia有很多話要說。Nvidia擁有自己的光線追蹤引擎,專為它的Volta架構設計(儘管目前唯一與Volta一起發售的顯卡是Titan V,因此這種應用可能受到限制)。當在Volta系統上運行時,DXR應用程序將自動使用該引擎。

微軟含糊其辭地表示,DXR將與當前市場上的硬體一起工作,並且它將具有一個回退層,它可以讓開發人員在他們擁有的任何硬體上進行DXR測試。如果DXR被廣泛採用,我們可以想像未來的硬體可能包含針對光線追蹤需求量身定製的功能。在軟體方面,微軟表示,EA(帶有用於戰地系列的Frostbite引擎),Epic(帶有虛幻引擎),Unity 3D(帶有Unity引擎)以及其他產品將很快獲得DXR支持。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 夜行的貓 的精彩文章:

諾基亞重振8110手機,這款手機因The Matrix而聞名
今年春天將推出幾款Windows混合現實技術,Insiders現在可以試用

TAG:夜行的貓 |