為了迎接VR 時代,GPU 發明者NVIDIA 都做了什麼?

sakura| 2016-01-20| 檢舉

Facebook 收購Oculus VR 後,大眾對VR 的關注度和熱情重新被喚起,上游供應鏈也很快開始了適用於VR 設備的技術研發。作為GPU 的發明者,NVIDIA 一直與Oculus 等公司密切合作,以改善虛擬現實體驗。

從消費級的GeForce、專業級的Quadro 到移動級的Tegra,NVIDIA 已經為VR 做好了全方位的布局:GeForce 主要用於VR 遊戲和360 度視頻;Quadro 面向B 端用戶,如VR 體驗館; Tegra 則瞄準了移動VR 頭顯。

其中,NVIDIA 完整的GeForce VR 圖形平台囊括顯卡、驅動、優化和開發工具:基於Maxwell 架構的GeForce GTX 顯卡、GeForce Experience 以及GameWorks VR 開發平台。

Maxwell 架構GPU 藉助VR Direct 能為VR 頭戴式顯示器提升性能、降低延遲以及增強兼容性,比如多投影特性應用於多解析度著色技術,提升渲染效率。Oculus 官方則推薦,Geforce GTX 970 或以上的顯卡才能有良好的VR 遊戲體驗。

軟體方面,有專門的Game Ready 驅動和GeForce Experience 進行優化,還有為開發者提供GameWork VR 平台。這個開發平台包含了相應的API 和代碼庫,不同的功能分別面向不同的開發者。

面向遊戲和應用開發者,NVIDIA 提供了多解析度著色(Multires Shading)和VR SLI 兩項功能。面向VR 頭顯開發者和供應商,NVIDIA 提供了上下文優先級(Context Priority)、直接模式(Direct Mode)以及前緩衝渲染(Front Buffer Rendering)。

多解析度著色(Multires Shading)

目前的頭戴式VR 設備都通過透鏡讓用戶擁有更大的視角,但透鏡同時會使畫面扭曲。為了抵消這些扭曲,電腦會先對畫面進行反向扭曲,

按照主流的渲染方案,顯卡會傾盡其所有性能來輸出全解析度的正常圖像,接著再進行反向扭曲。事實上,反向扭曲後,畫面邊緣像素被壓縮,可以用更少的渲染性能來輸出。

多解析度著色技術把整個畫面分割成3 x 3 的分區,接著用不同的解析度去渲染。中間區域用高解析度渲染,周圍的區域用低一點的解析度,這樣就可以在不影響最終畫面顯示效果的前提下,減少顯卡計算資源的浪費。

以Oculus CV1 為例,其2160 x 1200 像素的螢幕採用多解析度著色技術所需要的顯卡性能會比原來下降30% 到50%。多解析度著色技術也讓虛幻4 遊戲引擎得到了50% 的性能提升。

VR SLI

從輸入(移動頭部) 到輸出(在頭顯中看到遊戲中出現動作) 的標準虛擬現實流水線大約耗時57 毫秒(ms)。要獲得良好的虛擬現實體驗,這一延遲時間應該低於20ms。

目前,絕大部分延遲時間是GPU 渲染場景所花費的時間以及將場景顯示在頭盔顯示器上所花費的時間(大約26ms)。NVIDIA 解決這一問題的方案是VR SLI。

SLI 全稱為「可擴展連接接口」(Scalable Link Interface),是一種可把兩張或以上的顯卡連在一起,作單一輸出使用的技術,從而大幅提升圖形性能。

在傳統遊戲中,SLI 可令性能翻倍,讓用戶能夠以更高的解析度和更高級的遊戲設置暢玩遊戲。但在虛擬現實遊戲中,SLI 渲染會產生一幀的延遲。

為了避免這一幀的延遲,NVIDIA 開發了VR SLI,兩顆GPU 同時獨立渲染頭顯左右眼畫面,而不再像以前那樣先渲染左邊的畫面,再渲染右邊的畫面。這讓遊戲畫面渲染同時充分利用了兩顆GPU。

上下文優先級

上下文優先技術允許開發者執行異步時間扭曲(Asynchronous Timewarp,簡稱ATW),以減少對頭部轉動的延遲。

據極客視界編譯Tom's Hardware 作者Niel Schneider 的解釋,時間扭曲通過扭曲一幀已經渲染完成但還未在螢幕上顯示的圖像,生成一個中間幀用以彌補頭部運動所造成的畫面延遲。中間幀是一種後處理效果,它改變的是已經被渲染好的圖像來匹配用戶最新的頭部位置。

時間扭曲的局限性在於,它要依賴於顯卡所渲染好的那一幀圖像,因為中間幀的調整是發生在這一幀的渲染完成之後。另外,時間扭曲是一個額外的進程,如果此刻計算機正在運行著一個進程的話,畫面可能會更加延遲。

異步時間扭曲致力於通過一個獨立於顯卡渲染週期的處理進程來持續追蹤頭部位置,這個進程和渲染進程平行運行(異步)。

每一次垂直同步前,該異步進程根據渲染進程最新完成的那一幀生成一個新的幀。相比於時間扭曲,異步時間扭曲能夠獲取得更低的延遲以及更高的準確度。

NVIDIA 還在推廣的一個概念是高優先級圖形上下文。通過傳統的DirectX 接口進行渲染時,當你頭部從A 點轉動到B 點,開發者用一個固定進程來處理畫面。NVIDIA 放寬了進入渲染路徑的窗口,使得頭部追蹤所帶來的不可預估的變化可以被開發者更為迅速地修正。

直接模式和前緩衝渲染

當VR 頭顯連接到電腦,NVIDIA 的驅動能識別出它和普通桌面顯示器的不同。VR 平台的服務能接管頭顯,直接渲染畫面到上面。這樣電腦系統就不會將桌面的畫面擴展到VR 頭顯上,破壞用戶使用過程中完整的體驗。

直接模式的另一個好處是,允許訪問前緩衝。VR 頭顯開發者可以利用前緩衝渲染進行低層次的延遲優化。不過,一般情況下,D3D11 是不能訪問的。

文章來源: https://www.twgreatdaily.com/cat37/node855195

轉載請註明來源:今天頭條