請選擇您的所在地
Australia
Österreich
België
Canada
Canada - Français
中国
Česká republika
Denmark
Deutschland
France
HongKong
Iceland
Ireland
Italia
日本
Korea
Latvija
Lietuva
Lëtzebuerg
Malta
المملكة العربية السعودية (Arabic)
Nederland
New Zealand
Norge
Polska
Portugal
Russia
Saudi Arabia
Southeast Asia
España
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
請選擇您的所在地
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
España
Suisse
Suomi
Sverige

如何在同一個場景中切換 6DoF 和 3DoF?

如果您有 6DoF 裝置並且以 6DoF 模式執行,可以假設內容能夠在 6DoF 和 3DoF 之間切換。 如果您的內容需要在 3DoF 和 6DoF 之間切換,請注意以下事項。

頭戴式顯示器與控制器

在 3DoF 中,因為固定轉換的關係,控制器通常會位於您的前方。固定轉換會讓控制器與使用控制的人保持距離,甚至在移動控制器時,此距離也不會變更。但是在 6DoF 中,必須移除固定轉換。如果未移除,控制器與使用控制的人之間始終會保持距離。
在 6DoF 中,控制器通常會和頭戴式顯示器放在同一處。此處是位置感應器的起點
Vector3(0, 0, 0)
. 如果切換至 3DoF,頭戴式顯示器和控制器會隨時固定在起點。

在虛擬實境中時,如果對頭戴式顯示器和控制器的 GameObject 沒有其他操作,您可能會看到頭部被放置在地板上,控制器的模型會從頭部的位置上出現。因此,仍需要固定轉換來保持控制器和地板之間的距離。

姿勢追蹤器

WaveVR_PoseTracker 中,將 trackPosition 設為 false (使用 3DoF 模式時)。此標記不會將位置更新成 GameObject 的轉換。這可以在您的指令碼中進行。
controllerGameObject.GetComponent<WaveVR_PoseTracker>().trackPosition = false;

trackPosition 設為 true,以切換至 6DoF 模式。

轉譯

擷取姿勢時,轉譯會將起點類型設為每個畫面系統。起點類型會決定姿勢座標 (0,0,0) 的顯示方式。
提示: 起點類型可以在執行階段中變更。

若是 3DoF,將 WaveVR 的 render.origin 設為 WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF。如需詳細資訊,請參閱 SDK API 的說明。

var render = WaveVR_Render.Instance; render.origin = WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF;

眼球至頭部轉換

眼球至頭部轉換是指從眼球空間座標變更至頭部空間座標的轉換。

舉例來說,如果您的左眼看到前方位置 (0, 0, 1) 有顆蘋果,則蘋果在真實世界的實際位置是:

HeadPose * EyeToHeadTransform * (0,0,1)

假設 EyeToHeadTransform 是:

| 1 0 0 -0.03 | | 0 1 0     0 | | 0 0 1     0 | | 0 0 0     1 |

則頭戴式顯示器的轉換是:

| 1 0 0   0 | | 0 1 0 1.8 | | 0 0 1   0 | | 0 0 0   1 |
眼球的轉換 (-0.03, 0, 0) 可以從頭部的空間取得。蘋果位於:
  • 頭部空間座標 (-0.03, 0, 1)
  • 真實世界空間座標 (-0.03, 1.8, 1)

蘋果的位置也可以透過逆轉換從真實世界空間和眼球空間得知。

EyeToHeadTransform^-1 * HeadPose^-1 * (-0.03, 1.8, 1)

EyeToHeadTransform 在 6DoF 與 3DoF 中的值可能不同。

6DoF 中的左眼 | 1 0 0 -0.03 | | 0 1 0  0.05 | | 0 0 1  0.05 | | 0 0 0     1 |

3DoF 中的左眼 | 1 0 0 -0.03 | | 0 1 0     0 | | 0 0 1 -0.15 | | 0 0 0     1 |

6DoF 轉換值會根據您的頭戴式顯示器而變更。而 3DoF 的轉換值則是根據頭部旋轉中心而定,其中 z 的值通常為 -0.15,以獲得更棒的使用者體驗。

送出
感謝您!您的意見回報可協助他人查看最實用的資訊。