Abrash是計算機圖形界的泰斗,他的《Zen of Graphics Programming》曾影響了整整一代的程序員。 18年前,他與John Carmack合力完成了世界上第一個3D圖像引擎,將真正的3D世界帶到了計算機上。上個月月底,Abrash加入了Oculus成為首席科學家,與擔任Oculus CTO的Carmack再次雙劍合璧。以下是Abrash在2013年遊戲開發者大會(GCD)上的演講,主要介紹了實現VR的一些難點。
為了方便讀者,先在這裡給出一些名詞解釋。
VR:虛擬現實RR:真實現實VR的虛像:VR在現實世界中對應的像,並不存在,具有觀察者主觀感受上VR中的像應該存在與RR的位置,大小,和與觀察者所成角度等因素。
Abrash在演講之初表達了對VR的樂觀,認為VR會像當年的3D圖像引擎一般給計算機界帶來一場革命,然後他提到了現在VR主要存在3個技術上的難點。
VR的虛像必須固定在特定位置
VR首先要解決的問題是,不論頭部怎樣移動,VR給出的畫面都要讓用戶的大腦認為相同的物體出現在了相同的地點。如果VR的虛像位置與大腦預計的物體應該出現的位置稍有偏差,大腦便會告訴我們,“這不是現實”。
這說起來容易,實際上卻極為困難。首先是角度問題。由於顯示屏是平面的,當用戶頭部轉動,那之前的物體則需要出現在屏幕上不同的位置。比如在下圖中,三角形代表某VR的虛像,當用戶轉頭20°後,它出現在了屏幕上不同的位置。
其次是景深的問題。在VR中,每個物體的虛像與觀察者的距離構成了其景深,兩個一樣大小的物體在景深不同的情況下,如果觀察者的頭部轉動同一角度,在屏幕上的位移是不一樣的。也就是說每次頭部轉動,每個景深上(或者說每個像素點)的物體都要被以代入不同的角度值重新計算。
追踪必須精確
要讓VR世界中的虛像都出現在相同的位置,首先需要保證設備對觀察者的追踪是準確的。也就是說設備要能準確的追踪頭部轉動的角度,或者發生的位移,才能通過算法改變屏幕上的圖像使VR中的虛像固定在相同位置。那需要多準確? Abrash認為要達到2米外能辨別一毫米的移動這種級別的追踪才叫“足夠精準”,然而這種級別的追踪設備目前並不是消費者可以承受的。
延遲必須降到最低
事實上,VR設備遇到的最麻煩的問題是延遲,Arash通過一些空間—時間表來說明延遲所會帶來的問題。
在上圖中,x軸是距離,y軸是時間。我們可以看到,隨著時間增長,距離並沒有變化。這被用來表示RR中一個靜止的物體。
在上圖中,隨著時間的增長,物體作出了位移。這表示RR中一個移動的物體。明白?接下來我們要進入VR的世界了。
這張圖表示VR中一個移動的物體。因為屏幕每刷新一次,物體才會產生位移,所以這張時間—空間圖出現了折線:VR的虛像會在相同位置停留一段時間,在下一次刷新後產生位移。不過因為刷新的頻率很快,所以我們的大腦還是會認為VR世界中的虛像產生的是連續位移。理解?那我們繼續。
這是VR中更細節的情況,每個像素實際上可以發出三原色的光,在這張圖的情況中,三種顏色維持的時間相同,所以最後觀察者眼中的場景是一個白色的物體產生位移。 (如果背景不是白色)
前幾張圖中,我們都假設觀察者是靜止的。現在我們讓觀察者的頭從左向右快速轉動,在以觀察者為靜止點轉換坐標係後,結果如上圖所示。我們發現一個像素上,單次刷新的三種顏色的光並不會被投射到觀察者視網膜上相同的位置。
通過上圖我們可以看到,這樣的結果是這個像素的左方會是藍和綠所合成的青色,右方則是紅和綠合成的黃色,只有中間是白色。
上圖則是無數個像素組合在一起時,觀察者快速移動頭部所帶來的抖動。當然,這並非無法避免的,只要屏幕刷新的夠快,那麼上圖的抖動便會消失。 Abrash認為1000~2000次每秒的刷新頻率也許能解決這個問題。現在的遊戲一般以每秒60幀刷新,也就是VR屏幕的刷新頻率要達到現代遊戲的刷新頻率提升17~33倍才可能解決這個問題。
最後Abrash就VR在未來的發展提出了一些展望並結束了演講。
從Abrash的博客我們可以看到,他從2012年就開始把頭戴式VR設備作為自己研究的主要領域,Oculus顯然也注意到了Abrash的這次演講,並在Carmack的帶領下提出了一些對策。現在Abrash和Carmack再次齊聚一堂,他們還能創造當年的Quake 3D引擎那樣的奇蹟嗎?我們拭目以待。
Abrash的演講PPT完整版下載。
對VR感興趣,以及喜歡計算機視覺技術的同學可以發郵箱與我交流,我的郵箱是ganyuan@36kr.com
資料來源:36Kr
請按此登錄後留言。未成為會員? 立即註冊