前言
國(guó)內(nèi)的廠商對(duì)于VR頭顯的延遲總是顯得不屑一顧,每次發(fā)布會(huì)上,都聲稱產(chǎn)品的延遲控制在18ms、17ms、16ms,仿佛拳打oculus、腳踢VIVE。中國(guó)的廠家真的這么厲害?到底VR頭顯的延遲以及造成暈眩是什么樣的原因?
延遲是什么
VR“延遲”(delay)是指從人的頭部移動(dòng)開(kāi)始一直到頭顯設(shè)備(HMD)的光學(xué)信號(hào)映射到人眼上面全部的等待時(shí)間(latency time)。其中需要經(jīng)過(guò)的全步驟如下圖所示。
延遲會(huì)影響玩家的注意力,延遲較大的時(shí)候會(huì)產(chǎn)生暈動(dòng)癥(motion sickness),也就是俗稱的暈車暈船。其原理是視覺(jué)接受的自身的身體狀態(tài),與負(fù)責(zé)感知身體狀態(tài)的中耳前庭器官不一致,中樞神經(jīng)對(duì)這一狀態(tài)的反饋就是惡心,來(lái)提醒身體狀態(tài)的異常。簡(jiǎn)單來(lái)說(shuō),戴上VR頭顯移動(dòng)頭部的時(shí)候,由于延遲,視覺(jué)觀察到的變化比身體感覺(jué)到的慢慢,產(chǎn)生沖突繼而造成暈眩。
根據(jù)研究,這個(gè)延遲只有控制在20ms以內(nèi),人體才不會(huì)有排斥反應(yīng)。同時(shí)超過(guò)20ms也不一定就會(huì)造成暈眩惡心,就像有些人暈車有的人不暈,每個(gè)人的體質(zhì)對(duì)延遲的敏感度和排斥反應(yīng)的大小不同。對(duì)于筆者來(lái)說(shuō),本身就容易暈車暈船,所以使用VR設(shè)備的時(shí)候延遲稍高就很快會(huì)暈;而一些人即使使用延遲比較高的設(shè)備,也不會(huì)立馬就暈。
所以一些廠商宣稱的所謂暈眩只是個(gè)別情況,產(chǎn)品設(shè)備本身完全沒(méi)問(wèn)題是不正確的。他們的產(chǎn)品并不是滿足了20ms延遲的要求,從而讓佩戴者不會(huì)產(chǎn)生暈眩。只是許多佩戴者的抗暈動(dòng)癥能力比較強(qiáng),才沒(méi)有產(chǎn)生暈眩。
美國(guó)傳奇程序師,F(xiàn)PS和3D之父約翰·卡馬克曾在2014年寫過(guò)一篇文章介紹VR頭顯的延遲問(wèn)題,在這篇文章的基礎(chǔ)上,結(jié)合這兩年VR行業(yè)相關(guān)技術(shù)的發(fā)展,來(lái)談?wù)刅R延遲的問(wèn)題。
傳感器以及信號(hào)傳輸造成延遲
從頭部移動(dòng)開(kāi)始,VR頭顯內(nèi)置陀螺儀或者空間定位儀器就會(huì)捕捉人體的移動(dòng),接受信號(hào)傳輸?shù)诫娔X處理器中處理。
對(duì)于傳感器本身而言,比較好的傳感器幀率基本都在1000hz左右,所以傳感器接收人體移動(dòng)信號(hào)造成的延遲在1ms左右,再加上單片機(jī)處理信號(hào)和傳輸?shù)诫娔X的工作,這一過(guò)程大概在3ms。
這一過(guò)程中,數(shù)據(jù)傳輸和濾波造成的延遲基本是固定的。但是由于傳感器的幀率(比較好的傳感器可以達(dá)到1000HZ)和渲染的幀率不一致,所以會(huì)帶來(lái)一個(gè)可變的延遲。 在傳感器方面,對(duì)頭部活動(dòng)的預(yù)測(cè)有可能降低一定的延遲。但是即使有一個(gè)很復(fù)雜的人類頭部模型,這也只能處理頭部以一個(gè)比較均勻的速度移動(dòng)的情況,對(duì)于頭部開(kāi)始運(yùn)動(dòng)和運(yùn)動(dòng)狀況劇變的情況很難處理。
合理安排傳感器進(jìn)行數(shù)據(jù)采樣,一定程度上可以降低延遲。大多數(shù)模擬輸入的任務(wù)不直接依賴于用戶的輸入數(shù)據(jù),即是說(shuō)這一數(shù)據(jù)的輸入對(duì)一幀的延遲影響不大。如果在需要用戶輸入的數(shù)據(jù)時(shí)采樣,而不是在一開(kāi)始就離線緩存輸入數(shù)據(jù),則能減少總體的延遲。這種方法被稱之為延遲幀調(diào)度( late frame scheduling),其缺點(diǎn)在于需要大量的調(diào)度,提高了整體的功耗。
顯示帶來(lái)的延遲
然后就是圖像顯示造成的延遲?,F(xiàn)在的頭顯屏幕主要分為L(zhǎng)CD屏和OLED屏幕,現(xiàn)代技術(shù)下,一個(gè)優(yōu)秀的LDC屏幕上面一個(gè)像素從一個(gè)值轉(zhuǎn)變成另一個(gè)值需要大約10ms,經(jīng)過(guò)優(yōu)化這個(gè)數(shù)值可以降低一半。相比之下,OLED的像素轉(zhuǎn)化所需要的時(shí)間更少,一般都在只1ms以內(nèi)。
除此之外,有一個(gè)問(wèn)題:傳統(tǒng)顯示器都是逐行顯示圖像的,所以對(duì)于一個(gè)60HZ的屏幕來(lái)說(shuō),底部的圖像會(huì)比頂部的圖像晚16ms。這在靜止的屏幕里沒(méi)有關(guān)系,但是在任何圖像都是實(shí)時(shí)渲染的HMD里就會(huì)產(chǎn)生很大的差別??雌饋?lái)就好像顯示比較慢的邊緣部分被減掉了,頭部移動(dòng)的時(shí)候畫(huà)面也會(huì)由于延遲看起來(lái)就像是在震動(dòng)。尤其是對(duì)刷新速率較高的使用OLED屏幕的HMD來(lái)說(shuō),顯得非常明顯。
不過(guò)隨著屏幕技術(shù)的發(fā)展,現(xiàn)在的AMOLED以及TFTLCD這種有源矩陣屏幕的已經(jīng)很好的解決了屏幕顯示延遲的問(wèn)題。這些屏幕上每一個(gè)像素點(diǎn)都可以控制開(kāi)關(guān),屏幕上的圖像可以在同一時(shí)間顯示,尤其使用AMOLED屏幕,可以把圖像顯示這一步的延遲控制到數(shù)毫秒之內(nèi)。但是AMOLED屏幕的核心技術(shù)主要掌握在韓國(guó),整體的出貨量也比較低,國(guó)內(nèi)很少有VR頭顯設(shè)備使用這種屏幕。
圖像處理造成的延遲
圖像處理的時(shí)間是指從輸入信號(hào)以數(shù)字形式存儲(chǔ)進(jìn)內(nèi)存開(kāi)始,到做成下一個(gè)傳輸?shù)狡聊焕锏耐暾膸瑸橹梗枰ㄙM(fèi)的時(shí)間。
圖像處理的工序主要分為數(shù)字信號(hào)的降噪、場(chǎng)景的渲染以及后續(xù)的反畸變反色散處理。主要有三種方式可以減少花費(fèi)的時(shí)間以及提高最終的畫(huà)質(zhì)。
第一種是雙GPU立體渲染。由于VR頭顯由兩塊屏幕組成,如果將圖形處理系統(tǒng)分拆成兩個(gè),并分別配備一個(gè) GPU,每個(gè) GPU 只需單獨(dú)渲染一塊屏幕的圖像,這樣可以達(dá)到最佳的性能表現(xiàn)和最低的延遲,其代價(jià)是要求設(shè)備能夠管理兩個(gè)相互獨(dú)立的渲染內(nèi)容的緩存。如果設(shè)備無(wú)法維持兩個(gè) GPU 的緩存,設(shè)備的數(shù)據(jù)吞吐性能會(huì)下降,在緩存過(guò)載的情況下,還會(huì)導(dǎo)致幀率更嚴(yán)重地下降。
第二種降低延遲的方法是允許渲染層基于最新的采樣數(shù)據(jù)修改游戲?qū)觽鬟^(guò)來(lái)的參數(shù)(VIEW BYPASS)。計(jì)算出本次用戶輸入與上次采樣的差值,用于修改游戲?qū)犹峤唤o渲染層的視圖矩陣差值處理,從而減少處理的工作量。
第三種是Time Wraping,根據(jù)新輸入的數(shù)據(jù)后期處理渲染過(guò)的圖像。繪制出一副高質(zhì)量的圖像之后(使用過(guò) View bypass),這幅圖像不直接顯示,而是讓開(kāi)發(fā)者繼續(xù)抓取用戶輸入的最新的數(shù)據(jù),生成更新的視覺(jué)矩陣,然后計(jì)算出與輸入數(shù)據(jù)相匹配的已渲染圖像需要變形成什么樣,放置在什么位置。經(jīng)過(guò)這一次轉(zhuǎn)換之后,渲染變形后的圖像能與與用戶實(shí)際操作后應(yīng)該看到的圖像更相符。
后二者的結(jié)合,相當(dāng)于把用戶的操作造成的圖像渲染工作降到最低。而通過(guò)連續(xù)的time wraping,圖像渲染花費(fèi)的延時(shí)將被降到最低。而view bypass則保證圖像可以最大程度的避免最終呈像的視差。這種算法的出現(xiàn),可以縮短圖像渲染所花費(fèi)的數(shù)十毫秒的延遲。
老包子語(yǔ)
如果這么來(lái)看,降低延遲應(yīng)該是一件非常容易的事情。然而,這中間從傳感器到屏幕到算法的各個(gè)工序,只要有一項(xiàng)出差錯(cuò),就會(huì)提升產(chǎn)品的延遲,最終造成用戶的暈眩。而很多廠商宣稱的延遲,往往是理論計(jì)算值或者估計(jì)省略從頭部移動(dòng)到最終顯示中間會(huì)耗費(fèi)的一些工序。希望做VR設(shè)備的國(guó)內(nèi)廠商,能夠踏踏實(shí)實(shí)的從算法開(kāi)始,一點(diǎn)點(diǎn)的打磨產(chǎn)品,最終真正解決20ms延遲這一VR頭顯的最低門檻
(審核編輯: 滄海一土)
分享