XRBoundedReferenceSpace: boundsGeometry 屬性
只讀的 XRBoundedReferenceSpace 屬性 boundsGeometry 是一個 DOMPointReadOnly 物件陣列,用於指定構成多邊形的點,使用者被允許在此多邊形內移動。每個點都被視為一個二維點,並且必須位於地面水平(即,其 y 座標必須為 0)。
此邊界通常由使用者配置,使用控制其 XR 硬體的軟體。這可以透過使用者走動來界定他們想要使用的空間,或透過使用其 XR 輸入裝置繪製房間的形狀來完成。理論上,一個更高階的系統可能會使用感測器或其他檢測方法來確定專用 XR 房間的邊界(注意我們是如何小心地不稱之為“全息甲板”的?)。
值
boundsGeometry 屬性是 DOMPointReadOnly 物件的一個數組,每個物件定義一個頂點,構成一個多邊形,使用者被要求保持在此多邊形內。每個點必須位於地板水平,其 y 座標值設定為 0。此外,陣列中每個點的 w 值始終為 1。此外,點必須按順時針順序排列。
boundsGeometry 中的每個條目都等於房間本機邊界幾何點列表中的一個條目,該條目乘以原點偏移的逆矩陣。換句話說,邊界是可用空間的物理限制,已偏移,以便參考空間的邊界點都相對於 XRBoundedReferenceSpace 的有效原點定義。
用法說明
有界參考空間的“原點”始終位於地面水平,即 y 為 0。通常,x 和 z 的原點位於空間中心或其附近,並且方向設定為指向邏輯上的前方,根據底層平臺或 XR 硬體的需要。
為了降低房間邊界被用於 指紋識別 的風險,boundsGeometry 陣列中的每個點可能會被四捨五入或調整一定數量。規範建議瀏覽器將點移動到最近的 5 釐米(同時避免超出硬體的物理限制)。
邊界大小
XRBoundedReferenceSpace 不適用於非常大的有界區域。相反,它適用於單房間空間,從本機原點算起,任何方向的可用移動空間不超過約 15 米。也就是說,邊界會無限向上延伸,因為邊界僅在二維中定義。
如果您需要建立多房間空間,或者一個非常大或需要不同地板水平的空間,您應該改用無界 XRReferenceSpace,並根據需要自行強制執行邊界。
邊界形狀
boundsGeometry 定義的形狀可以像正方形一樣簡單,也可以像需要的那樣複雜,可能包含凹形和/或凸形部分。但是,您無法使用 XRBoundedReferenceSpace 表示具有不平坦地板水平的空間。地面始終位於 y = 0。
您的內容設計不應要求使用者超出 boundsGeometry 指定的邊界,這一點很重要。但是,如果使用者周圍環境允許他們以可能超出定義邊界的方式移動,您的內容必須能夠優雅地處理這種情況,這不被視為錯誤條件。
雖然有些示例會渲染網格或其他形狀來向用戶顯示邊界,但在實際應用程式中,您不應該這樣做。但是,瀏覽器應向用戶提供有關任何風險(例如,如果他們繼續移動可能撞到物理牆壁的風險)的適當警告。
規範
| 規範 |
|---|
| WebXR Device API # dom-xrboundedreferencespace-boundsgeometry |
瀏覽器相容性
載入中…