VR頭顯視場的定量比較:視場實際測量的是什麼?

映維網 發佈 2020-02-03T10:07:30+00:00

基本上,視場是衡量觀察者在任何給定瞬間能夠看到多少虛擬3D環境。1.立體角另一種思考方式是,在觀察者眼睛周圍放置一個任意半徑的假想球體,球體中心與眼睛瞳孔重合。

映維網 2020年02月03日)美國加州大學戴維斯分校的研究類計算機科學家奧利弗·克雷洛斯(Oliver Kreylos)的博客從開發者角度(非用戶角度)討論了有關沉浸式計算機圖形學的方方面面,並為行業提供了一定的參考借鑑。日前,克雷洛斯撰文介紹了VR頭顯視場的定量比較。下面是映維網的具體整理:

儘管我已經用校準過的廣角相機拍攝了多款常見VR頭顯的鏡後圖片,但我一直努力構思如何能夠定量地比較最終的視場,如何將它們放到具體的情景進行理解,以及如何適當地形象化它們。當嘗試回答「哪款VR頭顯的視場更大?」,「頭顯A的視場比頭顯B的視場大多少?」或「頭顯C的視場與人眼相比又如何?」的時候,你面對的一個基本問題是:如何以一種公平的方式並在各種可能尺寸範圍內比較視場。如果有人提出單一的角度,我們應該如何衡量?比如說「對角線」視場?如果視場不是矩形呢?如果有人提出兩種角度,例如水平⨉垂直呢?同樣,如果視場不是矩形呢?

然後,如果是以單一的角度或兩個角度來衡量視場,我們又應該如何公平地比較不同的視場呢?如果一款頭顯的視場是100度,而另一款頭顯是110度,這是否意味著後者顯示的虛擬3D環境要多出10%呢?如果一款頭顯的視場是100度⨉100度,而另一款的視場為110度⨉110度,這是否意味著後者顯示的虛擬3D環境要多出21%呢?

為了尋找合理的答案,我們先從基本定義入手:視場實際測量的是什麼?基本上,視場是衡量觀察者在任何給定瞬間能夠看到多少虛擬3D環境。較大的視場值應表示可以看到更多。理想情況下,兩倍的視場值應表示可以看到兩倍的視像。

「能夠看到」是什麼意思?如果來自某物的光纖到達我們的眼睛,通過角膜,瞳孔和晶狀體,最後到達視網膜,這時我們就可以看到它。原則上,光線會從所有可能的方向傳播到我們的眼睛,但由於各種障礙(例如,我們看不到背面),只有來自一部分方向的光線會到達視網膜。所以,合理的視場測量(一隻眼睛)應該是來自不同3D方向併到達眼睛視網膜的光線的總和。問題是,光線可以來自於無數個不同的方向,所以簡單的計數不起作用。

1. 立體角

另一種思考方式是,在觀察者眼睛周圍放置一個任意半徑的假想球體,球體中心與眼睛瞳孔重合。這樣,3D方向和所述假想球體的點之間將存在一一對應的關係:每條光線恰好通過一個點進入球體。結果是,無需計算3D方向,你可以將視場化作球體所有點的集合的總面積,所述點對應於眼睛可以看到的3D方向。

碰巧的是,如果假想球體的任意半徑設為1,這正是立體角的定義(立體角是一個物體對特定點的三維空間的角度,是平面角在三維空間中的類比。它是指站在某一點的觀察者測量到的物體大小的尺度。若以觀察點為球心構造一個單位球面,任意物體投影到所述單位球面的投影面積即為所述物體相對於所述觀察點的立體角。)。如果什麼都看不到,即球體所有「可見」點的集合為空,則所述集合的面積為零。如果可以看到所有一切,則可見點的集合就是球體的整個表面,其面積為4π。如果僅能看到所有內容的一半(如由於觀察者站在無限平面之上),則觀察者的視場為2π,依此類推。順便一提,若球體半徑為1,其表面積屬於無單位(沒有度量單位),但為了將立體角值與其他無單位的數值區分開來,我們用球面度(steradian;sr)作為單位,與以弧度(r)或度數(°)給出的規則(2D)角度(基本為無單位)相同。

總而言之,立體角是測量視場的可靠方法:它可以在單個數字中測量任意形狀和大小的視場,並且所述數字與「可見」量之間存在直接的線性關係。

2. 立體角和VR頭顯視場

我們迄今已經討論過視界,即「裸眼」可以看到多少3D環境。如下所示,這個數字本身十分重要,但真正的問題是如何衡量VR頭顯的視場。總體的思路相同:計算用戶可以看到多少虛擬3D環境。但與真實3D環境不同,虛擬環境發出的光線不會從所有可能的方向到達觀察者眼睛。相反,光線僅來自於顯示屏。若從眼睛向後回溯,光線會穿過頭顯的一個透鏡,並最終到達所述透鏡後面的顯示屏。視場依然以相同的方式計算,但現在是向後:視場是用戶眼睛周圍的單位球面的所有點的面積,點對應於來自螢幕的方向(假設螢幕的該點是用於由VR管道顯示圖像數據,但這是另一個問題)。

幸運的是,我們可以以相當簡單的方式來測量這個面積。所有相機都會將3D環境投影到成像表面(光板或光敏傳感器),特別是將通過相機焦點入射的3D方向分配給成像表面的每個點。在經過校準的相機中,從圖像點到3D方向的映射是精確已知(具體的計算方法將是另一篇文章的主題)。

具體的方法是,將這種經過校準的相機(理想情況是帶有廣角的相機)放置在頭顯透鏡前方,模擬用戶穿戴頭顯並通過透鏡感知虛擬環境的情形,然後拍照通過透鏡看到的畫面。接下來,查看每個圖片像素,確定一個像素是否顯示了螢幕的某個部分,並就所有像素的立體角求和(最後一點有點複雜,並可作為讀者的一項練習)。但最重要的是所拍攝的圖片。

3. 可視化VR頭顯的視場

為給定的頭顯計算單個立體角很適合進行定量比較,但一張圖片勝過千言萬語。所以,如何以公平的方式可視化視場呢?畢竟,視場是球體表面的一部分面積,而且任何熟悉世界地圖的人都清楚,如果不引入變形,你無法在平面圖像顯示球體表面。幸運的是,有一類地圖投影可以保留面積,換句話說,投影地圖中的某個區域的面積與球體相同區域的面積成比例,或者理想情況下相同。鑒於立體角或球面面積是視場的合理度量,使用這種保留面積的投影應該可以產生清晰的可視化效果:如果一款頭顯的視場是另一頭顯的兩倍,圖片所示就會恰好是兩倍。

4. 匯總整合

對於本文,我測量了我碰巧擁有的三款VR頭顯的視場:HTC Vive Pro,Oculus Rift CV1和PSVR。我同時以相同的方式並根據常用的表格(圖1)測量了人類裸眼視場的「平均」值。

圖1:右眼的視野,出自亨利·莫斯·特拉奎爾(H. M Traquair)的《臨床視野測量法導論(An Introduction to Clinical Perimetry)》第一章。上圖是等距方位角投影,不同於本文使用的面積保留投影。

我回溯了圖中視野的外部界限,將輪廓重新投影到面積保留投影中(參見圖2),並計算了其立體角,即兩隻眼睛的總立體角(假設兩個視場為對稱),以及雙眼視場相交的立體角,即雙眼重疊。具體的數值如下:一隻眼睛是5.2482 sr(或1.6705πsr);雙眼是6.5852 sr(或2.0961πsr);重疊是3.9112(或1.2450πsr)。我採用的直接球面度數值和π次方球面度數值,以防後者更易於可視化:2πsr是半球,而4πsr是完整球體。有趣的是,兩隻眼睛的合併視場略大於半球。儘管視場因人而異,但這種平均測量數值可用於具體描述VR頭顯的視場值。

圖2:面積保留投影中的人類平均裸眼視場,包括眼球運動;數字表示距離正向的方位角;紅色是左眼視場,藍色是右眼視場;紫色是雙目視場(立體重疊)。

接下來,我以相同的方式處理了三款頭顯的鏡後圖片,回溯螢幕可見部分的輪廓,使用相同的面積保留投影重新投影輪廓,計算單眼、雙眼和重疊立體角(參見表1),並將視場疊加到普通人眼的視場(參見圖3-5)。如圖所示,對於每款頭顯,我只使用最大化視場的適眼距值。鑒於視場非常依賴於眼睛的適眼距,所以理想情況下應該拍攝一系列的照片並列出適眼距。

圖3:使用面積保留投影將HTC Vive Pro的最大視場(適眼距8mm)疊加在平均人類視場;數字表示距離正向的方位角;紅色是左眼視場,藍色是右眼視場;紫色是雙目視場(立體重疊)。

圖4:使用面積保留投影將Oculus Rift CV1的最大視場(適眼距15mm)疊加在平均人類視場;數字表示距離正向的方位角;紅色是左眼視場,藍色是右眼視場;紫色是雙目視場(立體重疊)。

圖5:使用面積保留投影將PSVR的最大視場(適眼距10mm)疊加在平均人類視場;數字表示距離正向的方位角;紅色是左眼視場,藍色是右眼視場;紫色是雙目視場(立體重疊)。

表1:平均人類視場(包括眼睛運動)和三款VR頭顯的視場。每個視場測量值均以球面度和π次方球面度給出。頭顯視場測量值同時以平均人類視場的相應測量值的百分比給出。

原文連結:https://yivian.com/news/71506.html

關鍵字: