當我們遇上 VR:VR 技術在應用上的難題(下)-《VR 來了》
編按:虛擬實境技術已經從科幻電影邁入實境應用的科技,本文選自該書《VR來了!:第一本虛擬實境專書 VR發展史、當紅產品介紹、未來應用解析》的第三章(VR 科技落時,各廠爭相分食),講述 VR 技術在面對「遲滯」所需要解決的問題,而 Oculus(美國虛擬實境科技公司)又該如何應對?
繼 Google、iPhone 改變世界之後,下一個就是 Oculus
經過大量實驗,Oculus 的工作人員估計這個敏感值在 20 毫秒左右。一旦跨越這個數字,設備的現實感將大大提高。這個數字比 Oculus 的開發者版本要低了將近一半,顯然他們還有大量改良創新工作要做。
實際上,從輸入到輸出要經過以下 6 個步驟,而這中間每一步都對遲滯有「貢獻」:①用戶輸入指令 → ②指令經由網路線,從虛擬設備傳輸給電腦上的遊戲引擎 → ③遊戲引擎把指令「翻譯」給電腦的顯卡 → ④顯卡發出指令要求生成新圖像 → ⑤虛擬設備的顯示端開始輸出這幅新圖像 → ⑥新圖像完整顯示出來。
那麼,Oculus 第一步要做的就是縮短輸入端產生的遲滯,即加快處理器的轉譯速度。這就是個硬體問題。新款 Rift 頭盔擁有一套專利的慣性測量組件,用陀螺儀、加速計、磁力計的數據即時估測頭部動作,把原來 15 毫秒的指令輸入時間縮短到 1 毫秒之內,當然指令傳到電腦還需要 1~2 毫秒,這方面除非USB(Universal Serial Bus)技術出現顛覆性創新,否則沒法再改進了。
此時,降低遲滯的重任就交到了內容開發者身上。現在大部分遊戲的幀率在 60 fps左右,透過簡單的運算,可以得出 1 幅遊戲圖像需要 16.67 毫秒來進行渲染並推送給 GPU 處理。但如果開發者能把幀率提高到 120 fps,那麼就只需要 8 毫秒來渲染一幅圖像。電腦遊戲倒不是沒有高幀率的先例,但目前 Oculus 還是得先應對普遍情況,也就是 16.67 毫秒的渲染時間。
不過此時,遲滯已被大大縮短,接近 20 毫秒的目標了。接下來的問題在於顯示輸出。一幅圖像由許許多多像素組成,某些像素很快就能轉換成指令顏色,比如黑色像素變成白色只需不到 10 毫秒,但是,灰色像素要變得更淺一些,則需要將近 30 毫秒。為了節省時間,一旦收到 GPU 指令,所有像素都是即時開始切換顏色的;Rift 從圖像底端開始向上輸出,所以 GPU 在傳最上面那行的圖像指令時,下半部的圖像已經顯示出來了。
即使是這樣,完整的圖像輸出仍需要 20~30 毫秒。由於圖像計算和輸出指令幾乎是同時發生的,所以 1 個 60 fps 的遊戲,整個流程還是要花上 40 毫秒,太慢了。
好在,Oculus 還有些方法。實際上,像素切換要花那麼長時間,關鍵在於 LCD 螢幕上。目前的 OLED 技術可以在微秒之間完成切換。那麼消費版本的 Oculus Rift 會不會用上 OLED 螢幕呢?Oculus 還沒決定,難點在於世界上只有一家製造商擁有符合需求的 OLED 技術 - SAMSUNG,而 SAMSUNG 從來沒把自己的技術賣給過任何第三方。
這並不是說 Oculus 沒有考慮其它形式的展示技術。作為他們與 Valve 合作關係的一部分成果,兩家公司合力研發了一款採用 OLED 螢幕的原型機,這款原型第一次把 Rift 的遲滯降到了 20 毫秒以下。那麼這塊 OLED 螢幕是哪兒來的呢?Oculus 為了完成這款原型機,他們拆了一台手機,雖然官方解釋並沒有說是哪款手機,但顯然那是台 SAMSUNG Galaxy S4。在使用了這台原型機之後,Oculus 的 CEO 艾里布在使用上並沒有出現任何眩暈的症狀。乃至於製作好這台原型機的第一時間,艾里布就聯繫了馬克‧安德森,要他馬上坐飛機前來公司。
Andreessen Horowitz 公司的另一位投資人克里斯‧迪克森(Chris Dixon)是少數見過這款原型機的人之一。對這款原型機,他在後來的評論中說到:
我們那時候已經見過 Oculus 的開發版了,我們覺得它很不錯,但延滯確實明顯。等我們看到了 Oculus 新版本的原型機,我們頓時感覺所有問題都解決了。我們這輩子到現在,一共也就看到過幾個產品的演示讓我們覺得它們會改變世界:Apple II、Netscape、Google、iPhone……然後就是 Oculus 了。
跨越遲滯問題之後,革命仍未完成
不過,這款原型機能解決延滯,不僅僅是 OLED 顯示技術的功勞。Rift 的 3 個頭部傳感追蹤組件也把採集數據的速度提高到第一代的 4 倍,達到了 1000 次/每秒。這不僅有助於削減延滯,更真正做到了在玩家動作前就預測出他的頭部移動方向。這種技術並不是實質上解決延滯,但透過讓用戶更快看到圖像,縮短用戶所感受到的延滯,縮短了大約 10 毫秒。
舉例來說,如果頭部移動很快,是無法馬上靜止不動的,減速總是有個過程,所以可以根據前面的數據報告,預測使用者接下來的動作,也就是說 Rift 會判斷用戶的頭部動作,提前顯示出來。然後,當頭部動作慢下來了,預測的提前量也隨之降到 0,這個時候就不需要提前渲染了,等需要時,也就是當使用者頭部做出新的動作,預測提前量又會隨著頭部運動速度再次展開。
在 Oculus 解決遲滯問題的過程中,還有一個人不能忽視 - 約翰‧卡馬克。當他 2013 年 8 月作為 CTO(Chief Technology Officer,技術長)正式加盟 Oculus 之前,這位圖像魔術師已經在自己的部落格上寫過不少文章討論如何從改變 GPU 輸出方式來減少延滯。隨著他的加盟,Oculus 和英偉達(NVIDIA)、高通(Qualcomm)、超微(AMD) 這些著名的GPU製造商都有了接觸,試圖透過和他們的溝通,確認現在生產的個人電腦以及下一代的安卓(Android)手機擁有能夠支援 Oculus Rift的 GPU,以達到高品質的體驗。因為 Oculus 並不希望用戶為了使用 Rift 還要額外買一張顯卡。
- 本文出自寫樂文化出版《VR來了!:第一本虛擬實境專書 VR發展史、當紅產品介紹、未來應用解析》
- 書名:《VR來了!:第一本虛擬實境專書 VR發展史、當紅產品介紹、未來應用解析》
- 出版社:寫樂文化
- 作者: 才華有限實驗室
留言討論