分辨率?視場角?好VR的關(guān)鍵僅在低延遲!
打開各大VR論壇頁面,我們總能看到很多對于現(xiàn)階段VR設(shè)備的批評聲音,其中最多的大概就是關(guān)于VR畫面粗糙、顆粒感嚴(yán)重的問題。誠然,由于還處于較為初級的發(fā)展階段,消費(fèi)級VR設(shè)備存在著各種各樣的問題。但是小編不能理解的是有很多人批評VR的分辨率低,卻對一個更本質(zhì)的問題熟視無睹,那就是“運(yùn)動畫面延遲(motion-to-photon latency)”。
小編認(rèn)為延遲的問題遠(yuǎn)比VR畫面分辨率、視場角之類的要重要的多,因?yàn)樗c你能否長時(shí)間體驗(yàn)虛擬現(xiàn)實(shí),會不會產(chǎn)生“模擬器暈動癥(看VR之后頭暈眼花)”息息相關(guān)。所以在此,小編覺得有必要再一次科普一下這個“運(yùn)動畫面延遲”的概念。
定義
“運(yùn)動畫面延遲”和普通的電腦游戲的延遲從本質(zhì)上就是兩碼事,因?yàn)樘摂M現(xiàn)實(shí)在視覺層面上就是一個環(huán)繞用戶周身的立體畫面,但是用戶的視覺范圍有限,VR設(shè)備能顯示的畫面范圍更有限,用戶需要通過轉(zhuǎn)頭等動作才能夠全方位地查看整個VR環(huán)境。而“運(yùn)動畫面延遲”指的就是從VR設(shè)備開始檢測用戶頭部的動作,到它在顯示屏上顯示對應(yīng)畫面的時(shí)間間隔。如果你向左轉(zhuǎn)頭100ms后才看見你左側(cè)的畫面,那么這個延遲就是100ms。
重要性
足夠低的“運(yùn)動畫面延遲”(<20ms)對于想要“欺騙”你大腦,讓它覺得你此刻已經(jīng)身處另一個世界(存在感,沉浸感)的VR設(shè)備來說至關(guān)重要。所謂存在感,就是盡管理性告訴你這不過是顯示器上的畫面,但你的感官卻讓你不由自主,覺得自己進(jìn)入了這個虛擬世界,如果虛擬世界有人朝你的臉扔了一塊石頭,就算你不去躲閃,至少也會眨一下眼。為了獲得存在感,最重要的一個要求之一就是超低延遲。
高“運(yùn)動畫面延遲”的結(jié)果就是糟糕的VR體驗(yàn)(頭暈,惡心),當(dāng)用戶在虛擬現(xiàn)實(shí)中移動時(shí),他的大腦本能地期望所看到的畫面與他的動作完美契合。當(dāng)實(shí)際畫面滯后于用戶的動作時(shí),他就會感到迷糊和頭暈。這樣的體驗(yàn)沒有人會喜歡。
而相比之下,分辨率稍低所造成的顆粒感,或者說“紗窗效應(yīng)”;鏡片設(shè)計(jì)較差導(dǎo)致的畫面模糊;視場角較小這些問題則相對沒那么重要(當(dāng)然,只是相對而言)。因?yàn)檫@些情況本來就存在于現(xiàn)實(shí)中,但沒有人會因此認(rèn)為這個世界不是真實(shí)的。難道你會因?yàn)楦糁喆翱赐饷婢陀X得世界不是真實(shí)的嗎?或者說近視眼沒戴眼鏡就無法生活了嗎?還是說游泳的時(shí)候戴上了游泳眼鏡就認(rèn)為自己淹不死了?它們讓人感覺不適應(yīng),而不是不真實(shí)。
如何改善?
想要知道如何改善“運(yùn)動畫面延遲”,首先需要了解是什么造成了這個延遲。
想要改善“運(yùn)動畫面延遲”,運(yùn)動捕捉到畫面生成過程中的每一步都需要進(jìn)行優(yōu)化。首先要聲明的是延遲無法消除,因?yàn)橛邢群箜樞?,它只能減少到人無法感知的地步。從運(yùn)動到畫面,涉及的部分包括:顯示器,數(shù)據(jù)傳輸通道,CPU,GPU,游戲引擎,顯示器技術(shù)(顯示器刷新率和像素切換時(shí)間)。這不是詳細(xì)的說明,所以其實(shí)還涉及一些其他部分,它包括的只是最重要的部分。下面我就講解一下減少“運(yùn)動畫面延遲”的常見技術(shù)。
顯示器技術(shù)
像素切換時(shí)間
像素切換時(shí)間指的是更新顯示器上全部像素點(diǎn)所需要的時(shí)間。如果我們要在顯示器上看到一個圖像,就需要對其進(jìn)行繪制。繪制出一個圖像意味著顯示器上的像素點(diǎn)必須全部切換到對應(yīng)的色彩和亮度,下圖是一個概念演示:
在這個例子中,這個3*3顯示屏的像素切換時(shí)間是3ms。因?yàn)樗瓿傻谝恍械娜齻€像素的切換花了1ms,而所有像素的切換則是3ms。
液晶屏(LCD)的像素切換時(shí)間較長?,F(xiàn)在大部分手機(jī)使用的IPS顯示屏就是一種LCD,目前大部分高端VR設(shè)備使用的OLED屏則具有更高的響應(yīng)速度。
所以為了減少像素切換時(shí)間,使用響應(yīng)速度更快的顯示技術(shù)就是很好的選擇。也就是說,如果手機(jī)VR產(chǎn)品想要減少延遲,首先可以換用OLED顯示屏。
刷新率
刷新率指的是顯示屏從顯卡獲取圖像信息的頻率,它決定著顯示屏在兩個圖像之間等待的時(shí)間,以60Hz的顯示屏為例,其等待時(shí)間就是1000ms/60Hz=16.67ms。這意味著即使我們使用火星科技的顯卡無延遲地生成新圖像并送往顯示器,它也要在16.67ms之后才顯示下一張圖像。
想要減少這方面的延遲,我們需要提高顯示器刷新率,例如120Hz的顯示器其延遲就是8.33ms。
主機(jī)方面的因素(CPU,GPU和游戲引擎)
這方面對于減少運(yùn)動畫面延遲也具有很高的優(yōu)化潛力。Oculus CTO約翰卡馬克曾寫過一篇非常棒的文章解釋了如何在這方面做優(yōu)化,他主要集中在CPU,GPU和畫面渲染技術(shù)。原文已經(jīng)找不到了,不過其大體內(nèi)容我們還是可以了解一下。在我們深入之前,先來了解一些背景資料。
VR游戲的標(biāo)準(zhǔn)處理模型如下:
讀取用戶輸入(I)
開始模擬(S)
發(fā)出渲染命令(R)
圖形繪制(G)
等待垂直同步(?)
掃描輸出(V)
下面有一個渲染管線的例子。CPU1讀取用戶輸入并開始模擬,CPU2發(fā)出渲染命令,GPU進(jìn)行場景繪制并轉(zhuǎn)換繪制命令到顯示器,然后掃描輸出。
這里面每一幀(連續(xù)圖像中的單個靜止畫面)需要耗費(fèi)16ms。整個渲染過程需要4幀,也就是說這個渲染管線花費(fèi)了至少48ms~64ms。
記住上面的過程,然后我們來看看約翰卡馬克文章中那些重要的技術(shù)。
阻止GPU緩沖
通過讓GPU在接收到渲染命令之后立即開始繪制,而不是等待整個渲染管線完成,我們可以有效減少延遲。以上面的例子來說,我們使用這個技術(shù)可以節(jié)省1幀的時(shí)間(16ms)(本來要等全部渲染命令發(fā)送完成才開始繪制,而現(xiàn)在是邊發(fā)送邊繪制),示意圖如下:
你也許會問:為什么GPU可以在CPU還沒有發(fā)送完渲染命令就開始繪制?
當(dāng)然,它做不到。所以第一幀無論如何也必須等到第一個命令發(fā)送完。但是等到GPU收到第一個渲染命令之后,它就可以立刻開始繪制了。讓我們來舉一個例子,想象一下一片葉子從樹上掉落的場景。
1.CPU計(jì)算出包含了樹和葉子的場景
2.CPU讓GPU繪制1中的場景
3.GPU接受場景1的描述然后開始繪制并發(fā)送到顯示器
4.在GPU完成步驟3之前,CPU又開始計(jì)算下一個場景,也就是葉子是如何從樹上掉落的,然后把結(jié)果發(fā)送給GPU
5.GPU接受4,開始繪制并發(fā)送給顯示器
也就是說,盡管GPU的繪制工作需要花費(fèi)較長的時(shí)間,但CPU對下一個場景的計(jì)算過程是獨(dú)立于GPU的。這算是對實(shí)際無比復(fù)雜的過程的一個簡化描述吧。這個技術(shù)其實(shí)有一個缺點(diǎn),由于GPU不能緩存命令,所以如果負(fù)載過重的情況下,它會造成更多的掉幀。
時(shí)間扭曲(又名:異步時(shí)間扭曲,ATW)
異步時(shí)間扭曲可以減少從運(yùn)動感知到畫面生成過程中那些可明顯被感覺出來的延遲。它的原理就是在渲染途中暫時(shí)忽略完整的CPU和GPU計(jì)算過程,直接通過運(yùn)動檢測傳感器的數(shù)據(jù)重計(jì)算上一張場景生成下一幀(由于這一幀其實(shí)是上一幀扭曲而來的,所以不是很真實(shí))。對于特定的動作,比如用戶微微向左轉(zhuǎn)頭,場景的變換實(shí)際上很小,這時(shí)候采用這種方式生成的圖像也不會顯得很奇怪。其渲染管線示意圖如下:
由于減少了好多步驟,所以這一過程非常迅速(不過是對圖像進(jìn)行矩陣變換而已)。只要不是特別夸張的動作,用ATW生成的圖像與原本非常復(fù)雜渲染管線生成的圖像并沒有多大區(qū)別。
補(bǔ)充:頭部追蹤
這個技術(shù)目前只存在于那些高端VR頭顯,例如HTC Vive和Oculus Rift,像Cardboard和Gear VR這種移動設(shè)備不具備。頭部追蹤用來全方位追蹤用戶頭部運(yùn)動,可以作為另一個用戶輸入。
頭部運(yùn)動預(yù)測
這項(xiàng)技術(shù)通過對傳感器收集到的用戶頭部運(yùn)動數(shù)據(jù)進(jìn)行分析,進(jìn)而預(yù)測其下一步動作,提前做出準(zhǔn)確的反應(yīng)。這樣也可以減少運(yùn)動檢測到畫面生成管線中運(yùn)動數(shù)據(jù)輸入步驟的時(shí)間。如果說一開始我們需要80ms~90ms完成這一過程,使用運(yùn)動預(yù)測之后只要50ms。但是,如果預(yù)測失敗,它反而會增加延遲并產(chǎn)生錯誤的畫面,造成用戶的眩暈感。
結(jié)論
我希望在看完這篇文章之后,你能夠?qū)\(yùn)動畫面延遲有一個全面準(zhǔn)確的認(rèn)識,并明白其重要性。你同時(shí)也了解了到底是哪些因素造成了延遲以及一些縮小延遲的基本技術(shù)。運(yùn)動畫面延遲對于VR體驗(yàn)的質(zhì)量可謂是關(guān)鍵因素,這也是我們在獲得VR體驗(yàn)中獲得真正的存在感之前必須要解決的問題。
未經(jīng)授權(quán),禁止轉(zhuǎn)載,違者必將追究法律責(zé)任。
文章點(diǎn)評
相關(guān)閱讀
-
復(fù)數(shù)黑科技加成,高通發(fā)布VR/AR一體機(jī)
3G技術(shù)的關(guān)鍵CDMA的發(fā)明者高通公司昨天發(fā)布了一款獨(dú)立式VR頭顯的參考設(shè)計(jì)。這是一款完全獨(dú)立的設(shè)備,它不需要連接PC,也沒有必要使用一款高性能智能手機(jī),它的運(yùn)行只依靠內(nèi)部集成的硬件。根據(jù)ZDNet的...
- 歌手也VR!濱崎步的VR視頻直播你想看嗎?
- 專利顯示,蘋果有意推出iPhone版“Gear VR”
- VR光場相機(jī),遠(yuǎn)不止全景視頻這么簡單
- VR卡牌《失落之城》,播撒智慧收獲樂趣
- iPhone7改用OLED,蘋果是否在為進(jìn)軍VR做準(zhǔn)備