Oculus Connect 2 首席科學家 Michael Abrash 發言實錄|極客視界
去年三月份,傳奇圖形程序員 Michael Abrash加入 Oculus,以首席科學家 (Chief Scientist) 的身份再次跟 John Carmack 站在了一起,而此時距卡神成為 Oculus 的 CTO 已經快一年了。半個月前的 Oculus Connect 2 大會上,Michael Abrash 和 John Carmack 分別做了精彩的發言 (視頻在這裡和這裡)。其中卡神的發言技術和工程細節較多,更適合已經在 VR 一線的開發人員。而 Abrash 則在半小時的 keynote 中,集中展示了 Oculus 的研究機構 Oculus Research 在 VR 的研究和探索中遇到的各方面的難題,關鍵的挑戰和已經取得的一些進展。相較卡神一開口就根本停不下來的意識流,Abrash 的發言更加概括和完整,很適合從全景上了解 VR/AR 技術,對一般的開發人員也有一些啟發性,所以俺擇要記錄了一下,以備日後參考。Abrash 上來時先煽情了一下,告訴大家他對 VR 近年的進展感到十分吃驚和興奮,「就在幾年前,虛擬現實的這一切還是完全不可想像的,我們對這幾年的技術進展感到興奮也是完全應該的……真正有趣的一點在於,我們不過是剛剛見識到 VR 的基本功能,接下來數十年的虛擬現實新方法和新體驗還有待於我們進一步去發掘……」 和那些一窩蜂跑到這個行業里來淘金的人不同,對 VR 這一可能深刻地影響和改變人們生活方式的技術,Abrash 言語間洋溢著技術人員所特有的巨大熱情。
緊接著,Abrash 很有感情地講了一個 "Good-old-days」(流金歲月) 的小故事。當他 92 年左右還在西雅圖為微軟做第一代 Windows NT (這貨後來居上,淘汰了 Win95/98/ME 的實現,成為後來所有 Windows 的內核基礎) 的開發時,有一次開會,他跟行業傳奇Dave Cutler 正好走在一起,兩個人沒說話默默地走了一段之後,Dave 突然轉過來對 Abrash 說:「You know, these are the good old days」 把他嚇了一跳,「I don"t think I would have been more startled if Dave announced he was a martian.」 (就算 Dave 說他是火星人我都沒法更震驚了) 當時 Abrash 很不以為然,哥你別開玩笑了好不,天天加班干到吐血,品控嚴得讓人髮指,壓力這麼大你居然好意思說這是「Good old days」,該吃藥了吧。
後來呢,Abrash 動情地說到,Dave 居然是對的,很多年後他回過頭去,對 Windows NT 的那段工作經歷,他印象最深的就是親密無間的協作氛圍 (teamwork),戰友之間的滿滿基情 (camaraderie),和作為一個整體取得的巨大成就 (accomplishment)。每當想到他曾參與設計和實現了一個 OS 的核心部分,而這個 OS 在過去的15年里成為數以億計的人幾乎每天都需要使用的工具,他就覺得這段經歷非常的可貴,沒有什麼比這更符合 「Good old days」 了,而身處局中的人往往沒有意識到自己正在參與什麼和改變什麼。Abrash 說到,他希望來參加 Connect 的各路英雄能意識到,「我們是如此地、令人難以置信地幸運,能夠有機會成為虛擬現實行業的開拓者。」
「我們在創造一種讓人們與機器進行互動的全新方式,一種有可能重新定義我們幾乎所有的工作、娛樂以及互動方式的全新技術。這樣的人生際遇在人的一生中最多也就碰上一到兩次……」滿滿的使命感,和終於能在有生之年有機會去推動這場深刻變革的幸運感,讓 Michael Abrash 看起來完全不像是一個寫了一輩子代碼,快到退休年紀的程序員,在他和卡馬克的眼神中,你能隨時看到一種壓倒性的純粹的熱情,這是他們最大的共同之處。
VR 技術允許每一個人在虛擬空間里去真切地感受和創造,這種造物主般的感覺不再被程序和美術獨享,每個人都有機會去創造和利用屬於自己的獨一無二的虛擬世界 (正如 Star Trek 里著名的全息甲板 (Holodeck) 和 Matrix 里的母體)。
在暢想了一番 VR 對日常生活的巨大變革之後,Abrash 切入正題,「虛擬現實的未來將基於以下三大基礎建立起來」,分別是對(人類)生理感知系統的驅動,和對(真實或虛擬世界的)重建和(主體與客體之間的)交互。
先從感知系統說起,Abrash 展示了一個例子,向我們說明了人類的感知系統在百萬年的進化後,是如何通過獲取極為有限的外界信息,再加上了無數先驗的經驗假設,來在腦海中重建世界的狀態的。在這個過程中,經驗假設往往比我們意識到的要重要。
注意看,這看上去是一個有兩條平行屋脊的頂棚。但是,當後面鏡子上的布被拿掉時,你可以看到鏡中的映像:
居然是一個拱頂。(轉動的視頻請見 6"40")下面是不同角度時的狀況:
這裡的要點是,理解了視覺系統是如何令你的感知系統下意識地做出符合經驗的判斷之後,就能玩些花樣,讓你「看」到實際上並不存在的東西。這個例子生動地展示了「我們體驗到的「真實」情境,實際上是我們的感知和大腦讓我們「感覺」真實的東西 (並不一定與客觀世界相符)」 (the reality we experience is whatever the perceptual system and brain say it is) (所謂「眼見」不一定「為實」)這給了 VR 一個獨特的機會 (以恰當的方式) 去驅動著我們的感知系統來誘使我們「感覺上真實」 (feel real)。對感知系統控制得越好,VR 的體驗就會越好。
正如上圖,感知系統主要是經常說到的五感:視覺,聽覺,觸覺,嗅覺和味覺,再加上 (用於感知速度,加速度,空間位置和控制平衡) 的前庭系統 (vestibular)。緊接著 Abrash 分別談了一下在這五個方面的研究分別處於什麼階段。
先說說味覺 (Taste),Abrash 打趣地說,即使有能產生適當味覺的系統,也很難想像14個人用起來是啥感受 (一個手柄可以大家輪流玩,一個冰激凌輪流吃就有點……)。而且咀嚼和吞咽也是味覺 (taste) 的一部分,這方面的研究目前短期內還看不到什麼起色。考慮到味覺對整體的虛擬體驗影響並不大,就留給以後的研究人員吧。
接下來是嗅覺 (Smell)。嗅覺往往與記憶和情緒有著強烈的關聯 (has powerful memory and emotional associations) 但非常複雜 (surprisingly complicated)。可能你會覺得在鼻子附近按某種預設的順序和劑量釋放一些氣體分子就能很好地模擬了,但實際上氣味的傳播方式差異很大 (並非均勻散射傳播),而我們的鼻子是很敏感的;而且跟三原色不同,並沒有那種嗅覺元素 (primary smells) 可以混合成各種我們能感受到的氣味 (所以恰當的模擬可能需要幾千種不同的分子);由於液體分子的持續性和粘性,用於結束當前氣味的中央清除器 (central erasers) 本身可能會產生各種氣味。所以總得來說嗅覺的模擬潛力很大,但需要進一步突破性的進展。
然後是前庭系統 (Vestibular System)。前庭系統相當於我們人體內置的加速感測器 (accelerometer) 和陀螺儀 (gyroscope) 通過感知人體速度和朝向的變化,來協助大腦持續地判斷空間位置和維持平衡感。對於 VR 來說前庭具有特殊的重要性,因為前庭感知視覺感知的衝突是 VR 造成不適的關鍵性因素 (比如你看到了自己正從空中猛衝向地面,但前庭缺乏對應的感知,就會產生不適)。
很多人玩第一人稱視角射擊 (FPS) 會暈也是同樣的原因:視覺上的旋轉和加減速缺乏來自前庭的協同反饋。說到這兒,Abrash 無奈地把 Carmack 的照片放出來,「……但令人懊惱的是,某些人就完全不受影響」 (全場哄堂大笑)。
可以使用表面電極來刺激前庭,但由於顱骨的隔離,實際感受糙了點。要想做到精細的控制,只有把電極透過顱骨植入內部,Abrash 說,要真得這樣就算是最硬核的玩家也不見得雙手支持吧。哎,又是腦後插管的節奏啊。
然後是聽覺 (Hearing)。Abrash 和 Carmack 都覺得,聽覺對好的 VR 體驗非常重要 (Carmack 在隨後的 keynote 里也強調了這一點),而且現有技術已經比較成熟。但這並不意味著實現好的視聽效果很簡單。聽覺的模擬有三個基本的元素:Synthesis(合成), Propagation(傳播), Spatialization(空間化)。
Synthesis (合成) 是源音效的產生過程 (the creation of source sounds)。目前的做法是用預先錄製的波形來混合重放,但最終應該是由對物理過程的正確模擬來產生聲音的 (比如表面振動)。可以想見的是,這個運算量將會是怪獸級的 (unbelievably computationally intensive)。
Propagation (傳播) 是音效在空間中的傳播過程 (how sound moves around the space)。Abrash 原先認為傳播的處理相對容易一些,運算量會小一些,但後來發現並非如此。兩個原因,其一,跟光線不一樣的是,不同頻率的聲波相互之間的折射,反射和干涉的程度非常不同;其二,(同樣是) 跟光波不同,聲音的傳播慢到人們能顯著體驗到這種延遲 (閃電和雷聲)。「……這就意味著聲音必須被模擬成許多頻段上的 3D 時間序列,這就比當前為每一幀圖像生成一個及時的全局性聲音方案要昂貴多了。」 總得來說這是一個運算量的問題,而在考慮空間上的複雜度的情況下得出一個通用的方案,目前仍然是一個未解決的問題。
Spatialization (空間化) 是 (相對於接收者而言的) 聲音在空間中的方向 (the direction of incoming sound)。理想情況下這應該是 Sound Propagation 的一部分,但現在可以用 HRTF (head-related transfer function (HRTF)) 來比較好地模擬聲音如何到達空間內一個特定的接收者,並轉化為聲波穿過耳道到達鼓膜。但 HRTF 所需的硬體還很龐大,目前還無法裝備到消費級的設備上。
總得來說,我們對聲音的原理和公式已經非常熟悉了,但談到真實且實時的模擬,即使是一個小房間內的幾個移動的發聲體在目前都還很遙遠 (運算量上幾個數量級的差距)。成熟的真實聲音模擬,還需要若干年的技術積累。(聽到這裡,我明白過來,目前音效的技術能力如果與圖形類比的話,差不多相當於 2D 圖像處理,而真實感的聲音模擬對應的就是 3D 圖形學)
接下來是對 VR 最為重要的視覺 (Vision),這是我們最熟悉也是研究最充分的一種物理現象。在 VR 的體驗中,主要關心的是下面這五種屬性的結合:
足夠寬的視野,足夠好的圖像質量,任意變焦,HDR,更好的人體工程學。這些因素都需要改進,但不少情況下它們是彼此衝突的,現在實踐上是各種 tradeoff(折衷) 來平衡之。
這張圖裡列出了一些期望作為對比。細節可以看圖就不多說了。
最後是觸覺 (Haptics),目前還沒有任何科技,能有效地模擬真實世界的觸摸感受。在感知系統這一節的結尾,Abrash 做了一個兩個小球相交的小實驗 (需要看視頻 20"20"),來說明我們在認知心理學上的巨大挑戰。
說完了感知系統,接下來是第二部分 Sense & Reconstructing Reality(感知並重建現實環境)
Abrash 放了一段視頻,這是他們 Surreal Vision Team 的新同事 Richard NewComb 的成果。
這對 VR 來說還不夠好,「讓所有這一切能夠工作,需要從重建流程上重新思考整個的感知過程,從硬體和軟體的底層重新做起。」這是另一段同樣來自 Surreal Vision Team 的視頻,整個真實世界重建的過程是自動化和無縫實時的,注意其中材質,光照和陰影的模擬。(推薦觀看)
最後是第三部分 Interaction(交互)
這裡的研究要點在於「讓手能夠充當一個靈巧的虛擬操縱者」。不知為啥,看到這兒我想起了 Quake III 里的電鋸。這裡的難點在於「完全重現真實的運動學」。
比如上面這張桌子,目前沒有有效的辦法來讓你 (在虛擬世界中) 的手被一張 (虛擬的) 桌子擋住。這需要新的觸感科技,以及配套的交互語言 (就好像剛剛發明滑鼠時那樣)。把上面三個領域的這些挑戰列一下,就得到了這張表 (可以看做是現在 Oculus Research 的研究課題列表)。
Abrash 放了一段視頻,頭戴設備內的面部表情感知 (與南加州大學的合作),這是其中一個交叉學科研究的例子。
面對這些世界級的課題,尤其是一些交叉合作的課題,需要非常大的直面困難的勇氣。說到這裡,Abrash 提起了曾在 id software 與卡神共事的經歷,又開始講小故事了。
那時卡神才剛剛能讓 Quake 實時地跑起來,在那個時間點上,在地圖內來回跑動已經比較流暢,但偶爾會非常卡,問題出在過度繪製 (Overdrawn) 上。那時的 Quake 畫下了視錐內所有的多邊形,當往一個複雜度很高的角度看過去時,很多被擋住的物體被一層層地刷在 framebuffer 上,而那時候還沒有有效的可見性檢測演算法。卡神那時一直在想各種辦法,來剔除那些不可見的物體。他試了各種不同的演算法 (見下圖左半邊部分),看起來都很挺有潛力,但都各有缺點。
後來他嘗試了直接從場景 BSP 中提取可見信息 (右半部分),忙活了一個周末,在周一的凌晨 3:30 John 理出了 PVS 的頭緒,徹底地解決了這個問題。這裡 Abrash 複述了他在著名的黑皮書 (Michael Abrash"s Graphics Programming Black Book) 里提到過的一段話,值得記錄一下:
John (指 Carmack)說預先計算 PVS 是他一直在考慮的那些方法的合理演化,這個過程中他並沒有見識到傳說中的 "Eureka!」 時刻。儘管如此,這顯然還是一項突破,是全新的、非凡的設計。這一方案同一直在不斷發展的存儲器光柵程序一起,完全消除了重複繪製,非常接近我們最開始所列出的「完美世界」的細節。……所有真正傑出的設計,一旦被設計好,看起來都是簡潔甚至顯而易見的。但獲取到傑出設計的過程,則需要那種難以置信的耐心與意願去嘗試大量不同的方法,直至最終收穫到正確的那個方法,就像本文中所發生的那樣。……我的朋友 Terje Mathisen 常常喜歡這樣說,「幾乎所有的編程都可以看作是使用 cache 的練習。」而 John 正是這樣做出來的。不管他的 VSD 計算有多快,也不可能跟預先計算與查找可見性一樣快,而他最具靈性的一步就是及時跳出了尋求「更快的代碼」的誤區,並意識到預先計算(具體而言是使用 cache)和查找 PVS 確實是可行的。……世界上最難的事情就是,面對一個難題時,撇開熟悉的、相對靠譜的解決方案來尋求一種不同的、更為優秀的辦法。要做到這一點,最好的方式就是不斷嘗試新奇的東西,同時總是要力求實現最簡化。John 正是有著一個這樣的目標,要讓每一個 3D 遊戲的代碼行數都比前一代更少,他的理由是,當他掌握得更多時,他就應當能用更少的代碼來把問題處理得更好。
最後,Abrash 提到這本具有傳奇意義的,影響和激勵了無數人 (包括他和 Carmack) 的書。
是的,「These are the good old days」。
下面的評論里有兩條很有意思 (後一條是前一條的回復),摘錄一下:HowAbout NoSon說真的,這都說的一堆什麼玩意兒!說到底不過是一句「請支持我們的平台,儘管目前我們還沒有什麼軟體」,以及「我們還不知道如何來解決那些尚不明顯的問題之中的任何一個。」這對於提升 Oculus 的價值毫無意義。
Tim Robb「請支持我們的平台,它還在繼續開拓虛擬現實這個極難取得突破的領域,可不管當下的這些挑戰有多難,我們還是得出了一個依舊能讓人們欣喜的結果。請支持我們的平台,這僅僅才是一個開始。它依舊需要極其重度的研究和開發才能提供出的偉大的虛擬現實體驗。」這是一種尚未被大眾所熟知的體驗。當然,他們還沒能完成所有軟體的構建工作,LOL(大笑)。試問新一代遊戲主機發布前數月,有多少遊戲能完全支持它?一個也沒有。它們全都是在遊戲主機上市後才去做調整的。Oculus Connect 是一場大型的活動。世界各地的開發者都在試著從中獲取經驗。我們在 Oculus Rift 上市那天還能看到這麼多嗎?可能會有幾個。但你絕對可以打賭,在這群開發者的故鄉還有更多的人在從事於此。你不肯打賭也沒關係。畢竟這只是一個提供給早期用戶的演示版本。有超過50%的消費者根本不會購買一個還不夠完善的產品,很有可能明年晚些時候,這一階段才會過去。你也可以到那時再來打賭!對你來說也更穩妥一些,而不像現在會冒很大的風險。我們這群早期的使用者和身處前沿的開發者,將會是確保你能擁有愉悅的使用體驗的那批人。通過我們的反饋和創造,最終的平台也將包含有我們的一部分在裡面。這就是我們所做的事情、為什麼我們會來做這事,以及我們為什麼會像這樣來看待事情。
是的,很多很多困難。其中不少困難,不要說工程實踐,甚至從理論上都還沒有答案。越是深刻的影響和改變,越是需要時間去成熟,消化和沉澱。正是因為我能感受到 VR 將多麼深刻地改變我們的生活,才明白這絕不是短期就會成熟落地的科技(正如互聯網從興起到真正地改變生活)。而這正是我對先行者的欽佩之處,也是我記錄此文的初衷。[2015-10-18]via: Gu Lu"s Blog
推薦閱讀:
※中國玩家無緣虛擬顯示頭盔OculusRift
※現在國產VR哪家好,和國外的差距有多大?
※Oculus Rift添新周邊:體感槍讓射擊感更逼真
※Oculus Rift 頭戴 3D 顯示頭盔的實際上手體驗如何?
※如何看待華為頭顯VR 2發布呢?