王雅妮,高全力,王西漢,畢明洋,焦子遜
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710600)
虛擬現(xiàn)實(shí)(Virtual Reality,VR)目前已經(jīng)在娛樂、醫(yī)療保健、教育等眾多領(lǐng)域中得到應(yīng)用。根據(jù)市場(chǎng)研究,全球虛擬現(xiàn)實(shí)市場(chǎng)預(yù)計(jì)到2023年將達(dá)到51億美元,并且在預(yù)測(cè)期內(nèi)將超過55%的復(fù)合年增長(zhǎng)率。近年來,VR線下體驗(yàn)店數(shù)量增長(zhǎng)迅速,VR電影、VR競(jìng)技游戲等成為新的體驗(yàn)熱點(diǎn)[1-2]。盡管VR前景廣闊,但仍然面臨諸多問題,如虛擬現(xiàn)實(shí)技術(shù)內(nèi)容缺乏,渲染過程計(jì)算資源龐大,無法實(shí)時(shí)更新渲染的高清畫面,體驗(yàn)過程會(huì)出現(xiàn)卡頓眩暈現(xiàn)象,以及用戶在體驗(yàn)過程中由于數(shù)據(jù)線較長(zhǎng)存在絆倒的風(fēng)險(xiǎn)等。因此,如何設(shè)計(jì)出高清、低延遲的交互式虛擬現(xiàn)實(shí)系統(tǒng),在現(xiàn)有的智能終端和無線網(wǎng)絡(luò)環(huán)境下,實(shí)現(xiàn)高清、低延遲的交互式VR成為當(dāng)下研究的熱點(diǎn)。
由于需要渲染高分辨率和高幀率的圖形以提供使用過程中的沉浸式體驗(yàn),VR應(yīng)用具有很高的計(jì)算負(fù)荷。Chang等人[3]利用維度實(shí)驗(yàn)量化了現(xiàn)有VR應(yīng)用的交互時(shí)間和定位精度,并研究了目前有線VR應(yīng)用程序以及智能終端VR系統(tǒng)的用戶體驗(yàn)。Flashback[4]通過設(shè)計(jì)一種預(yù)渲染的方法解決了智能終端的低計(jì)算能力問題。Furion[5]系統(tǒng)支持商用移動(dòng)設(shè)備上的高分辨率VR應(yīng)用程序。Xie Chenhao等人[6]提出了一種新的軟硬件相結(jié)合的協(xié)同設(shè)計(jì)方案(Q-VR),實(shí)現(xiàn)了低延遲、高質(zhì)量的協(xié)同移動(dòng)VR。Coterie[7]設(shè)計(jì)中的關(guān)鍵挑戰(zhàn)是確定最佳截止點(diǎn)需要搜索虛擬世界中每個(gè)位置的截止點(diǎn),由于VR虛擬世界可能有數(shù)億網(wǎng)格點(diǎn),這在計(jì)算上很難實(shí)現(xiàn)。Liu Xing等人[8]設(shè)計(jì)并實(shí)現(xiàn)了一種新型的移動(dòng)設(shè)備多用戶虛擬現(xiàn)實(shí)系統(tǒng)─Firefly,Firefly通過枚舉、預(yù)渲染、編碼和存儲(chǔ)在虛擬場(chǎng)景中可到達(dá)的所有位置的視圖來執(zhí)行一次性的離線內(nèi)容準(zhǔn)備。
協(xié)同渲染的目的是為了營(yíng)造沉浸感的虛擬現(xiàn)實(shí)環(huán)境[9]。與上述研究相比,該文針對(duì)虛擬場(chǎng)景下渲染資源龐大,渲染環(huán)境復(fù)雜等問題,提出了客戶端服務(wù)器協(xié)同渲染的方法。該方法將分布式計(jì)算技術(shù)應(yīng)用于渲染領(lǐng)域,充分發(fā)揮了計(jì)算資源的優(yōu)勢(shì),提高了渲染的效率和速度。與上述方法相比較,該方法使用了全景圖切片的方式對(duì)全景圖進(jìn)行編碼壓縮傳輸,一定程度上比視頻流傳輸加載更快,使得用戶體驗(yàn)感更好。經(jīng)實(shí)驗(yàn)驗(yàn)證,將上述方法相結(jié)合能夠降低網(wǎng)絡(luò)負(fù)載,提高幀刷新率,進(jìn)而實(shí)現(xiàn)高清低延遲交互。
VR環(huán)境渲染需要較好的硬件和網(wǎng)絡(luò)環(huán)境支持,受功耗、散熱和體積等物理?xiàng)l件限制,智能終端CPU/GPU的運(yùn)算能力不可能在短時(shí)間內(nèi)得到明顯改善[10]。因此將VR場(chǎng)景渲染資源進(jìn)行計(jì)算任務(wù)遷移,分為前景交互和背景環(huán)境交互,虛擬場(chǎng)景下的前景交互和背景環(huán)境具有不同的可預(yù)測(cè)性和渲染工作負(fù)載。
對(duì)于絕大多數(shù)的VR應(yīng)用程序來說,渲染的VR內(nèi)容可拆分為前景交互(FI)與背景環(huán)境(BE)。例如,對(duì)圖1中的VR應(yīng)用程序進(jìn)行了測(cè)試,圖1(a)所示的飛行器與控制器相互作用,圖1(b)所示的弓箭,圖1(c)所示的手槍,圖1(d)所示的槍,這些都是前景交互內(nèi)容,與用戶直接相關(guān),這些物體的動(dòng)畫效果會(huì)根據(jù)用戶控制器的輸入而改變,虛擬現(xiàn)實(shí)技術(shù)的基本任務(wù)就是構(gòu)建一個(gè)虛擬場(chǎng)景來為用戶提供一種沉浸感[11],并以背景環(huán)境作為虛擬世界組成的主體,它涵蓋了整個(gè)游戲空間的絕大部分。
圖1 幾款VR游戲畫面
圖1(b)(c)(d)是高質(zhì)量的虛擬現(xiàn)實(shí)游戲[12]。分別對(duì)3個(gè)游戲的前景和背景環(huán)境進(jìn)行測(cè)試,測(cè)量出每個(gè)游戲版本的幀渲染[13]時(shí)間和CPU,GPU的利用率。結(jié)果如表1所示。前景交互時(shí)只需要10~11 ms,比背景環(huán)境的渲染少8倍,并且CPU和GPU的開銷都有明顯的下降。只渲染背景環(huán)境需要85~101 ms,并且CPU和GPU的利用率也是前景交互的2~3倍。由此可見,在VR場(chǎng)景渲染過程中,與背景渲染相比較,只渲染前景交互的內(nèi)容資源利用率較低。其原因就在于高品質(zhì)VR應(yīng)用下,真實(shí)的、沉浸式的環(huán)境自然包含了更多的細(xì)節(jié)和紋理(如圖1中的建筑和陰影),這導(dǎo)致了巨大的渲染開銷。
表1 3種高質(zhì)量VR程序資源使用情況
在VR應(yīng)用程序中,影響用戶體驗(yàn)跟虛擬場(chǎng)景中玩家的數(shù)量、渲染的每幀大小以及幀從服務(wù)器傳輸?shù)娇蛻舳祟l率都有關(guān)系[14]??梢酝ㄟ^幀內(nèi)相似度以及幀間相似度來衡量VR程序的渲染方式,以減少背景環(huán)境幀的預(yù)取頻率[15]。
該文測(cè)量了用戶在虛擬場(chǎng)景中移動(dòng)時(shí)的相鄰網(wǎng)格點(diǎn)的背景環(huán)境幀之間的相似性,從Unity Asset Store的3D游戲中分別測(cè)量了6個(gè)VR游戲。每個(gè)VR應(yīng)用程序分別運(yùn)行在具有4K分辨率的客戶端10分鐘并記錄下用戶在虛擬世界中的軌跡,然后為軌跡中的每個(gè)網(wǎng)格點(diǎn)生成全景的背景環(huán)境幀,并計(jì)算相鄰背景環(huán)境幀之間的相似度。圖2繪制了每個(gè)BE幀與其在軌跡中的下一個(gè)相鄰BE幀的相似性(CDF)。從圖2(a)中可以看出,在6個(gè)VR應(yīng)用程序中,前背景未分離時(shí)相鄰幀的相似性接近于0,SSIM值大于0.9的只占不到20%。因此,在整個(gè)程序渲染過程中,每一幀對(duì)應(yīng)相似度并不高。為了衡量虛擬場(chǎng)景中FI幀與BE幀的分離對(duì)幀相似性的影響,使用自適應(yīng)截?cái)喟霃降姆桨干山財(cái)喟霃?對(duì)6個(gè)VR應(yīng)用程序進(jìn)行度量,如圖2(b)所示,單個(gè)玩家相鄰的BE幀之間的相似性顯著提高。
(a)分離前
上述關(guān)于玩家附近的物體降低虛擬世界中渲染的BE幀的相似性以及在2.1的分析中,GPU在渲染背景環(huán)境時(shí)資源消耗更多。在程序上,根據(jù)截?cái)喟霃絹韰^(qū)分FI和BE,如圖3所示,其中半徑內(nèi)的建筑物屬于前景交互內(nèi)容,半徑外的樓房屬于遠(yuǎn)的背景虛擬環(huán)境。
圖3 虛擬場(chǎng)景中前景和背景拆分
由于BE往往比FI包含更多的交互對(duì)象,特別是對(duì)于復(fù)雜場(chǎng)景的VR應(yīng)用,渲染BE在移動(dòng)設(shè)備上仍然具有很大的挑戰(zhàn)性,因此,應(yīng)該在遠(yuǎn)程服務(wù)器上進(jìn)行BE的渲染和預(yù)取。FI包含的對(duì)象比BE少很多,因此,可以在移動(dòng)客戶端進(jìn)行渲染。然而,由于FI接近于用戶的視點(diǎn),FI將占據(jù)最終幀的重要部分,因此,渲染過程中接近BE的幀將保持高質(zhì)量較大幀。FI幀和BE幀大約是原始BE幀的一半。因此,在服務(wù)器上渲染FI幀不會(huì)大大降低網(wǎng)絡(luò)負(fù)載,FI幀應(yīng)該在移動(dòng)客戶端進(jìn)行渲染。
由于VR虛擬世界中的物體密度變化大,用戶在使用過程中會(huì)隨時(shí)改變移動(dòng)位置,為每一個(gè)位置確定一個(gè)截?cái)喟霃皆谟?jì)算上來說是不可行的,因?yàn)閂R游戲在虛擬世界中可以包含數(shù)億個(gè)網(wǎng)格點(diǎn)[16]。因此,該文提出一種自適應(yīng)截?cái)喾桨?該方案大大減少了需要計(jì)算的截?cái)喟霃降臄?shù)量,并且可以遞歸地劃分虛擬世界,直到每個(gè)子區(qū)域不同位置的截?cái)喟霃阶兊么笾戮鶆?。流程如圖4所示。在大多數(shù)VR環(huán)境中,用戶是以二維方式在移動(dòng),因此虛擬世界的遞歸分區(qū)為二維。對(duì)于每個(gè)K值,遵循上述虛擬世界遞歸劃分葉區(qū)域?yàn)樗牟鏄?然后測(cè)量FI中不滿足最低延遲條件的區(qū)域百分比小于0.25%,因此在設(shè)計(jì)中K值為10是最佳選擇。
圖4 自適應(yīng)截?cái)喟霃搅鞒?/p>
該自適應(yīng)截?cái)喾桨父鶕?jù)虛擬世界中變化的對(duì)象密度自適應(yīng)地生成截?cái)喟霃?最小化虛擬世界中不同位置分離前景和背景的截?cái)喟霃降目倲?shù),同時(shí)最大化每個(gè)葉區(qū)域的截?cái)喟霃?從而最大化其中的位置。
針對(duì)VR應(yīng)用程序的渲染負(fù)載和CPU,GPU利用率等指標(biāo)進(jìn)行了實(shí)測(cè)與分析。該文提出可以利用客戶端和服務(wù)器的協(xié)同渲染機(jī)制對(duì)虛擬環(huán)境的前景交互和背景環(huán)境分別進(jìn)行渲染,主要有以下幾個(gè)步驟:
(1)在VR應(yīng)用場(chǎng)景中,將總體的VR渲染負(fù)載拆分成渲染前景交互和渲染背景交互兩部分。
(2)前景交互的部分利用本地GPU進(jìn)行渲染。
(3)背景環(huán)境的部分利用服務(wù)器端進(jìn)行預(yù)加載和預(yù)渲染。
(4)最終在客戶端將前景交互和背景環(huán)境的渲染效果進(jìn)行合并,呈現(xiàn)給用戶。
使用客戶端和服務(wù)器協(xié)同渲染可以通過計(jì)算遷移,很大一部分計(jì)算開銷被無線網(wǎng)絡(luò)傳送到服務(wù)器上實(shí)現(xiàn)。本地渲染是隨機(jī)的并且難以預(yù)測(cè),可以避免實(shí)時(shí)交互受到較大網(wǎng)絡(luò)延遲,并且可以使用預(yù)渲染和預(yù)加載的方法,避免網(wǎng)絡(luò)傳輸時(shí)產(chǎn)生的附加延遲。所以,采用協(xié)同渲染的方式,若背景環(huán)境能在本地客戶端被及時(shí)加載,每渲染一幀延遲可減少為本地渲染前景與本地解碼背景所需時(shí)間的最大值加上合成前后景的時(shí)間。協(xié)同渲染需要在終端上將前景交互和背景環(huán)境合并,實(shí)際渲染系統(tǒng)中(例如OpenGL ES),需要將像素?cái)?shù)據(jù)填充在一個(gè)緩沖區(qū)中,進(jìn)而生成最終畫面呈現(xiàn)給用戶。
在一般的協(xié)同渲染器中,如果直接在VR應(yīng)用中抓取下一幀可能會(huì)出現(xiàn)諸多問題,由于用戶可以隨機(jī)改變移動(dòng)方向和位置,并將服務(wù)器預(yù)渲染的高質(zhì)量幀傳送給客戶端,這會(huì)帶來巨大的帶寬開銷,同時(shí)也會(huì)增加客戶端CPU的利用率,因此,可以通過以下VR方案來優(yōu)化預(yù)加載背景環(huán)境幀。
客戶端請(qǐng)求背景環(huán)境幀的指令首先會(huì)被發(fā)送到幀緩存區(qū),如果緩存區(qū)未找到類似幀則會(huì)被發(fā)送至服務(wù)器。在背景環(huán)境中,相鄰的BE幀具有很高的相似性,由于虛擬環(huán)境可以離散成數(shù)個(gè)網(wǎng)格點(diǎn),則網(wǎng)格點(diǎn)i的預(yù)取BE通常可以重復(fù)用于相鄰幾個(gè)網(wǎng)格點(diǎn)。如圖5所示,網(wǎng)格點(diǎn)0處的BE幀位于幀緩存區(qū),且0處的幀緩存可以重用于附近區(qū)域,當(dāng)用戶從0位置移動(dòng)到2位置時(shí),只需要在到達(dá)4位置之前預(yù)渲染出4以及5,6,7位置即可。這種幀的重用方式一方面降低了客戶端從服務(wù)器預(yù)取幀的頻率,另一方面每次預(yù)取可以留有更大的時(shí)間窗口使得BE幀能夠預(yù)加載出來。
圖5 背景環(huán)境幀預(yù)取示意圖
虛擬世界中的臨近位置可以重用幀緩存,由于上述自適應(yīng)截?cái)喾桨缚梢詫?dǎo)致不同葉區(qū)域的不同截?cái)喟霃?因此高速緩存查找算法還需要考慮臨近點(diǎn)的其他因素。
幀緩存查找算法:緩存存儲(chǔ)的是背景環(huán)境的相關(guān)數(shù)據(jù),比如對(duì)應(yīng)的網(wǎng)格點(diǎn)和所屬的葉區(qū)域。如果網(wǎng)格點(diǎn)K滿足以下3個(gè)條件,則對(duì)于網(wǎng)格點(diǎn)K的緩存查找所返回的幀緩存結(jié)果為找到:(1)網(wǎng)格點(diǎn)在網(wǎng)格點(diǎn)K一定的閾值內(nèi);(2)由于不同葉區(qū)域有不同的截?cái)喟霃?則其與網(wǎng)格點(diǎn)需要位于同一葉區(qū)域;(3)為了確保渲染的FI與緩存的BE幀合并后沒有缺失,其對(duì)應(yīng)的FI需包含與網(wǎng)格點(diǎn)K相同的對(duì)象。這3個(gè)條件確保重復(fù)使用的BE與FI更好的融合呈現(xiàn)。在滿足上述約束所有緩存幀中,最接近正在查找的網(wǎng)格點(diǎn)的幀將作為最相似的幀返回。
在VR系統(tǒng)中,控制器將輸入用戶的姿態(tài),其中包括位置及角度信息,但是,在任意一個(gè)網(wǎng)格點(diǎn),用戶可以根據(jù)自己的需求任意變換位置和視角,因?yàn)榭吹降膬?nèi)容會(huì)隨著轉(zhuǎn)動(dòng)角度的不同而發(fā)生變化。所以,很難預(yù)測(cè)出用戶在將來旋轉(zhuǎn)的角度信息。該文提出利用全景圖來進(jìn)行背景環(huán)境采集,全景圖像覆蓋了當(dāng)前位置360度的所有信息,對(duì)任何位置來說,不管是哪一種視角下的內(nèi)容,均可對(duì)全景圖進(jìn)行裁剪,獲得對(duì)應(yīng)內(nèi)容。通過全景圖切片編碼方法,當(dāng)運(yùn)動(dòng)到某個(gè)位置時(shí),預(yù)先加載周圍位置上對(duì)應(yīng)的全景圖切片。
全景圖的顯示過程需要較高的分辨率和較大的數(shù)據(jù)量,而直接加載在三維場(chǎng)景中會(huì)造成系統(tǒng)卡頓。為了獲取高效率的渲染運(yùn)算,該文使用了動(dòng)態(tài)連續(xù)多分辨率(LOD)技術(shù)[17],在全景圖數(shù)據(jù)中構(gòu)造圖像金字塔模型并依據(jù)展示范圍對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)調(diào)度。
圖像金字塔是根據(jù)LOD技術(shù)構(gòu)建的一種多分辨率層級(jí)模型一一對(duì)圖像進(jìn)行分級(jí)分塊。在虛擬場(chǎng)景下,該文利用全景相機(jī)進(jìn)行全景圖像獲取,采用8 192×8 192高分辨率全景圖為原始數(shù)據(jù)對(duì)模型底層進(jìn)行處理,在向上構(gòu)建層級(jí)模型的過程中,原始數(shù)據(jù)被重新采樣,分辨率層層遞減,最上層圖像分辨率最小。鑒于所收集全景圖的長(zhǎng)寬比是1∶1,適用于四叉樹分塊方法對(duì)數(shù)據(jù)分塊。設(shè)定起始數(shù)據(jù)塊的尺寸為256×256,8 192×8 192分辨率全景圖數(shù)據(jù)分塊,圖像分辨率如表2所示。圖像分辨率從低到高被命名為L(zhǎng)ODi(i=0,1,…,5)?;谒牟鏄?以行列編碼方式傳輸數(shù)據(jù)圖像,設(shè)左下角數(shù)據(jù)塊為開始數(shù)據(jù),坐標(biāo)為(0,0)。每塊圖像編碼為xyz,x表示數(shù)據(jù)塊所在行,y表示數(shù)據(jù)塊所在列,z表示數(shù)據(jù)塊所屬層級(jí)。假設(shè)初始在001位置,此時(shí)會(huì)預(yù)加載好101,111,011對(duì)應(yīng)的全景圖,已被預(yù)加載過的全景圖將暫存于本地緩存,避免重復(fù)預(yù)加載,進(jìn)而減小了預(yù)加載延遲,降低了網(wǎng)絡(luò)傳輸開銷。
表2 全景圖金字塔層級(jí)與分塊數(shù)目
使用全景圖切片模型將會(huì)為虛擬世界的每個(gè)位置渲染一張全景圖,而非對(duì)每一個(gè)方向渲染一幀圖像,這已在很大程度上減少了所需幀數(shù)。H.264編碼過程中,每個(gè)幀被分成大小一致的宏塊。對(duì)這些宏塊進(jìn)行離散余弦變換(DCT)、量化和熵編碼。8*8模塊的快速DCT及其反變換的定義如公式(1)(2)。
(2)
其中,
(3)
其中,Fuv表示未變換的圖像數(shù)據(jù),Xuv表示通過DCT后得到的圖像數(shù)據(jù)。
假定處于虛擬世界的任何地方,存在n個(gè)潛在的瀏覽角度,每個(gè)普通幀的代銷為10 MB,則下一時(shí)刻,用戶移動(dòng)位置可能是自己的位置以及前后左右4個(gè)位置,需要預(yù)加載的普通幀大小為5*n*10 MB。而用整幅全景圖加載時(shí),每個(gè)全景圖像為4 MB,那么在下一時(shí)刻抵達(dá)的地點(diǎn)可能用到的全景圖大小為3*4 MB,因?yàn)槊恳淮蔚诌_(dá)的新地點(diǎn)最多為周圍3個(gè)位置。因此,利用相鄰全景圖的相似的特點(diǎn),對(duì)每個(gè)需要加載的全景圖編碼為P幀進(jìn)行壓縮,最終每次只需要加載130 KB的全景圖。
將全景圖加載到客戶端后進(jìn)行解碼,由于全景圖進(jìn)行了分片處理,當(dāng)分片全景圖加載到本地后由客戶端的解碼模塊進(jìn)行解碼后與前景交互的內(nèi)容進(jìn)行合并,VR系統(tǒng)的傳感和失真校正是通過HTC Vive SDK實(shí)現(xiàn)的,其傳感器需要從VR頭盔中錄入用戶信息,畸變校正模塊負(fù)責(zé)把融合的VR內(nèi)容變換成與人眼距離相適應(yīng)的圖像傳送到顯示器上。
在VR系統(tǒng)中,利用渲染的全景圖可以提供給用戶更加流暢直觀的感受,在移動(dòng)到某一個(gè)位置的時(shí)候,會(huì)對(duì)周圍對(duì)應(yīng)的全景圖進(jìn)行預(yù)加載,這就需要實(shí)時(shí)掌握用戶的運(yùn)動(dòng)軌跡。該文使用了卡爾曼濾波算法對(duì)用戶的軌跡進(jìn)行動(dòng)態(tài)跟蹤。
卡爾曼濾波(Kalman Filtering)動(dòng)態(tài)軌跡預(yù)測(cè)方程和觀測(cè)方程如公式(4)(5):
X(k+1)=A(k)X(k)+T(k)W(k)
(4)
Z(k)=H(k)X(k)+V(k)
(5)
對(duì)于預(yù)測(cè)軌跡點(diǎn)與實(shí)際軌跡點(diǎn)的幾何空間誤差采用公式(6)所示的均方根誤差(RMSE)來計(jì)算:
(6)
實(shí)驗(yàn)在PC機(jī)上完成,PC設(shè)置為Windows 10操作系統(tǒng),處理器為Intel(R) Xeon(R) W-2102 CPU @ 2.90 GHz,機(jī)帶RAM為8.00 GB,GPU為NVIDIA Quadro P400,GPU內(nèi)存為5.8G,unity版本為2020.3.12f1c1(64-bit)。
將協(xié)同渲染方法服務(wù)端運(yùn)行在一臺(tái)性能較強(qiáng)的圖形工作站上。將客戶端部分運(yùn)行在一臺(tái)可移動(dòng)PC機(jī)上。通過802.11ac WiFi網(wǎng)絡(luò)和服務(wù)端相連,此網(wǎng)絡(luò)能夠提供400 Mbps的可用帶寬,文中方法使用自建VR虛擬環(huán)境進(jìn)行驗(yàn)證。
針對(duì)虛擬場(chǎng)景設(shè)置了3種測(cè)試版本:(1)僅在本地客戶端渲染:VR內(nèi)容由本地計(jì)算機(jī)的CPU/GPU渲染;(2)僅在遠(yuǎn)程服務(wù)器渲染:通過WiFi網(wǎng)絡(luò)將所有的渲染任務(wù)都遷移至一臺(tái)高性能圖形工作站進(jìn)行渲染;(3)通過文中方法:通過本地與服務(wù)器計(jì)算資源協(xié)同渲染VR內(nèi)容最終呈現(xiàn)給用戶。
該文使用SSIM指標(biāo)來量化系統(tǒng)渲染的圖像質(zhì)量。SSIM通常被用于評(píng)價(jià)最終圖像質(zhì)量與原始圖像質(zhì)量之間的質(zhì)量損失,它的值介于0和1之間,如果SSIM值越接近1,意味著相似度越高,反之相似度越低。表3展示了VR應(yīng)用在3種渲染情況下的圖像質(zhì)量以及畫面刷新率。在本地客戶端渲染情況下,SSIM值約為0.8,顯示畫質(zhì)相對(duì)不高。該結(jié)果主要由于本地渲染存在計(jì)算開銷大,圖像渲染不及時(shí)所致。遠(yuǎn)程渲染和協(xié)同渲染的SSIM均高于0.9,這是由于在服務(wù)器端渲染,傳輸內(nèi)容均通過H.264進(jìn)行了壓縮和解壓縮,其傳輸?shù)漠嬞|(zhì)內(nèi)容較高。
表3 不同渲染方式下的圖像質(zhì)量和刷新率
為了保證VR系統(tǒng)逼真的用戶體驗(yàn),要求系統(tǒng)提供更高的幀數(shù),以實(shí)現(xiàn)虛擬場(chǎng)景下更為流暢的畫面。依照參考文獻(xiàn)[18],VR至少要達(dá)到60 FPS才能使畫質(zhì)流暢。而協(xié)同渲染的刷新率平均可以達(dá)到87 FPS。接下來,修改了虛擬場(chǎng)景下的動(dòng)態(tài)對(duì)象的數(shù)量,同時(shí)測(cè)量了不同渲染條件下的FPS指標(biāo)。圖6展示了不同渲染方式下,渲染動(dòng)態(tài)交互對(duì)象的數(shù)量以及FPS的變換??梢钥闯鰠f(xié)同渲染方式下渲染動(dòng)態(tài)交互隨著交互數(shù)量的增加其刷新率較高且保持穩(wěn)定。
圖6 動(dòng)態(tài)渲染對(duì)象數(shù)量變化與FPS的變化情況
在交互響應(yīng)性方面,該文測(cè)量了在3種渲染方式下的CPU處理1幀所消耗的總時(shí)間。由圖7可以看出,協(xié)同渲染下CPU處理1幀所消耗的總時(shí)間平均為0.9 ms,相對(duì)于其他兩種方式耗時(shí)較短。接下來測(cè)量了用戶在虛擬場(chǎng)景中轉(zhuǎn)動(dòng)頭顯設(shè)備時(shí)的轉(zhuǎn)動(dòng)延遲和運(yùn)動(dòng)過程中的位移延遲。測(cè)量結(jié)果表明,相比于其他兩種渲染方式,協(xié)同渲染可以有效地降低用戶操作過程中的響應(yīng)延遲,轉(zhuǎn)動(dòng)延遲要低于運(yùn)動(dòng)延遲是因?yàn)樵谵D(zhuǎn)動(dòng)的過程中,任何一個(gè)角度的畫面都可以由當(dāng)前位置的全景圖切片按需加載而成。
圖7 VR應(yīng)用在移動(dòng)過程中的用戶感知延遲
該文對(duì)3種渲染方式下的CPU/GPU資源利用率和運(yùn)行過程中的網(wǎng)絡(luò)帶寬使用情況進(jìn)行了實(shí)測(cè)。從表4可以看出,協(xié)同渲染方式下CPU和GPU的利用率以及平均帶寬都較低,這些數(shù)據(jù)表明,將本地較大的計(jì)算資源遷移到服務(wù)器端進(jìn)行計(jì)算可以有效地提高渲染效率。
表4 3種渲染方式下的資源開銷情況
以上實(shí)驗(yàn)結(jié)果均驗(yàn)證了VR應(yīng)用在協(xié)同渲染方式下的性能指標(biāo),并且可以在現(xiàn)有的設(shè)備條件和無線網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)高清、低延遲交互。
隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,高清低延遲交互必將成為研究的重要課題。該文針對(duì)虛擬場(chǎng)景下用戶瀏覽時(shí)產(chǎn)生的響應(yīng)延遲高、畫面刷新率低、圖像質(zhì)量差等問題,提出將虛擬場(chǎng)景中復(fù)雜的渲染環(huán)境進(jìn)行前景和背景區(qū)分,將前景較小的渲染資源放在本地進(jìn)行計(jì)算,背景較大的渲染工作量遷移至另外一臺(tái)運(yùn)算較強(qiáng)的服務(wù)器端進(jìn)行協(xié)同渲染。實(shí)驗(yàn)表明,提出的客戶端和服務(wù)器協(xié)同渲染的方法在刷新率上有了明顯提升,并且資源利用率和用戶感知延遲也有所降低,此方法可以有效減輕用戶在移動(dòng)過程中的畫面卡頓不流暢等問題,進(jìn)而實(shí)現(xiàn)復(fù)雜虛擬環(huán)境下的高清、低延遲交互。
由于該文是基于現(xiàn)今無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,所能達(dá)到的最高網(wǎng)絡(luò)帶寬在傳輸過程中也會(huì)造成一定的延遲,隨著5G技術(shù)的發(fā)展以及6G技術(shù)的到來,可以從網(wǎng)絡(luò)帶寬方面進(jìn)一步提升,從而降低網(wǎng)絡(luò)傳輸速率。