坐標系 Coordinate systems
全息的核心是,全息應用可以在真實世界中放置全息圖形並使得它們看起來和聽起來像真實的物體。這涉及到了物體在真實世界中的定位和方向的確定,這對用戶來說很重要。當推斷全息圖像或者其他任何幾何體的位置和方向時,例如凝視射線或者手的方位,HoloLens使用多種坐標系來表示幾何體。
空間坐標系 Spatial coordinate systems
所有的3D圖形應用都采用笛卡爾空間坐標系來推斷物體在他們渲染出的虛擬世界中的方位。這種坐標系使用3個互相垂直的軸來定位物體,分別是:X、Y、Z軸。
在HoloLens中,你的應用會推斷所有虛擬物品和真實物品的坐標。Windows Holographic將有真實世界意義的坐標系為空間坐標系(Spatial coordinate systems)。
空間坐標系使用米作為單位來表示坐標值,這意味着HoloLens中一個物體在X、Y或Z軸上距離另一個物體2單位放置,實際將會表現為相距2米。這使得你很容易使用真實世界的縮放比例來渲染物體。
一般來說,笛卡爾坐標系有左手坐標系或者右手坐標系。在Windows Holographic中的空間坐標系總是右手坐標系,這意味着正X軸指向右,正Y軸指向上,正Z軸指向后方。
在所有類型的空間坐標系中,正X軸總指向右,正Y軸總指向上方。區別在與正Z軸會指向你的前方還是后方,可以使用我們的左右手來模擬左右手坐標系,大拇指的指向始終是正Z軸相對坐標系的方向。
固定參照坐標系 Stationary frame of reference
當設備在環境中移動時,描述現實世界中全息圖像的位置,需要一個保持固定的參考點。系統提供了用於此目的的一個簡單方案,被稱為固定參照坐標系(Stationary frame of reference)。
在一個像Unity這樣的游戲引擎中,參考固定坐標被定義為該引擎渲染的世界的“起源”。使用這些相同的坐標,放置在特定世界坐標系中的對象使用固定參照系來定義它們在真實世界的位置。一個應用程序通常會在啟動時創建一個固定參照系和在整個應用程序生命周期使用它的坐標系。
隨着時間的推移,隨着系統學習更多有關用戶環境的信息,它可確定在真實世界的各個點之間的距離是比以前系統認為的更短或更長。因此,當用戶在大范圍走動導致全息圖像出現相對固定參照系偏移時,系統會做出調整。
空間錨點 Spatial anchors
當系統發現更多世界信息時,為了避免偏移和確保全息圖像准確保持在世界中特定點,你可以使用空間錨點來放置全息圖像。一個空間錨點代表了世界中一個重要的點,系統應該在一段時間保持跟蹤。各錨點具有一個按需調整的坐標系,相對於其他空間錨或參照系,以確保錨定的全息圖像保持在精確的位置。
在空間錨點的坐標系中渲染一個全息圖像將會給出該圖像任何時刻最准確的坐標信息。當全息圖像持續移回相對真實世界的位置,這回帶來最小的位置調整成本。
為什么一個單獨剛性坐標系統不能被用於整個場景 Why a single rigid coordinate system cannot be used for the whole scene
如今,編寫游戲、數據可視化應用程序、或虛擬現實應用程序時,典型的做法是設立一個絕對的世界坐標系,場景中的所有其他坐標可以可靠地映射到此坐標系上。在這種環境中,你總能找到一個穩定的變換,它定義了在世界里任何兩個物體之間的關系。如果你沒有動這些對象,它們之間的相對變換將始終保持不變。在單純渲染一個你提前知道其中所有幾何體的虛擬世界時,這種全局坐標系的效果很好。
相比之下,作為混合現實設備,HoloLens擁有傳感器驅動的對世界動態的感知 - 這意味着隨着時間變化它可以不斷調整對於你創建的空間錨點的認識。這樣一來,你的應用程序必須為你創建用來隨時間而改變他們的相互關系的空間錨點做好調整的准備。
例如,設備可以目前相信世界中的兩個位置距離為4米,在重定義這種認知后,設備能夠知道這些位置實際上相距3.9米。如果這些全息物體最初是在一個剛性的坐標系相距4米放置,那么他們其中一個在現實世界中總是出現0.1米偏差。
解決方案:空間錨 The solution: Spatial anchors
HoloLens通過讓你創建空間錨標記世界中的用戶放置全息圖像的重要點來解決這個問題。當設備開始認知周邊世界時,這些空間錨可以按需要調整它們相對於彼此的位置,以確保每個錨保持它被相對於現實世界放置的精確。通過把全息圖像放置在附近空間錨的坐標系中,可以確保此全息圖像保持最佳的穩定性。
這種空間錨相對於彼此之間的連續調整是來源於空間錨的坐標系和固定參照系之間的主要區別:
- 放置在固定參照系的全息圖像會保持彼此剛性的關系。然而,隨着時間的推移,這種坐標系統可能會相對現實世界出現漂移,以確保全息圖在用戶旁邊保持穩定的位置。
- 使用一個空間錨放置全息圖像可能出現相對使用其他空間錨放置的全息圖像的漂移。這使得Windows提高對各自空間錨的位置的認知,例如,即使一個錨定需要調整本身靠左而另一個錨需要調整靠右。
與此相反的參考,它總是為用戶附近的穩定性優化固定框架,空間錨確保接近其起源的穩定性。這有助於這些全息圖代替隨時間留精確,但它也意味着,從它們的空間錨的原點呈現太遠全息圖將經歷日益嚴重杠桿臂效應。這是因為小的更新的位置和空間錨的取向被放大成比例從錨的距離。一個好的經驗法則是,以確保任何你呈現基於空間錨的坐標系上的距離約3米的產地。
