0
雷鋒網(wǎng)按:本文作者為元代碼及VR空間StrongVR創(chuàng)始人Nada。
最近,ZeniMax 和 Oculus 的官司鬧得沸沸揚(yáng)揚(yáng),集中在是不是 John Carmack 為當(dāng)時的原型機(jī)做了大的貢獻(xiàn),而 Palmer 只是配角而已。好在,在開源社區(qū)流行的早期年代,一切都留下了歷史的痕跡。這一次,幾乎是歷史的全貌。以下為 John Carmack 在2012年4月4日發(fā)布的帖子,講述了他拿到 Palmer 寄給他的原型機(jī)的第一印象,原帖位于 MTBS3D 上。
John Carmack
和 Oculus Rift 在一起的一天
在下個月我會去做幾個演示,Palmer 大方地把他其中一個測試原型機(jī)和其它一些配件借給我讓我展示。以下,是我在調(diào)試了一天之后的一些初步印象:
當(dāng)我第一次點(diǎn)亮設(shè)備時,貌似屏幕嚴(yán)重偏離中心,不過最終問題是 VGA 模擬輸入信號的鍋,Palmer 之前已經(jīng)遇到過。修正辦法是用不同的水平時序參數(shù)制作一個定制的顯示模式。我計劃用一個有數(shù)碼界面的面板,可能能解決這個問題。
USB 線材的電源部分也很麻煩 – 通過 USB 轉(zhuǎn)接或延長線都不行,只有直接接入我電腦才能運(yùn)行。當(dāng)接入臺式電源時我發(fā)現(xiàn)必須要5.2v的電源才能啟動它,貌似是電壓方面的限制而非電流。
看起來要么是鏡片要么是鼻子切割得有點(diǎn)偏離中心,因為有時候我能在左眼部分看到右眼部分的邊緣。有意思的是,當(dāng)你往左轉(zhuǎn)頭看的時候才會比較明顯,看的時候設(shè)備會被頭部運(yùn)動得往左移動一點(diǎn),讓它能看到右邊的視野邊緣。當(dāng)場景左右的亮度不一致時,特別明顯。我試了一下,給鏡片一些物理上的遮擋以及在渲染的圖像中留下一些空隙都有些許效果,但要完全消除掉視野里的那些閃爍,會放棄掉太多的分辨率。正確的辦法是有一個物理的薄的遮擋,豎在屏幕中央以避免兩只眼互相看到對方的內(nèi)容。
我測量了一下水平的可視角度,大約是剛剛低于單眼90°(完整的雙眼重疊)。但是當(dāng)你第一次透過鏡片觀看的時候,你能非常清晰的感覺到屏幕的左右邊緣。豎直方向的可視角度倒是很大,只有使勁把眼睛往里面伸,才能看到屏的上下邊緣。水平的像素只有640,而豎直的像素能有單眼800,加上鏡片浪費(fèi)的像素,豎直的可視角度比水平可視角度要大1/3,所有的像素?fù)p失都在外邊緣上。最后我用膠帶擋住了鏡片的外沿,比起在聚焦平面上看到屏幕邊緣,帶來了更好的沉浸感。這個方案最大化了受限的面板像素使用率,但也許更好的方式是忽略那160個掃描線,只使用 1280 × 640 分辨率以及一個完全不對成的可視角度,只要能在 HMD 的空間大小里用目前的鏡片來實現(xiàn)。
這里有個細(xì)節(jié)。視角投像矩陣的正中央并不位于 640 × 800 的中央,而比較靠外,也就是說并非是對稱的。如果你用恰當(dāng)?shù)姆绞絹磉_(dá)到這種渲染的效果,就可以很輕松的得到瞳距的調(diào)整功能。如果你的眼睛能一直位于鏡片中央當(dāng)然最好,但允許用戶調(diào)整投影中線還是有一些用處的。就算只有一塊屏幕,也還是可能設(shè)計出物理可調(diào)整光學(xué)鏡片的,只要軟件也能隨之調(diào)整投影矩陣。一個好的設(shè)計能讓光學(xué)鏡片上的位置傳感器把瞳距傳達(dá)給軟件(現(xiàn)在果然實現(xiàn)了,不過是兩個屏幕)。但目前這個光學(xué)鏡片的位置對我來說還是 OK 的。
我使用的是 Hillcrest Labs 的 FSRK-USB-2 慣性模組進(jìn)行頭部跟蹤。這個模組直接使用 Micro USB 傳輸數(shù)據(jù)和電源,數(shù)據(jù)調(diào)用的代碼也都是開源的。他們專門為我做了一個固件,把默認(rèn)的 125Hz 采樣率提升到了 250Hz,這個選項之后很快也會成為標(biāo)準(zhǔn)產(chǎn)品的一部分。一個模組的價格是 $99,并不算是最便宜的那種,當(dāng)前至少我使用的效果還不錯。我直接從陀螺儀中拿數(shù)據(jù)做方向跟蹤,他們默認(rèn)的算法增加了特別多延遲。
沒有頭部跟蹤,你根本就不知道鏡片把圖像扭曲成了什么鳥樣,但在一個良好的低延遲循環(huán)中,效果確實不錯。加上軟件的圖像預(yù)畸變后,效果非常好,帶來了非常大的改進(jìn)。
比起那張圖片,最終的畸變程度需要更加激進(jìn),我也可以花一些時間來更加細(xì)致的校準(zhǔn)這個曲線,但對于當(dāng)前的結(jié)果,我已經(jīng)非常滿意了。色彩校準(zhǔn)可以通過使用畸變曲線的參數(shù)為每個頻道做一點(diǎn)參數(shù)上的改變,但我覺得目前還沒太必要管到這一步。在開發(fā)過程中,有第二個屏幕映射頭顯的視頻輸出有非常大的幫助,因為我能看到?jīng)]有鏡片扭曲效果的圖像來做對比。
對于這么大的可視角度來說,分辨率是很低的,你能很明顯的看到像素點(diǎn),而且多數(shù)試過這個的人都會去和索尼 HMZ-T1 做對比。這么大的像素點(diǎn)就會讓你想辦法避免鋸齒,最后我做了較大程度的超采樣,外加使用了 4x MSAA 才得到最好的效果。
顯示面板有著讓人欽佩的低延遲,但像素轉(zhuǎn)換速度太慢,要大概二十毫秒才能夠改變顏色。這導(dǎo)致在高速的轉(zhuǎn)向運(yùn)動中,所有東西看起來都非常的模糊,也讓60Hz的刷新率的閃爍鬼影變得明顯。加入明確的運(yùn)動模糊來解決閃爍可能行得通,但真正的解決方案是合適尺寸像素的 120Hz Super AMOLED 面板。這里有三星的人在嗎?
如果你看一個比較亮的東西,屏幕還會留下些殘像,大概會持續(xù)個幾分鐘。
在這種放大鏡片的體系中,一點(diǎn)點(diǎn)的灰塵都有較大的影響。最終的成品完整塑封一體化會比較重要。
當(dāng)綁上一個頭戴戴在頭上,讓我能夠松開手隨意看,用游戲手柄的時候,我發(fā)現(xiàn)了幾個新的問題:
線材的柔韌度會是一個影響因素。電源線還好,但 VGA 線和 USB 線足夠僵硬,很大程度上影響你的轉(zhuǎn)向(解釋了為什么 Rift 的線是三合一做得最好的)。之后如果引入 DVI 面板的話影響可能更大。最后這種東西都必須調(diào)整好,甚至去掉線材,但尋找柔韌的線材或者打造訂制的 N 合一線材都不是近期就能做到的事。
驅(qū)動主板會在你額頭上變熱(5年了,還是老樣子),但如果把它往前掛出來會讓重量和工業(yè)設(shè)計變得更難看。能降低功耗就好了。
鼻子的開空部分需要擴(kuò)大??梢杂?3D 打印機(jī)來制作多個樣品測試最小的尺寸。(原來 Rift 鼻子開孔這么大是 Carmack 5年前搞的?。?/p>
搞定所有東西后,沉浸程度好到我終于能有那種我不是那么習(xí)慣的模擬暈眩感了——當(dāng)你站在虛擬世界的摩天大樓邊緣往下看時,左右搖頭讓人的感覺是整個世界都在顛覆,因為我還沒把位置和高度數(shù)據(jù)整合在一起。這以微妙的方式被反復(fù)顯示出來,尤其在其它屬性已經(jīng)很好的情況下就更加明顯。我得馬上著手 Sixense 的整合工作了。
最重要的總結(jié):
一切搞定后,這是目前我用過的五個頭顯中最有沉浸感的一個。如果 Palmer 能接近他的目標(biāo)價位,這也會是最便宜的一個。我會在下一個發(fā)布的 PC 游戲中加入對 Rift 的完整支持。
問題在于多數(shù)人不會有一個訂制的代碼庫來自由修改頭顯。得有人寫一個攔截驅(qū)動,要能抓取單目或者雙目立體游戲輸出并做出適當(dāng)?shù)幕?,這才能給那些普通人使用。頭部追蹤是另一個問題,我不認(rèn)為加上一個很多人都用不到的傳感器有什么意義,但留下一個專門的卡槽以備不時之需還是可以的。
John Carmack
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。