美軍 VR 專家說 VR 難成功,Oculus 華人工程師覺得仍言之過早

作者 | 發布日期 2016 年 06 月 01 日 10:08 | 分類 xR/AR/VR/MR , 穿戴式裝置 line share follow us in feedly line share
美軍 VR 專家說 VR 難成功,Oculus 華人工程師覺得仍言之過早


編按:本文作者胡韜是 Oculus 第二位華人工程師,參與多個 VR 專案開發,包含 Oculus 等多個早期 VR 軟體專案的開發,此文詳述了他的觀點,並試著解說 VR 所面對的問題與可能解決方法,這個第一線工程人員的觀點,絕對有著參考價值。

最近被一篇名為《美軍專家表示 VR 可能永遠不會成功》的文章洗版了,好多朋友過來問我 VR 是不是偽需求,VR 行業能走多遠?我認為,這篇文章本身包含了不少作者的個人情緒在裡面,而針對這篇文章的很多評論也多少夾雜了個人情緒和利益。我嘗試除去這些干擾,只跟大家講些事實,結論大家自己判斷。

先說一下自己的背景,我於 2014 年 7 月加入 Oculus,當時 Oculus 剛被 Facebook 以 23 億美元收購。我有幸參與不少早期 VR 軟體的開發(Oculus Store、Oculus Video、Oculus Social),眼看著 Rift、Gear 從粗糙的開發者版本逐漸迭代為成熟的消費者版本。與此同時,整個 VR 產業在 Oculus 和其他廠商的推動下逐漸浮出水面。當然,最興奮的還是可以和偶像 John Carmack 一起工作。(關於 John Carmack 的故事,一天一夜都講不完,有興趣的朋友可以翻閱《Masters of Doom》)

回到美軍專家 Steve Blake 的那篇文章,他的核心觀點是說配戴 VR 裝置時的噁心眩暈問題(英文有很多種說法,包括 nausea、motion sickness、simulator sickness 等,以下簡稱 「眩暈」)無法解決。

首先,我們來看看 「到底是什麼原因導致了眩暈?」Oculus 的開發者部落格上其實已經有一篇文章系統性地論述了這一問題(VR Sickness, The Rift, and How Game Developers Can Help)。文章寫於 2013 年,作者是 Tom Forsyth,一名縱橫遊戲業二十多年的老兵,曾在 Valve、Intel、 RAD Game Tools 工作過。他描述了導致眩暈的一些原因:

一、可以解決的

主要有如下 4 點:

1. 錯誤的畸變校正(Distortion Correction)

為了增強使用者的沉浸感,VR 裝置會採用一組放大鏡片來擴大用戶的 FOV(Field of View,視角),原理和廣角鏡頭是一樣的。但是,視角擴大的同時,圖像也會發生畸變。傳統的思路是從鏡片著手,採用昂貴的非球面鏡片來儘量減小圖像的畸變。而 Carmack 則逆勢思惟,在圖像渲染時直接進行逆向畸變,然後經由透鏡來抵消這一畸變。這樣做的好處是顯而易見的,它減去了採用非球面鏡片所帶來的額外成本。而這樣做的挑戰在於需要精確地計算逆向畸變的參數值。如果數值不準確,使用者經由透鏡看到的圖像依舊會帶有畸變,進而產生眩暈。幸運的是,主流廠商(Oculus、HTC、Google Cardboard、PSVR)都在他們提供的 SDK(Software Development Kit,開發者工具包)裡幫開發者解決了這一問題。

VR

2. 錯誤的瞳孔距參數(IPD,Interpupillary Distance)

在模擬 3D 成像時,渲染在螢幕上的圖像會分為左右兩螢幕,分別模擬人的左右兩眼所看到的圖像。這兩個圖像基本相似,除了些微的差異(這點大家在上面的圖片中也可以看到)。差異的大小取決於人的瞳孔距,而不同人的瞳孔距是不同的。所以,在進行圖像渲染時,就需要考慮使用者的實際瞳孔距。 如果瞳孔距參數設置的不合適,使用者就無法聚焦,從而產生眩暈感。在之前的 DK2 開發者版本中,Oculus 提供了參數設置工具來讓使用者提前設置自己的瞳孔距參數。而在最新的 Rift 消費者版本中,Oculus 更進一步,直接提供了一個硬體開關來動態調節瞳孔距參數。

3. 高延遲(Latency)

美軍專家 Steve 也在文章中提到了延遲問題。這裡的延遲,指的是使用者產生輸入(如頭部轉動)到使用者看到圖像變化之間的時間差,如果延遲夠大,就會在使用者所感知的行動和實際所見之間產生錯位,造成眩暈。Oculus 首席科學家 Michael Abrash 有一篇文章專門討論這個問題(《Latency – the sine qua non of AR and VR》)。 這篇文章寫於 2012 年底,對導致延遲的原因做了精確的闡述。以頭部轉動為例,從使用者轉動頭部到實際看到眼前圖像變化,需要經歷 3 個環節:傳感器檢測到頭部轉動角的變化→ CPU 計算出新的需要渲染的圖像 → 螢幕更新圖像。每個環節都會產生延遲,當總延遲高於 15ms 時,就會產生較為明顯的眩暈。文章還指出了相應的解決方案:使用高刷新率的傳感器和 OLED 螢幕。做為 Michael 20 年的老朋友,Carmack 透過工程努力以及推動 Oculus 與三星之間的合作,完美實現了這一方案。另外,Carmack 還在第二個環節做了進一步的最佳化,引入 ATW(Asynchronous Timewarp),把延遲控制在 15ms 以內。這裡面的精彩故事可以從 Carmack 在 Oculus Connect 上的演講中找到。

4. 不符合 VR 的產品設計準則

VR 應用的開發和傳統 3D 遊戲的開發有不少相似性,但因為 VR 提供了全新的互動方式,兩者又有很多不同。Valve 的 Joe Ludwig 專門寫過一篇文章來闡述 VR 應用開發和傳統 3D 遊戲開發的不同以及注意點(《Lessons learned porting Team Fortress 2 to Virtual Reality》)。

 

二、無法解決的

正如美軍專家 Steve 所描述的,這裡面主要有兩類:

缺乏深度訊息:正常人眼在觀看物體的時候,是有焦距的,不同焦距對應不同的視角,在視角內的圖像,會很清晰,而在視角外的,就會比較模糊。玩過單眼的朋友應該對此有較深刻的體會。但是,目前的 VR 裝置在進行圖像渲染時,並沒有考慮焦距,都是默認焦距為無限遠(即所有的物體都能清晰看到)。這個問題其實並不是非常嚴重,但有少部分人會因為這一原因而導致眼睛疲勞,造成眩暈。

focal length

運動訊息感知的錯位:這裡導致眩暈的原因其實和之前所述的延遲類似,即使用者所感知的行動和實際所見產生了錯位,更深層次的原因是視覺神經和前庭刺激(vestibular stimuli)之間無法達成一致。比如說,使用者在 VR 世界裡玩跑酷遊戲,但是在現實世界中卻靜坐著。其實,現實生活中的一些眩暈,也是由這個原因導致的,比如說暈車、暈船。

Tom Forsyth 的這篇文章寫於 2013 年 6 月,事實上,在 2016 年的今天,我們再回頭去看,上面所說的兩個無法解決的問題,都已經得到一定程度的解決。最新的 AR 裝置,已經可以展示深度訊息(參考矽谷小夥伴 Amber 的文章 Magic Leap 和微軟的 Hololens 相比有哪些異同點?, 他詳細描述了 Lightfield Display 技術);而最新的 VR 裝置,已經完成了位置追蹤(positional tracking),意味著使用者在真實世界中的移動可以一對一的映射到虛擬世界中。而諸如 Virtuix Omni 這樣的硬體,也在嘗試解決如何在虛擬世界裡自由奔跑的問題。

另外,在產品設計層面,開發者們也有很多創新。Steve 所說的第一人稱模擬飛行是 VR 裡最容易導致眩暈的一類應用(視覺神經和前庭刺激有非常強烈的不一致),但是使用者又偏偏非常喜歡這種類型的應用。於是,機智的開發者們透過各種產品設計層面的創新,來滿足使用者的需求。無論是 GearVR 上的 Smash Hit,還是即將上線 Oculus Rift 的 Eagle Flight,都是其中的典範。

36Kr 配圖

好了,講到這裡,我相信大家對於美軍專家 Steve 的觀點,已經有了更全面的認識。Steve 的觀點,放在 2016 年的今天,是很難站住腳的。另外,在其餘一些來自他的判斷中,也有不少有漏洞,具體如下:

  1. 「每個人都覺得這些裝置是嶄新且具有革命性的,但這不是真相。在這兩年發生的事情,僅僅是這些裝置的價格從 8 萬美元跌到 500 美元。我們並沒有做出太多技術上的創新」,這個論據非常脆弱,位置追蹤和手勢追蹤(hand tracking),都是當代 VR 裝置的核心技術,這些技術在 20 年前都是不存在的。
  2. 「目前大多數 Demo 都是宣傳性質的,在其他的行業展會上通常都是只有幾分鐘長的 VR 內容。我不知道這些廠商是不是故意這樣做的……這也解釋了為什麼這麼多人認為他們喜歡 VR」,這是典型的陰謀論,事實上,早期的 demo 都只有幾分鐘長,是因為他們真的只是 「demo」。Oculus 即將上線的三十多款應用程式,每一款都可以讓使用者體驗好多個 「幾分鐘」。
  3. 「我們都是專家,知道自己在做什麼,但當你站在我們的實驗室裡舉目四望,會發現沒有一個人戴著 Oculus。僅在很少數的情況下,研究人員會戴上 VR,只是為了確認一些內容,然後在 30 秒內摘下來。大多數時候,我們都是在並排放置的兩個顯示器上觀察視覺效果。當專案最終完成時,因為再也不用帶這些頭盔了,我們所有人都很開心。」 工程師不在開發時戴 VR 裝置,並不是不喜歡 VR,而是因為戴上後就沒辦法進行開發了。雖然 Unity/Unreal 都在嘗試 VR Editor(可以利用頭戴 VR 裝置進行開發),但目前階段效率最高的還是在 PC 上開發,然後必要時戴上 VR 裝置檢查效果。另外,專案完成了,大家都很開心,難道不是因為專案完美收工嗎?

在矽谷的各種 VR 展會上,經常能碰到一些十幾年前就心懷 VR 夢想的技術人員,他們對這個領域傾注的熱情,是常人難以想像的。正是這群人十幾年的技術積累,使 VR 在今天有可能走進每個人的生活。文末,引用 Michael Abrash 在 Oculus Connect 上的一句話,和所有關注 VR 行業的大家共勉。

「VR 時代正在來臨,這一段崎嶇的小路能否走通,靠的是幾千個關鍵人物的行動——這裡面很可能就包括你。這也許讓人難以置信,然而我完全堅定。」

「VR is coming, but the path it takes depends on the actions of a few thousand key people, potentially including you. That may be hard to believe, but I’ m completely serious.」

本文作者胡韜( taohu.usc@gmail.com),畢業於南加州大學,Oculus 第二位華人工程師。胡韜曾參與 Oculus 多個 VR 軟體項目的開發(Oculus Store, Oculus Video, Oculus Social),目睹 Rift/Gear 從粗糙的開發者版本逐漸迭代為成熟的消費者版本,並經歷瞭整個 VR 產業鏈的崛起和逐漸完備並走自商業化。本文由作者同意授權轉載。

(首圖來源:Flickr/Sergey Galyonkin CC BY 2.0)