設定裝置的網格觀察者 — MRTK2

本指南將逐步解說在 MRTK 中設定現用的空間網格觀察者,以支援 Windows Mixed Reality 平臺 (,例如 HoloLens) 。 Mixed Reality Toolkit 所提供的預設實作是WindowsMixedRealitySpatialMeshObserver類別。 但本文中的許多屬性適用于其他 自訂觀察者實作

設定檔設定

設定 空間感知系統的空間網格觀察者設定檔時,必須先定義下列兩個專案。

  1. 具體觀察者型別實作
  2. 執行此觀察者的支援平臺 () 清單

注意

所有觀察者都必須擴充 IMixedRealitySpatialAwarenessObserver 介面。

網格觀察者一般設定平臺類型

一般設定

網格觀察者一般設定 Genral 設定

啟動行為

啟動行為會指定觀察者是否會在第一次具現化時開始執行。 這兩個選項是:

  • 自動啟動 - 預設值,觀察者會在初始化之後開始作業
  • 手動啟動 - 觀察者將等候開始

如果使用 手動啟動,則必須 在執行時間透過程式碼繼續並暫停它們。

更新間隔

平臺要求之間更新空間網格資料的時間,以秒為單位。 一般值落在 0.1 和 5.0 秒的範圍內。

Is Stationary Observer

指出觀察者是要保持固定狀態,還是要與使用者一起移動和更新。 如果為 true,觀察範圍所定義的磁片區觀察者圖形將會在啟動時保留在原點。 如果為 false,觀察者空間會遵循使用者的頭部做為圖形的原點。

觀察者空間外的任何實體區域都不會計算網格資料,如下列屬性所定義: Is Stationary ObserverObserver Shape*和 觀察範圍

觀察者圖形

觀察者圖形會定義網格觀察者在觀察網格時將使用的磁片區類型。 支援的選項如下:

  • 軸對齊立方體 - 矩形圖形,與全局座標系統的座標軸保持一致,如應用程式啟動時所決定。
  • 使用者對齊立方體 - 旋轉以配合使用者本機座標系統的矩形圖形。
  • 球體 - 球面磁片區,其中心位於世界空間原點。 [觀察範圍] 屬性的 X 值將會當做球體半徑使用。

觀察範圍

觀察範圍會定義要觀察網格的觀察點距離。

物理設定

網格觀察者物理設定

實體層

將放置空間網格物件的實體層,以便與 Unity 物理和 RayCast 系統互動。

注意

Mixed Reality工具組預設會保留第 31 層以供空間感知觀察者使用。

重新計演算法線

指定網格觀察者是否會在觀察之後重新計算網格的常態。 此設定可用來確保應用程式在未使用網格傳回這些網格的平臺上,接收包含有效常態資料的網格。

詳細資料設定的層級

網格觀察者詳細資料設定層級

詳細資料層級

指定空間網格資料 (LOD) 的詳細資料層級。 目前定義的值為粗略、Fine 和 Custom。

  • 粗略 - 對應用程式效能造成較小的影響,而且是流覽/平面尋找的絕佳選擇。

  • - 平衡設定通常適用于持續掃描環境的大型功能、樓層和牆,以及遮蔽詳細資料的體驗。

  • 正常 - 通常對應用程式效能有較高的影響,而且是遮蔽網格的絕佳選項。

  • 自訂 - 需要應用程式指定 三角形/立方計量 屬性,並允許應用程式調整空間網格觀察者的精確度與效能影響。

注意

不保證所有平臺都接受所有 三角形/立方計量 值。 強烈建議在使用自訂 LOD 時進行實驗和分析。

每立方公尺的三角形

使用[詳細資料層級]屬性的[自訂] 設定並指定空間網格的三角形密度時有效。

顯示器設定

網格觀察者顯示設定

顯示選項

指定觀察者如何顯示空間網格。 支援的值為:

  • - 觀察者不會轉譯網格
  • 可見- 使用可見材質來顯示網格資料
  • 蔽 - 網格資料將會使用遮蔽材質在場景中遮蔽專案

選取空間感知系統實作

空間觀察者可以 透過程式碼在執行時間繼續/暫停。

警告

[顯示選項] 設定為[無] 不會停止觀察者執行。 如果您想要停止所有觀察者,應用程式必須透過 暫停所有觀察者 CoreServices.SpatialAwareness.SuspendObservers()

可見材質

指出視覺化空間網格時要使用的材質。

遮蔽材質

指出要用來讓空間網格遮蔽全像投影的材質。

另請參閱