卡馬克揭開VR延遲背后的真相

延遲是OculusVR所面對(duì)的最大挑戰(zhàn)之一薪夕,? 它不僅會(huì)分散玩家體驗(yàn)游戲時(shí)的注意力爪喘, 還會(huì)導(dǎo)致暈動(dòng)癥姥闭, 所以找出它背后的原因并消除它是非常重要的巧婶。

整個(gè)系統(tǒng)保持在50ms已經(jīng)很快了, 但是還是可以感覺到延遲

20ms是可接受的最大延遲

傳感器數(shù)據(jù)的推導(dǎo)預(yù)測(cè)可以緩解部分的系統(tǒng)延遲壕翩。但即使有一個(gè)非常復(fù)雜的人類頭部運(yùn)動(dòng)模型蛉迹, 也不能很好地處理開始運(yùn)動(dòng)和運(yùn)動(dòng)突變時(shí)的情況

濾波和傳輸是固定延遲, 但是離散的傳感器數(shù)據(jù)包也會(huì)帶來一個(gè)可變的延遲放妈, 因?yàn)殇秩镜膸逝c傳感器的幀率是不一致的

早期的LCD在運(yùn)動(dòng)時(shí)有拖影北救, 盡管現(xiàn)在的工藝已經(jīng)進(jìn)步了很多, LCD的像素從一個(gè)值轉(zhuǎn)變到另一個(gè)值大約仍要10ms, 專為3D游戲優(yōu)化過的可以降低到一半以下

OLED的像素切換時(shí)間在1ms以下大猛, 激光顯示甚至與CRT一樣快

有一個(gè)不易察覺的延遲扭倾, 多數(shù)顯示器顯示一幅圖像時(shí)是逐漸出現(xiàn)的, 就像從計(jì)算機(jī)中掃描出來一樣挽绩。 這就導(dǎo)致了60Hz刷新率的屏幕底部比頂部晚了16ms

這對(duì)于固定的顯示器不是什么問題膛壹, 但是對(duì)于頭戴式的顯示器,它會(huì)引起畫面左右割裂或者轉(zhuǎn)頭時(shí)的晃動(dòng)唉堪。 這是因?yàn)樵瓐D像是即時(shí)生成的模聋, 但不同部分卻不是同一時(shí)間顯示的。 這個(gè)現(xiàn)象在LCD頭戴顯示器上會(huì)因切換時(shí)間的問題被忽視唠亚, 但是在OLED頭戴顯示器上非常明顯

有一個(gè)非常有吸引力的立體渲染方向链方, 就是雙眼的畫面各由一個(gè)GPU渲染, 這樣可以帶來最好的性能和最小的延遲灶搜, 只是需要應(yīng)用程序管理好兩個(gè)獨(dú)立的渲染上下文

阻止GPU緩存的負(fù)面影響是會(huì)降低吞吐量祟蚀, 造成高負(fù)載時(shí)的幀率下降

多數(shù)的模擬并不直接依賴用戶的輸入工窍,可能在一幀的延遲中并不明顯。如果輸入數(shù)據(jù)是在使用到時(shí)再采樣前酿,就會(huì)比在幀開始時(shí)保存下來延遲要低

延遲幀調(diào)度(late frame scheduling)通常需要等待患雏,浪費(fèi)了一些性能。 如果你的幀率依賴video retrace而不是固定的時(shí)間片罢维, 那么從顯示驅(qū)動(dòng)中獲取當(dāng)前的掃描輸出位置會(huì)有幫助

另一個(gè)降低延遲的方法是允許渲染層基于最新的采樣數(shù)據(jù)修改游戲?qū)觽鬟^來的參數(shù)(VIEW BYPASS)淹仑。簡(jiǎn)單地說, 可以計(jì)算出本次用戶輸入與上次采樣的差值肺孵,用于修改游戲?qū)犹峤唤o渲染層的視圖矩陣

差值處理是最小程度的侵入匀借, 但也有一些情況是用戶輸入不能影響渲染的,如玩家死亡時(shí)的過場(chǎng)動(dòng)畫平窘∠爬撸或許VR游戲從設(shè)計(jì)上就應(yīng)該避免在頭戴顯示器中出現(xiàn)不能響應(yīng)的情況,但是依照傳統(tǒng)游戲的慣例這種設(shè)計(jì)還是有很多的

如果你十分了解渲染一幀所花的時(shí)間初婆,那么一些額外的延遲可以通過整個(gè)渲染任務(wù)的延遲幀調(diào)度來節(jié)省下來蓬坡,但這對(duì)于頻繁變化的幀渲染時(shí)間并不是一件容易的事。然而一個(gè)后期處理任務(wù)(TIME WARPING)可以降低意料之中的一些時(shí)間磅叛, 這樣就可以更加容易地進(jìn)行延遲調(diào)度

從你的角度盡可能使用最好的信息繪制了一幀后(已經(jīng)應(yīng)用了view bypass),不要急著直接顯示出來萨赁, 開發(fā)者還可以再次獲取最新的用戶輸入弊琴, 生成一個(gè)更新過的視圖矩陣, 把渲染的畫變換到更新過參數(shù)的位置上杖爽。 使用這個(gè)變換敲董, 顯示到屏幕上的畫面就反映了最新的輸入

view bypass和time wraping是互補(bǔ)的技術(shù), 它們既可以獨(dú)立使用也可以一起使用慰安。time warping可以變換一個(gè)源圖像的任意時(shí)間或位置到另一個(gè)腋寨, 一些視差和屏幕邊緣的瑕疵又可以通過view bypass來彌補(bǔ)

需要模擬狀態(tài)變更的動(dòng)作, 如切換開關(guān)或武器開火化焕, 仍然需要大約32-48ms的延遲通過整個(gè)管線萄窜, 顯示出對(duì)應(yīng)的畫面信息時(shí)的延遲并不會(huì)低于bypass優(yōu)化過的16-32ms。而最重要的頭部朝向反饋卻可以在60Hz的刷新率下延遲控制在2-18ms撒桨。結(jié)合低延遲的傳感器和顯示屏查刻, 甚至可以做到不可察覺。連續(xù)的time warping讓延遲低于3ms成為了可能凤类,為人機(jī)交互打開了一片未曾探索過的新天地

傳統(tǒng)的計(jì)算機(jī)交互并沒有VR的延遲要求這么高穗泵, 但是敏感的人卻可以說出20ms級(jí)別的鼠標(biāo)反應(yīng)差異, 所以這項(xiàng)技術(shù)對(duì)于非VR的應(yīng)用也是值得推廣的

一個(gè)有趣的應(yīng)用就是云游戲谜疤, 客戶端發(fā)送操作信息給遠(yuǎn)程服務(wù)器佃延, 并返回游戲的視頻流现诀。這為玩家提供了極大便利,但網(wǎng)絡(luò)和壓縮的延遲使得動(dòng)作向的游戲體驗(yàn)比較差履肃。view bypass和time warping都可以在服務(wù)器上應(yīng)用仔沿,能夠抵消相當(dāng)大一部分網(wǎng)絡(luò)延遲。再進(jìn)一步榆浓,time wraping如果可以在客戶端本地運(yùn)行于未,理論上可以降低到與本地應(yīng)用程序相同的水平,不過把time wraping限制在30或40ms比較好陡鹃,避免與源圖像的距離差異過大烘浦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市萍鲸,隨后出現(xiàn)的幾起案子闷叉,更是在濱河造成了極大的恐慌,老刑警劉巖脊阴,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件握侧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡嘿期,警方通過查閱死者的電腦和手機(jī)品擎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來备徐,“玉大人萄传,你說我怎么就攤上這事∶刍” “怎么了秀菱?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蹭睡。 經(jīng)常有香客問我衍菱,道長(zhǎng),這世上最難降的妖魔是什么肩豁? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任脊串,我火速辦了婚禮,結(jié)果婚禮上蓖救,老公的妹妹穿的比我還像新娘洪规。我一直安慰自己,他們只是感情好循捺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布斩例。 她就那樣靜靜地躺著,像睡著了一般从橘。 火紅的嫁衣襯著肌膚如雪念赶。 梳的紋絲不亂的頭發(fā)上础钠,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音叉谜,去河邊找鬼旗吁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛停局,可吹牛的內(nèi)容都是我干的很钓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼董栽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼码倦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锭碳,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤袁稽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后擒抛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體推汽,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年歧沪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歹撒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诊胞,死狀恐怖栈妆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厢钧,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布嬉橙,位于F島的核電站早直,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏市框。R本人自食惡果不足惜霞扬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枫振。 院中可真熱鬧喻圃,春花似錦、人聲如沸粪滤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杖小。三九已至肆汹,卻和暖如春愚墓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昂勉。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工浪册, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岗照。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓村象,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親攒至。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厚者,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容