请选择您的所在地
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 模式,头戴式设备和操控手柄会始终固定在原点。

在 VR 世界中,如果头戴式设备和操控手柄的 GameObject 没有其他操作,您可能会看到头部被放置在地板上,操控手柄的模型会从头部位置突出来。因此,仍需要固定转换以保持操控手柄和地板之间的距离。

姿势追踪器

在 3DoF 模式下,将 WaveVR_PoseTracker 中的trackPosition 设置为 false。此标记不会将位置更新为 GameObject 的转换,并可在您的脚本中完成。
controllerGameObject.GetComponent<WaveVR_PoseTracker>().trackPosition = false;

trackPosition 设置为 true 以切换到 6DoF 模式。

渲染

采集姿势时,渲染器将 origin type 设置为系统每帧。原点类型决定了姿势坐标(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 中可能具有不同的值。

left eye in 6DoF | 1 0 0 -0.03 | | 0 1 0  0.05 | | 0 0 1  0.05 | | 0 0 0     1 |

left eye in 3DoF | 1 0 0 -0.03 | | 0 1 0     0 | | 0 0 1 -0.15 | | 0 0 0     1 |

6DoF 模式中转换的值会根据您的头戴式设备而变化。3DoF 模式中,转换的值会基于头部的旋转中心(其中 Z 轴的值通常为 -0.15),以获得更好的用户体验。

提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。