4
本文作者: 小芹菜 | 2015-07-13 16:14 |
編者注:本文由樂相科技供稿,雷鋒網(wǎng)編輯做了不改變?cè)獾恼{(diào)整。
隨著VR產(chǎn)業(yè)漸漸進(jìn)入人們的視線,VR熱潮正處于爆發(fā)前期。縱觀國(guó)內(nèi)幾家VR領(lǐng)域的尖端企業(yè),中國(guó)的VR硬件與國(guó)際水準(zhǔn)相比并不低。如果以“國(guó)際標(biāo)準(zhǔn)”O(jiān)culus的VR硬件來(lái)說(shuō),可以說(shuō)與其基本持平。對(duì)于過(guò)國(guó)內(nèi)廣大普通產(chǎn)品使用者來(lái)說(shuō)無(wú)疑是個(gè)好消息,國(guó)內(nèi)的VR團(tuán)隊(duì)在保持硬件的技術(shù)過(guò)關(guān)的前提下,性價(jià)比頗高。
然而,就算是最尖端的VR產(chǎn)品,目前依舊有致命的“硬傷”:暈眩感太強(qiáng)。很多VR體驗(yàn)者表示,在一段時(shí)間使用VR產(chǎn)品后,會(huì)出現(xiàn)不適,惡心,甚至嘔吐。這成為了VR發(fā)展最大的一個(gè)絆腳石,解決暈眩問題成為VR的燃眉之急。
一、為什么會(huì)產(chǎn)生VR暈眩?
VR暈眩原理其實(shí)非常簡(jiǎn)單,因?yàn)檠劬吹降模╒R)畫面與從耳朵接收到的(真實(shí)位置)信息不匹配,導(dǎo)致腦負(fù)擔(dān)加大,從而產(chǎn)生暈眩感。
產(chǎn)生這樣的問題主要有兩個(gè)方面:
一方面和3D暈眩癥的道理有點(diǎn)類似,3D特效大片之所以會(huì)讓觀眾覺得頭暈,是因?yàn)?D電影除了大量實(shí)焦畫面外,還有元素豐富的虛焦布景畫面。
畫面里的元素過(guò)于豐富,像遠(yuǎn)處景深里虛焦樹葉就是眾多元素里的一部分。但觀看3D電影的時(shí)候,觀眾必須舍棄虛焦畫面里的這些元素。因?yàn)檫@些元素會(huì)讓眼球重新聚焦,且屢屢聚焦失敗,就容易產(chǎn)生3D暈眩癥,這就類似在雪山上的人眼球長(zhǎng)期搜查不到視覺焦點(diǎn)而造成的雪盲。
簡(jiǎn)單來(lái)說(shuō)就是畫面太逼真了,讓你有身臨其境的感覺,身體認(rèn)為你正在做劇烈的運(yùn)動(dòng),或者處于畫面中的狀態(tài),但是實(shí)際上你是坐在座位上并沒有運(yùn)動(dòng)。這是一種自我保護(hù)的本能,大多數(shù)人可以通過(guò)鍛煉減輕暈眩,但是不可能讓人真正去移動(dòng)一段距離。
另一方面是VR硬件的延遲造成時(shí)間上的不同步,當(dāng)人轉(zhuǎn)動(dòng)視角或是移動(dòng)的時(shí)候,畫面呈現(xiàn)的速度跟不上,在VR這樣全視角的屏幕中,這樣的延遲是造成暈眩的最大問題,目前降低延遲是當(dāng)下減弱VR眩暈的主要手段。
二、延遲——VR領(lǐng)域中降低暈眩的方法
選購(gòu)虛擬現(xiàn)實(shí)設(shè)備,很重要的一個(gè)指標(biāo)是從轉(zhuǎn)動(dòng)頭部到轉(zhuǎn)動(dòng)畫面的延遲。
而畫面延遲在很大程度上又取決于顯示屏的刷新率。目前世界上最先進(jìn)的虛擬現(xiàn)實(shí)設(shè)備刷新率在75Hz,包括鼎鼎有名的Oculus DK2和上海樂相科技的大朋等。
75Hz意味著渲染完成到顯示在屏幕上,至少需要1秒除以75次等于每次13.3毫秒,包括安全保險(xiǎn)的時(shí)間在內(nèi),一般是19.3ms的延遲。所以任何聲稱自己延遲在19.3ms以下的都是虛假宣傳。
那么延遲19.3ms是由什么構(gòu)成的?
(19.3ms延遲的產(chǎn)生過(guò)程)
1、首先從頭部轉(zhuǎn)動(dòng)到傳感器讀到數(shù)據(jù)大概需要1ms的時(shí)間,如果采用世界一流的傳感器,那么采樣率在1KHz,也就是說(shuō)每秒鐘可以讀取到一千個(gè)數(shù)據(jù),那么每個(gè)數(shù)據(jù)就是1ms,也就得出了這1ms的延遲。
2、然后數(shù)據(jù)需要經(jīng)由單片機(jī),傳輸?shù)诫娔X。因?yàn)樗鼈兊慕涌谑遣煌模秃孟窨照{(diào)的電源插頭不能插到小臺(tái)燈的插座里,需要一些轉(zhuǎn)換工作,單片機(jī)就負(fù)責(zé)了這樣的轉(zhuǎn)換。數(shù)據(jù)從傳感器到單片機(jī)大概需要1ms。因?yàn)榍懊鏀?shù)據(jù)的產(chǎn)生需要1ms,于是如果不在1ms內(nèi)將這些數(shù)據(jù)傳送到單片機(jī),那么后來(lái)的數(shù)據(jù)就會(huì)被丟棄。
3、接下來(lái)是單片機(jī)經(jīng)由USB線將數(shù)據(jù)傳輸?shù)絇C。USB線具有極高的傳輸速率,但是完全由Host端(也就是PC端)控制傳輸?shù)?。也就是說(shuō),如果Host端不接收單片機(jī)發(fā)來(lái)的數(shù)據(jù),那么數(shù)據(jù)就會(huì)被丟棄。采用HID方式的情況下,Host端會(huì)經(jīng)常檢查是否有數(shù)據(jù)傳輸上來(lái),然后將數(shù)據(jù)存放到內(nèi)存,所以這個(gè)時(shí)間在1ms之內(nèi)。至此,數(shù)據(jù)已經(jīng)到達(dá)PC的內(nèi)存了,走完了全部的硬件過(guò)程。由于數(shù)據(jù)帶寬、通信協(xié)議等限制,會(huì)占用3ms~4ms之間的時(shí)間,很難再減少了。
4、在硬件上傳輸完成后,就是軟件算法處理的過(guò)程了。
由于模擬信號(hào)本身的噪聲和漂移,轉(zhuǎn)換成數(shù)字信號(hào)后,數(shù)據(jù)中存在大量的噪聲和漂移。于是需要復(fù)雜的數(shù)字信號(hào)處理方法將這些噪聲和漂移過(guò)濾掉。這樣,傳感器傳來(lái)的9軸數(shù)據(jù)就成為了渲染游戲所需的頭部旋轉(zhuǎn)的四元數(shù)旋轉(zhuǎn)數(shù)據(jù)。處理這個(gè)數(shù)據(jù)一般在1ms以內(nèi)。渲染時(shí)只要將這個(gè)旋轉(zhuǎn)的四元數(shù)乘以攝像機(jī)的坐標(biāo),就得出了觀察方向,可以用于渲染場(chǎng)景。通過(guò)特殊的算法(例如Time-warp,目前最快的算法),根據(jù)先前的數(shù)據(jù)處理得到的圖像,完成真正被顯示的畫面。幸虧有了Time-warp算法,我們可以基本忽略渲染場(chǎng)景的延遲。
5、當(dāng)場(chǎng)景渲染完之后還需要做反畸變,反色散等處理。這些處理一般需要消耗GPU 0.5ms的時(shí)間。為了安全起見,將這個(gè)時(shí)間設(shè)為3ms,來(lái)保證準(zhǔn)備傳輸下一幀到顯示器,也就是下一個(gè)垂直同步信號(hào)來(lái)之前,GPU必定能把反畸變、反色散做成。
6、然后就是傳輸圖像到顯示器的時(shí)間了。如前所述,按照75Hz計(jì)算,那么需要13.3ms。到此就結(jié)束了嗎?不是的,還有顯示器將圖像顯示出來(lái)的時(shí)間。由于LCD顯示器是晶體由電場(chǎng)控制旋轉(zhuǎn)的物理過(guò)程,所以傳統(tǒng)的LCD顯示器需要15~28ms不等的時(shí)間來(lái)響應(yīng)。而最新的OLED技術(shù)則將這個(gè)時(shí)間減少到了微秒級(jí)。
好了,讓我們將這些時(shí)間累加起來(lái),3ms + 3ms + 13.3ms = 19.3ms。當(dāng)然這是最理想的情況,還有可能CPU的性能、USB丟包等問題可能導(dǎo)致達(dá)不到這樣低的延遲。
國(guó)內(nèi)大朋和“國(guó)際標(biāo)準(zhǔn)”O(jiān)culus的產(chǎn)品都是采用此種算法,最低延遲是完全一致的,在全世界范圍內(nèi),19.3ms的延遲是當(dāng)下最科學(xué),最可信的延遲推算時(shí)間。
當(dāng)然Oculus展望未來(lái)可以將延遲降得更低也不是吹噓的。從上面的算式可以看出,主要瓶頸在13.3ms這個(gè)延遲過(guò)程上。通過(guò)一些特殊的方法可以減少一半,甚至更少。但這需要硬件廠家、操作系統(tǒng)、游戲開發(fā)者共同的努力。
目前看來(lái),VR硬件改善延遲是改善眩暈最好的解決方法,所有需要的時(shí)間不斷壓縮能夠來(lái)降低畫面的延遲,從硬件上先解決造成暈眩的問題。其次就像之前的3D眩暈一樣,使用者通過(guò)一段時(shí)間的適應(yīng),才能使VR成為真正意義上的虛擬現(xiàn)實(shí)產(chǎn)物。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。