虛擬現實:約翰·卡馬克(John Carmack)爭奪20毫秒潛伏期的戰鬥

Oculus Rift希望終於解決了在虛擬現實耳機上遇到早期嘗試的問題。它裝有高分辨率觀看面板拆分,可容納每隻眼睛的內部傳感器,這些傳感器可以準確,迅速地跟踪頭部運動,並且價格低於1000美元的價格範圍。但是開發人員必須克服的最大問題是延遲。

正如約翰·卡馬克(John Carmack)所說,“用戶頭部的物理運動與從頭部安裝的顯示器更新的光子到達眼睛之間的潛伏期是提供高質量體驗的最關鍵因素之一。”

您可以找出他們為什麼以及如何試圖克服此問題的原因。

卡馬克(Carmack)詳細介紹了博客文章高潛伏期如何使玩家“用自己的頭作為控制器”,而低潛伏期則使玩家接受“他們的頭自然在穩定的虛擬世界中四處移動”。在動作和更新之間的這種延遲變得不可察覺的最佳點“低於20毫秒”。

說起來容易做起來難。修剪計算機響應時間的脂肪為Carmack和Palmer Luckey的團隊開發了Oculus Rift帶來了許多麻煩。

即使收集數據來衡量潛伏期也很困難。如果它們具有耳機和計算機,則在測量潛伏期上運行時,它們會積極放慢機器,因此增加了試圖遵循的延遲。團隊必須採用的方法是錄製“同時捕獲啟動身體運動和最終顯示更新的高速視頻”,然後“單個踩踏視頻併計算兩個事件之間的視頻幀數量”。幾乎就像在電影中使用拍手板來標記一個將視頻和聲音排列的點一樣。

團隊發現的典型潛伏期是“超過100毫秒”。關於人類大腦的怪異,坦率的很酷的事情是,延遲延遲並不能阻止玩家理解遊戲 - 正如Carmack指出的那樣:“成千上萬的人喜歡玩早期的網絡遊戲,即使有400毫秒以上的延遲按下鑰匙並在屏幕上看到響應” - 僅僅是因為大腦不會被愚弄以現實的形式看到它們的圖像,它永遠不會忘記它是一種代表,直到它更新幾乎就像我們的眼睛傳達了他們的觀點一樣快。世界上的大腦。

如果您通過USB連接到計算機,則傳感器不是問題,因為“可以通過連接接收1000個更新”。但是,在顯示方面有兩個問題。許多製造商的顯示算法都在收到的數據上運行算法,以優化屏幕,從而延遲。即使使用優化的數據,顯示器也會自動執行此操作,因此無法跳過延遲。另一個問題是,顯示傾向於開始將數據饋入屏幕頂部,這意味著屏幕的底部是頂部後16毫秒。 “ [o] na頭安裝的顯示可能會導致世界看起來向左和向右剪切,或者在旋轉頭部時“搖擺”,因為源圖像是為了瞬間生成的,但在不同的部分顯示了不同的部分時代。”這也是為什麼Carmack和Luckey在可能的情況下嘗試使用V-Sync運行的原因,這意味著計算機在將其顯示給玩家之前就可以顯示整個圖像。

他們減少潛伏期的方式令人印象深刻。首先,他們試圖避免圖形卡的嘗試來提高性能。根據卡馬克(Carmack)的說法,“他開車贏得幀速率基準戰爭,導致駕駛員作家積極進行緩衝繪製命令,甚至在某些情況下,駕駛員以改進的“性能”的名義忽略了對Glfinish( )的明確電話。透明因此,該卡將阻礙,增加延遲,以便顯示出更高質量的圖像。為了抵消這一點,瞄準低潛伏期需求的VR耳機提供了一張已經設置在屏幕上的信息。

至少這就是理論,“在[執行VR耳機和計算機上的傳感器之間有足夠的工作準備即可立即發送到GPU》中”,因此GPU等待信息以顯示信息的時間很少。在屏幕上。

Carmac發現有兩種技術可以改善This的“旁路”和“時間翹曲”。

視圖旁路是一個系統,渲染器,程序將其從耳機的傳感器和遊戲代碼收到的數據轉換為我們在屏幕上看到的圖像的系統,可以通過耳機的新數據即時更新。這意味著,例如,渲染器已經收到了開始製作圖像所需的所有數據,並且玩家在顯示圖像之前就移動了頭,使原始圖像過時,渲染器可以獲取新信息從傳感器中,通過扭曲舊圖像的形狀,將其稍微轉移到側面或添加運動模糊來製作更相關的圖像;保持延遲較低,圖像更與玩家當前應該看到的內容更加串聯。

時間扭曲是另一種從渲染過程中剃光重要的毫秒的技術。 Carmack說:“如果您對框架的渲染需要多長時間有完整的了解,則可以通過安排整個渲染任務來節省一些額外的延遲。”當然,沒有辦法知道框架需要花費多長時間才能瞬間渲染。但是,Carmack發現“可以在渲染圖像上進行後處理任務,以便在相當可預測的時間內完成,並且可以更輕鬆地安排。”因此,VR中的時間扭曲是您在不執行後處理任務的情況下盡可能多地渲染圖像的地方。然後,您從傳感器中獲取最新信息,並運行視圖繞過,更新圖像以適合玩家應該看到的內容,然後在圖像上運行後處理通行證並將其顯示給玩家。

Carmack指出,雖然開髮用於VR,但可以使用視圖繞過和時間扭曲方法來減少游戲流技術的延遲,確保云處理器發送的圖像是最新的盡可能。

絕對查看這些過程的更深入的細節Carmack的博客

歡呼,Soulskill在Slashdot上