同樣是 VR 盒子,GearVR 和國內山寨貨怎麼就差那麼多?從餘暉效應談談暈動症
作為一名 VR 從業人員,常有 VR 圈之外的朋友筆者吐槽說:國產的 VR 眼鏡,看看靜止的內容還可以,一旦動起來,人就各種暈眩,而 GearVR 等國外品牌的產品就沒有出現這樣的情況,這是為什麼呢?
對於這個問題,筆者可以列出很多的原因,但是首先,也是最重要的一點,是需要大家糾正這樣一個認識誤區:VR 技術不是簡單的兩個顯示屏+盒子。不少 VR 眼鏡產品只是開發了一個手機盒子,並沒有針對插入其中的手機進行軟硬體的優化,自然很容易造成體驗不佳,引發所謂的的暈動症(Motion Sickness)。
而關於暈動症,VR 大牛 Michael Abrash 有著他的思考。
Michael Abrash 是圈內首屈一指的圖形程序員,他於 2014 年加入 Oculus 擔任首席科學家,致力於頭戴式可視設備(Head Mount Display 簡稱 HMD)研究,包括如何減少 HMD 在使用過程中帶來的暈眩。具體來說,HMD 有許多偽影現象(artifacts),例如:色彩邊緣(color fringing)、抖動(judder,也稱視角震顫)、頻閃(strobing)、拖影(smearing)等。偽影問題會帶來眼腦協調不適,從而引發暈動症。所以,虛擬現實技術不是簡單地把兩塊顯示器放在眼前,然後放映圖片那麼簡單。這篇文章是在 Michael Abrash 的三篇關於餘暉(persistence)博文的基礎上創作的,深入探討了低餘暉如何降低暈眩感,以及低餘暉技術所帶來的其他負面問題。
首先,什麼是餘暉效應呢?
換個詞來說,餘暉效應就是視覺暫留現象,是指人眼在觀察事物時,光信號傳入大腦神經需要一段短暫的時間,光信號消失後,視覺形象並沒有立刻消失,這種殘留的視覺影像成為「後像」。舉一個簡單的例子,中國古代的走馬燈就是利用了這種現象。我們生活中也有餘暉效應,比如觀察一個白熾燈,當我們猛的轉頭後,白熾燈的燈光依然會映在我們眼前。
餘暉與顯示器有什麼關係呢?
我們稱顯示器上的像素點被點亮的時間為餘暉時間(persistence time)。我們現在用的液晶顯示器就是全餘暉顯示器,因為像素點在每一幀都被點亮。那為什麼在 HMD 中我們要選擇低餘暉呢?這就要從人眼和顯示器上的虛擬圖像間相對運動說起了。
為了幫助我們了解人眼和顯示器上的虛擬圖像間的相對運動,我們先來看一個簡單的問題——色像差(color fringing,也稱為彩色邊紋或者色散現象)。
下圖是一個很好的例子,我們可以清楚地看到圖片有紅綠藍三種基色邊緣,圖片質量大幅下降。那麼什麼情況下這種問題會發生呢?
我們可以認為來自顯示器的光子是一個三維信號,我們把這個三維信號量化為一個表達式:pixel_color = f(display_x, display_y, time)。這個表達式表示顯示器上的光子的位置和它的餘暉時間。
我們將用時間-空間圖來幫助大家了解 HMD 頭戴顯示器與真實世界有什麼不同(在這裡我們忽略垂直分量 y)。
真實世界中的物體:
LCOS 色序顯示器(經常被用來當做 HMD 的顯示器)上的虛擬物品:
如果你看不懂以上的解釋也沒有關係,簡單來說,由於色序顯示器三種色彩分量不能被同時點亮,那麼當人眼相對於顯示器上的虛擬物品移動時,我們就會看到色散現象。這種現象是一個很好解決的問題,因為只要確保色彩分量同時點亮就可以了,所以我們選擇更換顯示器,Oculus 使用的就是 OLED 有機電激光顯示器。
我們之所以把色散問題放在開頭解釋,是為了讓大家更好地理解人眼和顯示器的虛擬物品間的相對運動。這種相對運動還會帶來抖動(視角震顫)、頻閃、拖尾等偽影問題(頻閃和拖尾的混合現象我們稱為抖動)。
首先什麼是拖尾呢?根據維基百科的解釋,拖尾是在 VR 中對於動感模糊的視覺感知,它降低了圖像銳度和細節。拖尾發生是因為像素點在被點亮時間內在視網膜上滑動了一段距離,點亮時間越長,滑動的距離就越長。換言之,當人眼與像素點有相對運動時,餘暉時間越長,拖尾現象越明顯。
其次什麼是頻閃呢?根據維基百科定義,頻閃是指在 VR 中同一時間視覺感知到多張虛擬圖像副本。當人眼觀察虛擬圖片位置從一幀到下一幀的位置超過 5-10 角分時,我們會感覺圖像明顯跳動,這種跳動就是頻閃。注意頻閃不是閃爍(flicker),閃爍是一種一亮一滅的現象,頻閃是同一時間看到多張相同的圖像。由於閃爍不涉及視覺暫留,在這裡不做贅述。
而這兩種現象的組合,我們稱之為抖動。在 HMD 上,拖尾現象嚴重就會掩蓋住頻閃現象。下圖是一張渲染的遊戲場景,和這個場景拖尾 2 度(把手伸直,豎起大拇指,大拇指的寬度大概就是 2 度)的對比圖。
如果你還是對頻閃和拖影的產生抱有疑問,那我們繼續來看看時間-空間圖來幫助理解。
真實世界中的物體:
HMD 上的虛擬圖像:
因為餘暉效應,人眼可以保存上一幀,這一幀,甚至下一幀的圖像。對於物體相對於眼睛從左到右移動(眼睛注視前方不動)這種情況,我們不會看到拖影現象,但是由於實際的刷新率,我們可能會看到頻閃。對於眼睛追蹤物體從左到右移動這種情況,因為每幀像素點都有滑動,所以我們看到了拖影現象。這時,如果我們人眼追蹤不精準,虛擬圖像沒有落在視網膜相同位置上(也就是說x軸有位移),我們也會看到頻閃,這就造成了抖動這種混合現象。
理解了這些偽影現象之後,我們想問的就是如何解決它。
第一個方法當然就是提高刷新率,讓虛擬物品運動更加接近真實世界。請看下圖:
那麼問題來了,多高的刷新率才足夠呢?
這個問題沒有確定的答案,因為這個值與場景內容、解析度、視場角 FOV、像素點填充、顯示器類型、人眼移動速度、人眼特徵等有關。這個值大概接近於 100Hz,200Hz 會是一個很大的提升,但是還不夠。如果是一個 1080p 且有用 90 度 FOV 的顯示器,可能需要 300 到 1000Hz 的刷新率,但是高頻率要求更高的解析度。一個 1000Hz 的顯示頻看起來足夠好了,基本確定可以減少或者消除一些包括暈眩在內的 HMD 問題,因為它更加接近現實世界。但這不是一個百分之百肯定的結論,因為我們還從沒見過一個 1000Hz 的頭戴顯示器,目前技術暫時也難以達到這個要求。
除了提高刷新率,還有其他方法可以消除抖動,那就是降低餘暉時間。我們再來看幾張對比圖:
但是,解決了拖影,又引發了新的問題。
之前我們也提到了,在抖動的情況下,拖影隱藏了頻閃效果。不看拖影,低餘暉的顯示器會造成頻閃。然而低餘暉的頻閃看起來不是一個嚴重的問題,因為眼睛在完美跟蹤圖像時不會頻閃,虛擬圖像上的像素點會在每一幀落在視網膜的相同位置,所以沒有幀到幀之間的圖像位置相隔問題(造成頻閃的原因)。但是,眼睛不可能追蹤場景里的所有虛擬物品。
舉一個例子,如果你在一個賽車場景里,周圍有舞動的人群,但你的視線一直在追蹤場景中的賽車,因為人眼追蹤賽車,所以我們人眼和移動的賽車間沒有相對運動,我們看不到頻閃,但是場景中的其他部分,可能會出現頻閃現象。再比如,如果你在玩一個遊戲,讓你在一個喧鬧的街市場景中掃視尋找一個圖標或者標誌,這時場景中的物體會相對人眼產生距離,這個距離間隔大於 5-10 角分時,我們就會看到頻閃。
頻閃現象還沒有被人們好好研究過,這個現象所引發的問題現在還沒有被很好地解決, 其中涉及人體眼腦的合作機理。目前看來,Michael Abrash 發現了兩個因素影響著這種視覺不穩定問題。一個是掃視遮蔽(saccadic masking,也稱掃視抑制),另一個是參照系(frame of reference)。下面對這兩個概念進行簡單的解釋。
對於人類來說,在頻繁的快速掃視眼動中保持視知覺穩定十分重要。研究表明,伴隨快速掃視會發生視覺敏感性降低的現象,即掃視抑制。掃視抑制對於形成穩定的視知覺具有重要作用,在我們掃視時,真實世界的圖像會在我們的視網膜上滑動,但是低餘暉使我們喪失了掃視抑制的功能,因為低餘暉導致了虛擬圖像在掃視過程中始終保持清晰,失去了滑動,這時頻閃現象就會發生。
另一個因素是參照系,為了把視網膜接收到的信息轉化為我們熟知世界的模型,無論什麼時候眼腦都需要一個參照系(人腦預測被掃視的物品應該處於什麼位置)。但是低餘暉消除了拖尾,圖像移動變的不連貫,所以人腦認為虛擬圖像沒有處在正確位置上。這時,我們就會感到視覺不穩定。
頻閃帶來的視覺不穩定性在遊戲中不是一個很大的問題,也很少被檢測出來。人腦的適應能力很強,有可能在未來的十幾年慢慢適應這種問題,就像人配了一個新眼鏡一樣。HMD 研究已經有了許多突破性的發展,但是還有很多未知的問題等待我們去探討。希望這篇文章可以讓大家從視覺餘暉的角度對暈動症有更多的了解,並且理解低餘暉顯示器的益處和缺陷。如果文章中有哪些不精準,不明確的解釋歡迎大家積極討論。
本文由深圳特約 布格VR 供稿,作者 張小朦
責任編輯 陳凱文
版權聲明:本文系深圳灣編輯創作發布,轉載請註明來自深圳灣,並標明網站地址 shenzhenware.com
轉載、約稿、投稿、團隊報道請聯繫微信公眾號:shenzhenware(回復關鍵字)推薦閱讀:
※三星很不重視安全,你還繼續用三星產品嗎?
※鴻海意圖收購東芝存儲器部門是為了抗衡三星
※面板雙雄LG和三星在OLED世界展開對決
※扒一扒這家危機重重的商業帝國
※前三星員工曝光三星對付中國員工的低劣手段