Share via


Unity 中的 相機 設定

當您戴著混合實境頭戴式裝置時,它會成為全像攝影世界的中心。 Unity 相機元件會自動處理立體轉譯,並遵循頭部移動和旋轉。 不過,若要完全優化視覺品質和 全像投影穩定性,您應該設定以下所述的相機設定。

HoloLens 與VR沉浸式頭戴式裝置

Unity 相機元件上的預設設定適用於傳統 3D 應用程式,因為其沒有真實世界,因此需要類似 skybox 的背景。

  • 在沉浸式頭戴式裝置執行時,您會轉譯使用者所看到的一切,因此您可能會想要保留 skybox。
  • 不過,在 HoloLens全像攝影頭戴式裝置執行時,真實世界應該會出現在相機轉譯的所有項目後面。 將相機背景設定為透明(在 HoloLens 中,黑色呈現為透明),而不是 Skybox 紋理:
    1. 在 [階層] 面板中選取 [主要 相機]
    2. 在 [偵測器] 面板中,尋找 相機元件,並將 [清除旗標] 下拉式清單從 Skybox 變更為純色
    3. 選取背景色彩選擇器,並將 RGBA 值變更為 (0, 0, 0, 0)
      1. 如果從程式代碼設定此專案,您可以使用 Unity 的 Color.clear

MRTK 會根據 相機系統配置檔中的組態,自動處理特定的相機設定。

Namespace:Microsoft.MixedReality.Toolkit.相機系統
Type:MixedReality 相機 System

若要檢查相機不透明,MixedReality 相機 系統具有 IsOpaque 屬性

CoreServices.CameraSystem.IsOpaque;

觀景窗設定

無論您開發何種體驗,Main 相機 一律是連接至您裝置前端顯示器的主要立體聲轉譯元件。 如果您想像使用者的起始位置為 (X: 0, Y: 0, Z: 0), 您的應用程式會比較容易配置。 由於Main 相機是追蹤使用者頭部的移動,因此可以藉由設定Main相機的起始位置來設定使用者的起始位置。

您需要做出的中央選擇是針對 HoloLens 或 VR 沉浸式頭戴式裝置進行開發。 完成之後,請跳至套用的設定區段。

HoloLens 相機設定

針對 HoloLens 應用程式,您必須針對想要鎖定場景環境的任何物件使用錨點。 我們建議使用未系結的空間,將穩定性最大化,並在多個會議室中建立錨點。

請遵循這個 逐步教學課程 ,在 Unity 專案中新增並自動設定混合實境工具組。 您也可以直接從適用於 Unity 的 MRTK 使用 MixedRealityPlayspace 類別,並將 [目標規模] 設定[世界]:

MRTK 設定視窗

MRTK 應該自動處理遊戲空間和相機的位置,但最好仔細檢查:

MRTK 播放空間

  1. 從 [階層] 面板中,展開MixedRealityPlayspace GameObject並尋找Main 相機 子物件
  2. 在 [偵測器] 面板中,尋找 [轉換] 元件,並將 [位置] 變更[X: 0,Y: 0,Z: 0]

VR 相機設定

Windows Mixed Reality 支援各種 體驗規模的應用程式,從僅限方向和固定規模的應用程式,到室內規模應用程式。 在 HoloLens 上,您可以進一步建置世界規模的應用程式,讓使用者步行超過 5 公尺,探索建築物的整個樓層和更新版本。

在 Unity 中建置混合實境體驗的第一個步驟,是判斷 您的應用程式的目標體驗規模

會議室規模或站立體驗

注意

如果您要建置 HL2,建議您建立眼球層級體驗,或考慮使用 Scene Understanding 來推理場景的地板。

使用適用於 Unity 的 MRTK MixedRealityPlayspace 類別,並將 [目標級別] 設定RoomStanding

MRTK 設定視窗

MRTK 應該自動處理遊戲空間和相機的位置,但最好仔細檢查:

MRTK 播放空間

  1. 從 [階層] 面板展開MixedRealityPlayspace GameObject並尋找Main 相機 子物件
  2. 在 [偵測器] 面板中,尋找 [轉換] 元件,並將 [位置] 變更[X: 0,Y: 0,Z: 0]

座位體驗

使用適用於 Unity 的 MRTK MixedRealityPlayspace 類別,並將 [目標級別] 設定Seated

MRTK 設定視窗

MRTK 應該自動處理遊戲空間和相機的位置,但最好仔細檢查:

MRTK 播放空間

  1. 從 [階層] 面板中,展開MixedRealityPlayspace GameObject並尋找Main 相機 子物件
  2. 在 [偵測器] 面板中,尋找 [轉換] 元件,並將 [位置] 變更[X: 0,Y: 0,Z: 0]

設定相機背景

如果您使用 MRTK,相機的背景會自動設定和管理。 針對 XR SDK 或舊版 WSA 專案,建議將相機的背景設定為 HoloLens 上的純黑色,並保留適用於 VR 的 Skybox。

使用多個相機

當場景中有多個 相機元件時,Unity 會根據 GameObject 具有 Main 相機 標籤,知道要用於立體轉譯的相機。 在舊版 XR 中,它也會使用此標記來同步處理頭部追蹤。 在 XR SDK 中,頭部追蹤是由附加至相機的 TrackedPoseDriver 腳本所驅動。

共用深度緩衝區

根據您要轉譯的頭戴式裝置類型,將您的應用程式深度緩衝區共用至 Windows,讓 app 在全像投影穩定性中提供兩個提升的其中一個:

  • 當提供深度緩衝區時,VR 沉浸式頭戴裝置 可以負責位置重新投影,並調整全像投影以在位置和方向中呈現錯誤。
  • HoloLens 頭戴式裝置 有一些不同的方法。 當提供深度緩衝區時,HoloLens 1 會自動選取 焦點點 ,將全像投影穩定性與最內容交集的平面優化。 HoloLens 2 將使用深度 LSR 來穩定內容(請參閱。

MRTK 的組態對話框 會嘗試設定 XR SDK 和舊版 WSA 的深度緩衝區設定,但最好檢查這些索引標籤,並確認 Unity 中的設定。

使用裁剪平面

在混合實境中,轉譯內容太接近使用者可能會感到不舒服。 您可以在 相機元件上調整近遠剪輯平面

  1. 在 [階層] 面板中選取 [主要 相機
  2. 在 [偵測器] 面板中,尋找 相機元件裁剪平面,並將 [接近] 文本框從 0.3 變更為 0.85。 更接近轉譯的內容可能會導致使用者不適,而且應該根據 轉譯距離指導方針來避免。

最近使用相機

如果您要建置 座位規模體驗,您可以藉由呼叫 XR,在使用者目前頭部位置的最新 Unity 世界起源。舊版 XR 中的 InputTracking.Recenter 方法,或 XR SDK 中的 XRInputSubsystem.TryRecenter 方法。

傳送

此功能通常保留給 VR 體驗:

MRTK 提供一個內建 的遠端傳輸系統 ,可自動跨清楚的手部和控制器運作。

重現模式

HoloLens 和沉浸式頭戴式裝置都會重新投影您的應用程式轉譯的每個畫面,以在發出光子時調整用戶實際頭部位置的任何錯誤。

預設情況:

  • 如果應用程式為指定的畫面提供深度緩衝區,VR 沉浸式頭戴裝置 將負責位置重現。 沉浸式頭戴式裝置也會調整全像投影,以在位置和方向上呈現錯誤。 如果未提供深度緩衝區,系統只會以方向更正錯誤。
  • HoloLens 2 之類的全像攝影頭戴式裝置 會負責應用程式是否提供其深度緩衝區的位置重現。 不需要 HoloLens 上的深度緩衝區即可進行位置重現,因為轉譯通常會因為真實世界所提供的穩定背景而疏鬆。

MRTK 目前沒有重現模式的協助程式。 如需詳細資訊,請參閱其他索引標籤之一。

下一個開發檢查點

如果您遵循我們制定的 Unity 開發旅程,您正在探索 MRTK 核心建置組塊。 接下來,您可以繼續進行下一個建置組塊:

或者,直接跳到混合實境平台功能和 API 的主題:

您可以隨時回到 Unity 開發檢查點

另請參閱