0
本文作者: 糖直銷(xiāo)-Orz | 2016-09-14 17:38 |
毫無(wú)疑問(wèn),英偉達(dá)在 GPU 上面是難逢敵手的。借助強(qiáng)勁的 GPU,它在需要巨大計(jì)算量以及圖形渲染的任何領(lǐng)域也大放異彩。在人工智能,智能駕駛領(lǐng)域英偉達(dá)更是翻云覆雨,更不用當(dāng)下另一個(gè)風(fēng)口——VR。
所以英偉達(dá)這次又把 GTC 從美利堅(jiān)開(kāi)到了北京,并且為 VR 單獨(dú)開(kāi)辟了一個(gè)論壇。由于論壇的主題是「中國(guó)制造 2025 以及虛擬現(xiàn)實(shí)」,所以在大會(huì)上,我們更多聽(tīng)到的是 VR 技術(shù)在工業(yè)級(jí)上的應(yīng)用。這些技術(shù)的運(yùn)用背后都有英偉達(dá)在圖形處理上的支持,尤其是專(zhuān)為 VR 開(kāi)發(fā)者準(zhǔn)備的開(kāi)發(fā)套件 VRWorks。說(shuō)了那么多,這套開(kāi)發(fā)工具到底有神奇之處?
VR 技術(shù)的興起之所以讓 PC 行業(yè)為之興奮,最主要的原因在于 VR 對(duì)于計(jì)算能力的要求要求比一般的游戲要更高。而這一部分的重任則主要是落在了 GPU 之上,但傳統(tǒng)的渲染方式——渲染整個(gè)畫(huà)面以及每一個(gè)細(xì)節(jié)顯然不適用于 VR 內(nèi)容。畢竟在 VR 設(shè)備上,GPU 需要在短時(shí)間內(nèi)渲染出左右眼不同的兩個(gè)畫(huà)面,并且需要隨時(shí)根據(jù)用戶頭部的方向調(diào)整渲染的內(nèi)容。
早先為了減輕眩暈感,英偉達(dá)在上一代 Maxwell 架構(gòu)上,曾經(jīng)公布過(guò)一項(xiàng)名為 Asynchronous Time Warp(異步時(shí)間扭曲)的技術(shù)。比如,在用戶沉浸在 VR 時(shí)會(huì)不自主進(jìn)行頭部的擺動(dòng)。只有當(dāng)他停止動(dòng)作后,眼睛看到的畫(huà)面與現(xiàn)實(shí)世界中停止動(dòng)作后應(yīng)該看到的畫(huà)面相吻合,那么用戶才不至于產(chǎn)生不適感,才能更好地沉浸在 VR 世界里。
Asynchronous Time Warp 技術(shù)通過(guò)提前在屏幕刷新前準(zhǔn)備好用戶理應(yīng)看到的畫(huà)面,來(lái)提升畫(huà)面的流暢性。這一次英偉達(dá)則是依托于新的 Pascal 架構(gòu),在 VRWorks 套件中推出了另一項(xiàng)更進(jìn)一步提升體驗(yàn)的技術(shù) Preemption——它的作用在于能夠更快,更早地啟動(dòng) Asynchronous Time Warp 技術(shù),生成更多的中間幀,畫(huà)面過(guò)渡更自然,讓最終呈現(xiàn)給用戶的畫(huà)面更貼近現(xiàn)實(shí),增加 VR 帶來(lái)的沉浸感。
如果說(shuō) Preemption 是 VRWorks 里提升用戶體驗(yàn)的擔(dān)當(dāng),那么接下來(lái)幾項(xiàng)技術(shù)則是 GPU 減負(fù)擔(dān)當(dāng)。在說(shuō)明接下來(lái)的幾項(xiàng)技術(shù)之前,我們先要了解顯卡在渲染 3D 圖形的大概步驟:首先 GPU 通過(guò)計(jì)算將 3D 圖形構(gòu)建好,然后再通過(guò)投影的方式將 3D 圖形投射到顯示器上,形成 2D 圖形。即使玩家配備了多個(gè)屏幕,他看到的畫(huà)面也只是單純地將一個(gè)投影拉長(zhǎng)。如果玩家采用的環(huán)繞式的屏幕排布方式,那么畫(huà)面可能會(huì)扭曲變形。
這時(shí)候英偉達(dá)的另一項(xiàng)新技術(shù) Simultaneous Muti-Projection(多重同步投影技術(shù))就可以解決這個(gè)問(wèn)題了——它的解決方案是分別針對(duì)不同朝向的物體,采用不同方向的「光源」進(jìn)行投射,這樣渲染物體就不會(huì)發(fā)生扭曲了。基于這項(xiàng)技術(shù),英偉達(dá)拿出了 Single Pass Stereo 以及 Lens Matched Shading 這兩項(xiàng)技術(shù)。
GPU 運(yùn)用基于 Simultaneous Muti-Projection 的 Single Pass Stereo 技術(shù),根據(jù)左眼與右眼見(jiàn)到圖像視角的差別,僅需通過(guò)渲染出左眼所見(jiàn)的圖像,再稍微扭曲下渲染出左眼的圖像,即可得到右眼的圖像,無(wú)需進(jìn)行二次渲染。而 Lens Matched Shading 可以視為給 VR 渲染視圖添加了一個(gè)遮罩——這個(gè)遮罩的目的在于調(diào)整因?yàn)?VR 鏡片帶來(lái)的畸變。這樣一來(lái),就不必每次渲染后再做一遍反畸變的調(diào)整。
說(shuō)到沉浸感,一般人首先會(huì)想到的是無(wú)延遲又精細(xì)的畫(huà)面,這一方面也是諸多內(nèi)容開(kāi)發(fā)者追求的,然而除了畫(huà)面之外,另一個(gè)至關(guān)重要的方面就是音效。試想一下,當(dāng)玩家沉浸在畫(huà)質(zhì)精良的虛擬世界中不可自拔之時(shí),突然兩耳響起貧瘠的環(huán)境音樂(lè),是不是很出戲?
對(duì)于音效的處理,大多數(shù)開(kāi)發(fā)者的做法是直接改變音源聲音的大小,將「音響」直接對(duì)準(zhǔn)體驗(yàn)者的耳朵。這樣的方法簡(jiǎn)單粗暴,也能讓體驗(yàn)者判斷音源的方位,但沉浸感不足——原因是,在現(xiàn)實(shí)生活中,我們聽(tīng)見(jiàn)的聲音不僅僅只有從音源發(fā)出的,還有墻壁等物體反射后形成的另一波聲音。
英偉達(dá)推出的 VRWorks 套件對(duì)于這樣的情形有一套特定的解決方案——將原本用在圖形渲染上的「物理光效」運(yùn)用到了音效之上,構(gòu)建出一套適用于聲音反射的函數(shù)方程,以模擬聲波碰撞到不同材質(zhì)物體之上的反射音。
因?yàn)楣饩€與聲音同樣都是屬于波的一種,GPU 也能處理這一類(lèi)型的計(jì)算。然而,由于不同材質(zhì)物體對(duì)于聲波的反射與吸收的比例是不同的,并且還涉及到不同反射波的合成問(wèn)題,所以開(kāi)發(fā)者在使用這項(xiàng)技術(shù)的時(shí)候,需要與英偉達(dá)合作一起,調(diào)整相關(guān)參數(shù)。
VRWorks 套件固然對(duì) GPU 性能提升與優(yōu)化有著莫大的幫助,但如果這套組件僅僅是英偉達(dá)一家獨(dú)自推動(dòng)的技術(shù),那么對(duì)于開(kāi)發(fā)者也沒(méi)有什么實(shí)際的用處。不過(guò),無(wú)論是 Unity 還是 Unreal 哪一款開(kāi)發(fā)引擎,都已經(jīng)宣布支持英偉達(dá)的 VRWorks。這一次 VR 開(kāi)發(fā)者似乎真的拿到了一套趁手的開(kāi)發(fā)利器。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。