座標系統
混合實境應用程式的核心是將 全像投影 放在您的世界中,看起來像是真實物件並聽起來像是真實物件。 這牽涉到精確地將這些全像投影定位在全球有意義的位置,無論世界是其實體空間或您所建立的虛擬領域。 Windows 提供各種真實世界的座標系統來表示幾何--這些稱為 空間座標系統。 您可以使用這些系統來推論全像投影位置、方向、 注視 光線或 手部位置。
裝置支援
功能 | HoloLens (第 1 代) | HoloLens 2 | 沉浸式頭戴裝置 |
靜止的參考框架 | ✔️ | ✔️ | ✔️ |
附加的參考框架 | ✔️ | ✔️ | ✔️ |
階段參考框架 | 尚不支援 | 尚不支援 | ✔️ |
空間錨點 | ✔️ | ✔️ | ✔️ |
空間對應 | ✔️ | ✔️ | ❌ |
場景瞭解 | ❌ | ✔️ | ❌ |
混合實境體驗調整
您可以設計混合實境應用程式以獲得廣泛的使用者體驗,從使用耳機方向的 360 度視訊查看器,到使用空間對應和空間錨點的全球規模應用程式和遊戲:
體驗規模 | 需求 | 範例體驗 |
---|---|---|
僅限方向 | 耳機方向 (重力對齊) | 360° 視訊查看器 |
基座縮放 | 以上加上以零位置為基礎的頭戴式裝置位置 | 賽車遊戲或空間模擬器 |
常設縮放比例 | 上方加上 階段樓層原點 | 動作遊戲,您可在其中擷取並擷取 |
會議室規模 | 上方加上 階段界限多邊形 | 拼圖遊戲,您可以在其中四處四處瀏覽拼圖 |
全球規模 | 空間錨點 (,通常是 空間對 應) | 具有來自真實牆的遊戲,例如 RoboRaid |
上述的體驗會遵循「巢狀架構」模型。 Windows Mixed Reality 的主要設計準則則是:指定的頭戴式裝置支援針對目標體驗規模和所有較小規模所建置的應用程式。
6DOF 追蹤 | 已定義底板 | 360° 追蹤 | 已定義界限 | 空間錨點 | 最大體驗 |
---|---|---|---|---|---|
否 | - | - | - | - | 僅限方向 |
是 | 否 | - | - | - | 坐 |
是 | 是 | 否 | - | - | 常設 - 正向 |
是 | 是 | 是 | 否 | - | 常設 - 360° |
是 | 是 | 是 | 是 | 否 | 會議室 |
是 | 是 | 是 | 是 | 是 | 世界 |
HoloLens 尚不支援階段參考框架。 HoloLens 上的室內縮放應用程式目前需要使用 空間對 應或 場景了解 來尋找用戶的樓層和牆。
空間座標系統
所有 3D 圖形應用程式都會使用 笛卡兒座標系統 來推論虛擬物件的位置和方向。 這些座標系統會建立三個垂直軸:X、Y 和 Z。您新增至場景的每個物件在其座標系統中都會有 XYZ 位置。 Windows 會呼叫在實體世界中具有實際意義的座標系統 空間座標 系統,以公尺表示其座標值。 這表示在混合實境中轉譯時,在 X、Y 或 Z 軸上放置兩個單位的物件會彼此相距兩公尺。 瞭解這一點,您可以輕鬆地以真實世界的規模呈現對象和環境。
一般而言,笛卡兒座標系統稱為「右手」或「左手」,因為您可以使用手部位置來指出 XYZ 軸的指示。 在這兩個座標系統中,正 X 軸指向右邊,正 Y 軸指向上。 兩者的差異在於,在右手座標系統中,Z 軸會指向您,而在左手座標系統中,Z 軸則指向您。
Windows (上的空間座標系統,因此 Windows Mixed Reality) 一律是右手。
[!附注]
- Unity 和 Unreal 使用左手座標系統。
- 雖然左手和右手座標是最常見的系統,但 3D 軟體中使用其他座標系統。 例如,3D 模型化應用程式使用 Y 軸指向或遠離查看器和 Z 軸指向的座標系統並不罕見。
建置僅限方向或基座規模的體驗
全像攝影 轉譯 的索引鍵是隨著使用者四處移動,變更應用程式的全像投影檢視,以符合其預測的頭部動作。 您可以使用固定的參考框架,建置採用用戶頭部位置和頭部方向變更的基座級別體驗。
某些內容必須忽略前端位置更新,固定在所選擇的標題和與用戶的距離。 主要範例是 360 度視訊:因為影片是從單一固定的觀點擷取,所以即使檢視方向隨著使用者四處尋找而變更,仍會破壞視圖位置根據內容移動的錯覺。 您可以使用附加的參考框架來建置這種僅限方向的體驗。
靜止的參考框架
靜止參照框架所提供的座標系統,可根據世界盡可能讓接近用戶的物件位置保持穩定,同時尊重用戶頭部位置的變更。
針對 Unity 等遊戲引擎中的基座規模體驗,固定的參考框架是定義引擎「世界原點」的定義。放置在特定世界座標的物件會使用靜止的參考框架,使用這些相同的座標來定義它們在真實世界中的位置。 即使使用者四處走動,仍會留在世界的內容也稱為 世界鎖定 的內容。
應用程式通常會在啟動時建立一個固定的參考框架,並在應用程式的整個存留期內使用其座標系統。 身為 Unity 中的應用程式開發人員,您可以直接根據來源開始放置內容,其會位於使用者的初始前端位置和方向。 如果使用者移至新的地方,並想要繼續其基座規模體驗,您可以在該位置更新世界原點。
隨著時間推移,隨著系統深入瞭解用戶的環境,它可能會判斷真實世界中不同點之間的距離比系統先前所認為的短或長。 如果您在 HoloLens 上應用程式的靜止參照框架中轉譯全像投影,用戶在大約 5 公尺寬的區域之外四處,您的 app 可能會觀察到這些全像投影觀察到的位置漂移。 如果您的體驗讓使用者四處走動超過 5 公尺,您將建置 全球規模的體驗,這需要其他技術才能讓全像投影保持穩定,如下所述。
附加的參考框架
附加的參照框架會隨著使用者四處走動而移動,並定義應用程式第一次建立框架時所定義的固定標題。 這可讓用戶輕鬆地查看放置在該參考框架內的內容。 以此用戶相對方式轉譯的內容稱為 內文鎖定 內容。
當頭戴式裝置無法找出它在全球的位置時,附加的參考框架會提供唯一的座標系統,可用來轉譯全像投影。 這非常適合用來顯示後援UI,以告訴使用者他們的裝置在世界各地找不到它們。 基座規模或更高版本的應用程式應包含僅限方向的後援,以協助使用者再次進行,其 UI 與 Mixed Reality 首頁中所示的類似。
建置常設規模或會議室規模的體驗
若要超越沉浸式頭戴裝置上的基座規模,並建置 常設規模的體驗,您可以使用 階段的參考框架。
若要提供 會議室規模的體驗,讓使用者在預先定義的 5 公尺界限內四處走動,您也可以檢查 階段界限 。
階段參考框架
第一次設定沉浸式頭戴式裝置時,用戶會定義 一個階段,代表他們將在其中體驗混合實境的空間。 此階段會以最少的方式定義 階段原點,這是以用戶選擇的樓層位置為中心的空間座標系統,以及他們想要使用裝置的正向方向。 藉由將內容放在 Y=0 平面的這個階段座標系統中,您可以確保當使用者站著時,您的全像投影會在底板上舒適地顯示,為使用者提供 常設縮放體驗。
階段界限
使用者也可以選擇性地定義 階段界限,這是會議室內已清除以在混合實境中四處移動的區域。 如果是這樣,應用程式可以建 置會議室規模體驗,使用這些界限來確保全像投影一律會放置在使用者可以觸達的位置。
由於階段參考框架提供單一固定座標系統,用來放置樓層相對內容,因此這是移植針對虛擬實境頭戴式裝置開發之常設縮放和會議室規模應用程式的最簡單路徑。 不過,與這些 VR 平台一樣,單一座標系統只能穩定 5 公尺 (16 吋直徑) 5 公尺內的內容,然後才讓距離中央的內容隨著系統調整而明顯地移位。 若要超過 5 公尺,需要空間錨點。
建置全球規模的體驗
HoloLens 可讓用戶在超過 5 公尺的範圍內進行真實 的世界性體驗 。 若要建置全球規模的應用程式,您需要超越用於會議室規模體驗的新技術。
為什麼單一固定座標系統不能使用超過5公尺
現今撰寫遊戲、數據視覺效果應用程式或虛擬實境應用程式時,典型的方法是建立一個所有其他座標可以可靠地對應的絕對世界座標系統。 在該環境中,您一律可以找到穩定轉換,定義該世界中任兩個對象之間的關聯性。 如果您未移動這些物件,其相對轉換一律會維持不變。 這種全域座標系統可在轉譯您事先知道所有幾何的純虛擬世界時運作良好。 現今的會議室規模 VR 應用程式通常會建立這種絕對會議室規模座標系統,且其原點位於樓層。
相反地,HoloLens 等未系結的混合實境裝置對世界有動態感測器導向的瞭解,隨著使用者在建築物的整個樓層中逐步執行許多公尺,持續調整用戶周圍環境的知識。 在全球規模的體驗中,如果您將所有全像投影放在單一固定座標系統中,這些全像投影就一定會根據世界或彼此而隨著時間而漂移。
例如,頭戴式裝置目前可能認為全球的兩個位置相距 4 公尺,之後再進一步改善該瞭解,了解這些位置實際上相距 3.9 公尺。 如果這些全像投影一開始在單一固定座標系統中相距 4 公尺,則其中一個全像投影一律會在距離真實世界 0.1 公尺的地方出現。
空間錨點
Windows Mixed Reality 可讓您建立空間錨點來標示使用者放置全像投影之世界的重要點,藉此解決上一節所述的問題。 空間錨點代表系統在一段時間內應該追蹤的重要點。
當裝置瞭解世界時,這些空間錨點可以視需要根據彼此調整其位置,以確保每個錨點都能精確地根據真實世界放置的位置。 藉由將空間錨點放在使用者放置全像投影的位置,然後根據其空間錨點定位該全像投影,您可以確保全像投影能維持最佳穩定性,即使使用者漫遊數十公尺也一樣。
這種以彼此為基礎的空間錨點連續調整,是座標系統與空間錨點和靜止參考框架之間的主要差異:
放置在靜止參考框架中的全像投影都會彼此保持固定的關聯性。 不過,當使用者長距離移動時,該框架的座標系統可能會根據世界而漂移,以確保使用者旁邊的全像投影看起來穩定。
放置在參考階段框架中的全像投影,也會保持彼此之間的固定關聯性。 相較於固定框架,階段框架一律會根據其定義的實體原點,就地固定。 不過,在超過其 5 公尺界限的階段座標系統中轉譯的內容,只有在用戶位於該界限內時才會顯示穩定。
使用一個空間錨點放置的全像投影可能會根據使用另一個空間錨點放置的全像投影而漂移。 這可讓 Windows 改善其對每個空間錨點位置的瞭解,例如,即使一個錨點需要自行調整,而另一個錨點需要向右調整也一樣。
相較於一律針對使用者附近的穩定性優化的靜止參考框架,參考和空間錨點的階段框架可確保接近其原點的穩定性。 這可協助這些全像投影在一段時間內精確地保持就地,但這也表示呈現的全像投影離其座標系統的來源太遠,將會遇到愈來愈嚴重的周全投影效果。 這是因為階段或錨點位置和方向的微調會與該錨點的距離成正比放大。
良好的經驗法則是確保您根據遠距空間錨點的座標系統呈現的任何專案,都在其原點大約 3 公尺內。 就鄰近階段原點而言,轉譯遠距內容是正常的,因為任何增加的位置錯誤只會影響不會在用戶檢視中多變的小型全像投影。
空間錨點持續性
空間錨點也可以讓您的應用程式記住重要位置,即使在您的應用程式暫停或裝置關機之後也一樣。
您可以將應用程式建立的空間錨點儲存到磁碟,然後稍後再將它們保存到應用程式 的空間錨點存放區,以再次載入。 儲存或載入錨點時,您會提供對應用程式有意義的字串密鑰,以便稍後識別錨點。 請將此金鑰視為錨點的檔案名。 如果您想要將其他數據與該錨點產生關聯,例如使用者放置在該位置的 3D 模型,請將該模型儲存至應用程式的本機記憶體,並將其與您選擇的密鑰產生關聯。
藉由將錨點保存至市集,您的使用者可以放置個別全像投影,或放置工作區,讓應用程式放置其各種全像投影,然後在應用程式的許多用途之後找到這些全像投影。
避免頭部鎖定的內容
我們強烈建議您轉譯頭部鎖定的內容,這會停留在顯示 (中的固定位置,例如 HUD) 。 一般而言,頭部鎖定的內容會讓使用者感到不快,而且感覺不像是其世界的自然部分。
頭部鎖定的內容通常應該取代為附加至使用者或放置於世界本身的全像投影。 例如, 游標 通常應該推送至世界,並自然調整以反映對象在用戶注視下的位置和距離。
處理追蹤錯誤
在某些環境,例如深色的哈道,使用內向外追蹤的頭戴式裝置可能無法正確地找到自己。 如果處理不正確,這可能會導致全像投影未顯示或出現在不正確的位置。 我們現在討論可能發生這種情況的條件、其對用戶體驗的影響,以及最佳處理這種情況的秘訣。
因為感測器數據不足,所以無法追蹤頭戴式裝置
有時候,頭戴式裝置的感測器無法找出頭戴式裝置的位置。 如果下列情況,就可能發生這種情況:
- 房間很深色
- 如果感測器被毛髮或手部覆蓋
- 如果周圍環境沒有足夠的紋理。
發生這種情況時,頭戴式裝置將無法以足夠的精確度追蹤其位置,以呈現世界鎖定的全像投影。 您無法找出空間錨點、靜止框架或階段框架是以裝置為基礎的位置。 不過,您仍然可以在附加的參考框架中轉譯內文鎖定的內容。
您的應用程式應該告訴使用者如何取得位置追蹤,轉譯一些描述一些秘訣的後援內文鎖定內容,例如發掘感測器和開啟更多光源。
因為環境中的動態變更,所以頭戴式裝置追蹤不正確
如果環境中有許多動態變更,例如許多人在會議室中四處走動,裝置就無法正確追蹤。 在此情況下,當裝置嘗試在此動態環境中追蹤自己時,全像投影看起來可能會跳動或漂移。 如果您遇到此案例,建議您在較不動態的環境中使用裝置。
頭戴式裝置追蹤不正確,因為環境隨著時間而大幅變更
當您開始在已經移動了外地、牆懸置等等的環境中使用頭戴式裝置時,某些全像投影可能會從原來的位置移開。 當使用者在新空間中移動時,舊版全像投影也可能會跳來跳去,因為系統對您空間的瞭解已不再成立。 系統接著會嘗試重新對應環境,同時嘗試協調會議室的功能。 在此案例中,建議使用者在未如預期出現時,取代他們釘選在世界各地的全像投影。
因為環境中有相同的空格,所以頭戴式裝置追蹤不正確
有時候,住家或其他空間可能會有兩個相同的區域。 例如,兩個相同的會議室、兩個相同的邊角區域、兩張涵蓋裝置視野的大型完全相同海報。 在這種情況下,裝置有時可能會混淆相同的元件,並在其內部表示法中將其標示為相同。 這可能會導致某些區域的全像投影出現在其他位置。 裝置可能會因為環境的內部表示法已損毀而經常遺失追蹤。 在此情況下,建議您重設系統的環境瞭解。 重設地圖會導致所有空間錨點位置遺失。 這會導致頭戴式裝置在環境的唯一區域中妥善追蹤。 不過,如果裝置再次在相同區域之間混淆,問題可能會重複發生。