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

來源:互聯網
上載者:User

標籤:

原文:http://oculusrift-blog.com/john-carmacks-message-of-latency/682/

延遲是OculusVR所面對的最大挑戰之一,  它不僅會分散玩家體驗遊戲時的注意力, 還會導致暈動症, 所以找出它背後的原因並消除它是非常重要的。
  • 整個系統保持在50ms已經很快了, 但是還是可以感覺到延遲
  • 20ms是可接受的最大延遲
  • 感應器資料的推導預測可以緩解部分的系統延遲。但即使有一個非常複雜的人類頭部運動模型, 也不能很好地處理開始運動和運動突變時的情況
  • 濾波和傳輸是固定延遲, 但是離散的感應器資料包也會帶來一個可變的延遲, 因為渲染的幀率與感應器的幀率是不一致的
  • 早期的LCD在運動時有拖影, 儘管現在的工藝已經進步了很多, LCD的像素從一個值轉變到另一個值大約仍要10ms, 專為3D遊戲最佳化過的可以降低到一半以下
  • OLED的像素切換時間在1ms以下, 雷射顯示甚至與CRT一樣快
  • 有一個不易察覺的延遲, 多數顯示器顯示一幅映像時是逐漸出現的, 就像從電腦中掃描出來一樣。 這就導致了60Hz重新整理率的螢幕底部比頂部晚了16ms
  • 這對於固定的顯示器不是什麼問題, 但是對於頭戴式的顯示器,它會引起畫面左右割裂或者轉頭時的晃動。 這是因為原映像是即時產生的, 但不同部分卻不是同一時間顯示的。 這個現象在LCD頭戴顯示器上會因切換時間的問題被忽視, 但是在OLED頭戴顯示器上非常明顯
  • 有一個非常有吸引力的立體渲染方向, 就是雙眼的畫面各由一個GPU渲染, 這樣可以帶來最好的效能和最小的延遲, 只是需要應用程式管理好兩個獨立的渲染上下文
  • 阻止GPU緩衝的負面影響是會降低輸送量, 造成高負載時的幀率下降
  • 多數的類比並不直接依賴使用者的輸入,可能在一幀的延遲中並不明顯。如果輸入資料是在使用到時再採樣,就會比在幀開始時儲存下來延遲要低
  • 延遲幀調度(late frame scheduling)通常需要等待,浪費了一些效能。 如果你的幀率依賴video retrace而不是固定的時間片, 那麼從顯示驅動中擷取當前的掃描輸出位置會有協助
  • 另一個降低延遲的方法是允許渲染層基於最新的採樣資料修改遊戲層傳過來的參數(VIEW BYPASS)。簡單地說, 可以計算出本次使用者輸入與上次採樣的差值,用於修改遊戲層提交給渲染層的視圖矩陣
  • 差值處理是最小程度的侵入, 但也有一些情況是使用者輸入不能影響渲染的,如玩家死亡時的過場動畫。或許VR遊戲從設計上就應該避免在頭戴顯示器中出現不能響應的情況,但是依照傳統遊戲的慣例這種設計還是有很多的
  • 如果你十分瞭解渲染一幀所花的時間,那麼一些額外的延遲可以通過整個渲染任務的延遲幀調度來節省下來,但這對於頻繁變化的幀渲染時間並不是一件容易的事。然而一個後期處理任務(TIME WARPING)可以降低意料之中的一些時間, 這樣就可以更加容易地進行延遲調度
  • 從你的角度儘可能使用最好的資訊繪製了一幀後(已經應用了view bypass),不要急著直接顯示出來, 開發人員還可以再次擷取最新的使用者輸入, 產生一個更新過的視圖矩陣, 把渲染的畫變換到更新過參數的位置上。 使用這個變換, 顯示到螢幕上的畫面就反映了最新的輸入
  • view bypass和time wraping是互補的技術, 它們既可以獨立使用也可以一起使用。time warping可以變換一個源映像的任意時間或位置到另一個, 一些視差和螢幕邊緣的瑕疵又可以通過view bypass來彌補
  • 需要類比狀態變更的動作, 如切換開關或武器開火, 仍然需要大約32-48ms的延遲通過整個管線, 顯示出對應的畫面資訊時的延遲並不會低於bypass最佳化過的16-32ms。而最重要的頭部朝向反饋卻可以在60Hz的重新整理率下延遲控制在2-18ms。結合低延遲的感應器和顯示屏, 甚至可以做到不可察覺。連續的time warping讓延遲低於3ms成為了可能,為人機互動開啟了一片未曾探索過的新天地
  • 傳統的電腦互動並沒有VR的延遲要求這麼高, 但是敏感的人卻可以說出20ms層級的滑鼠反應差異, 所以這項技術對於非VR的應用也是值得推廣的
  • 一個有趣的應用就是雲遊戲, 用戶端發送操作資訊給遠程伺服器, 並返回遊戲的視頻流。這為玩家提供了極大便利,但網路和壓縮的延遲使得動作向的遊戲體驗比較差。view bypass和time warping都可以在伺服器上應用,能夠抵消相當大一部分網路延遲。再進一步,time wraping如果可以在用戶端本地運行,理論上可以降低到與本地應用程式相同的水平,不過把time wraping限制在30或40ms比較好,避免與源映像的距離差異過大。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.