共用方式為


基本概念

內向前端追蹤系統是一項驚人的新技術。 在他們的強項上,他們幾乎是神奇的。 但他們也有弱點。

內側頭部追蹤系統,就像 HoloLens 中的系統一樣,善於告訴頭部相對於附近實體特徵的位置。 同樣地,他們善於告訴真實世界特徵相對於頭部的位置。

但他們不太擅長告訴頭部相對於頭部的位置。 當頭部從 A 點移至點 B 時,追蹤系統通常對頭部的移動距離略有錯誤。 這表示追蹤系統對於 A 和 B 點之間的距離不正確。這個效果經常且令人困惑地稱為「縮放問題」。

然後,當頭部從B點往A點移動時,它再次對移動的距離錯誤。 它將會令人印象深刻地接近正確,但明顯不正確。 這個效果也稱為「漂移」。

常見問題 會進一步討論這些問題

關鍵是世界鎖定工具可以修正這些問題。 在後者的漂移案例中,世界鎖定工具可以從 A 點周圍的實體特徵辨識出頭部回到 A 點附近,並更正頭部的座標。

在先前的縮放問題案例中,World 鎖定工具可以從應用程式取得輸入,以瞭解 B 點相對於 A 點的位置,並更正該距離也移動。

若要進一步 瞭解世界鎖定工具如何 解決這些問題,一些額外的術語將很有説明。

海綿和世界鎖定的空間

海綿空間

世界鎖定工具的核心是優化引擎。 它接受目前使用中空間錨點的圖形,以及目前的頭部追蹤資訊。 此輸入通常稱為 Spongy 狀態,在此和相關文件和程式代碼中。 海綿狀態如此命名,因為它不斷變化。 空間錨點一律會彼此相對移動,而且在其原生 海綿 座標空間內,因為傳入的感測器數據會精簡其狀態。

此海綿空間是先前唯一可用的座標系統,混合實境應用程式開發人員可以運作。

世界鎖定的空間

從海綿狀態,世界鎖定工具引擎會計算一個穩定的空間,以最佳方式將海綿空間與物理世界對齊。 這個穩定的空間稱為 世界鎖定空間,其完整狀態為 凍結狀態

重要的是要認識到,海綿空間和世界鎖定的空間都是固定的笛卡兒座標系統,實際上只有旋轉和位移彼此不同。 不過,隨著處理新的感測器數據,從海綿空間轉換成世界鎖定空間會變更每個畫面。

兩個空間之間的差異在於,雖然傳入的感測器數據可以自由精簡(即移動)空間錨點彼此相對,而海綿空間中的頭部則選擇世界鎖定的空間,以將這類移動降至最低。 這項差異可讓放置在世界鎖定空間中的場景對象在實體世界中出現固定,而不會附加至個別空間錨點。 引擎會計算基礎錨點最穩定所在的世界鎖定空間。 也就是說,虛擬對象與真實世界特徵保持最佳對齊的世界鎖定空間。

此轉換會藉由調整場景圖形中相機父系的本機轉換,套用至每個畫面的場景。 由於相機定義了原來的海綿空間,插入這個“世界鎖定的海綿”轉換到相機的階層,建立了場景的根空間,成為世界鎖定的空間。

持續性

凍結狀態可以選擇性地跨會話保存。 有手動控件可以同時儲存目前狀態,以及從儲存狀態載入。 此外,世界鎖定工具管理員上的旗標會啟用或停用凍結狀態的自動定期儲存,並在啟動時自動載入上次儲存的狀態。

使用這些功能可讓實際空間的掃描和穩定保存在多個會話上。

此外,如果使用空格釘選功能將模型空間對齊實際空間,則可以保存該對齊方式。 在此情況下,在初始對齊會話設定空間釘選以將模型化場景對齊實體空間之後,後續會話就可以使用虛擬和實際功能自動將模型化場景載入實體空間。

如需詳細資訊,請參閱 持續性空格釘選功能

相機 移動影響

這裡要注意的一件微妙但很重要的事情是,藉由將校正轉換套用至相機,原生 Unity 的「固定參照框架」已轉換成最佳世界鎖定的參照框架。 由於場景中沒有移動任何物件,因此這項更正不會干擾物理模擬或其他動態計算。

不過,在靜止參考框架內移動的相機確實具有影響。 具體來說,任何假設頭部轉換是固定參考畫面與相機空間之間的唯一轉換,將會不正確。

此錯誤通常不是問題,例如電報等功能已經依賴在相機與根空間之間放置轉換的能力。

此外,MRTK 已經考慮了這類轉換的需求,因此對於 MRTK 服務的用戶來說,這會「正常運作」。

對於需要直接存取無法利用 MRTK 之較低層級系統的使用者,會提供用於建置配接器的範例。 以下列出一些這類範例:

另請參閱