HTC Vive 硬件(如 VIVE Cosmos)使用 OpenVR HMD 模式,该模式使用 SteamVR。VRED 使用 OpenVR 1.12.5 SDK。有关坐标系的说明,请参见下面的如何激活 OpenVR 部分。
对于使用 Vive Pro Eye 的用户,VRED 支持视角跟踪以便进行焦点渲染。
xR 主页菜单(菜单按钮)
传送(触控板)
工具提示(夹点)
指针(触发器)
必须安装 SteamVR 软件。如果尚未安装,请转至 https://store.steampowered.com/steamvr?l=schinese,然后单击“安装 Steam”。安装后,单击屏幕顶部的“VR”按钮以安装 SteamVR。
要激活 OpenVR,请执行以下操作:
使用 Vive 头戴式设备上的硬件滑块设置两眼之间的距离。在 VRED 中,通过选择“可视化”>“立体”>“立体设置”>“眼球分离”,可以覆盖此值。
检测到 Vive 控制器时,手以其跟踪姿势呈现。请参见 VR 中的手 。检测到 Vive 跟踪器时,它的简单静态几何表示以其跟踪姿势呈现。
使用 Python 脚本将行为添加到控制器和跟踪器,例如,用于对单击按钮或所跟踪设备的移动做出反应。
请参见示例文件 OpenVRExample.vpb
和在 VRED 中为 HTC VIVE 添加交互。
如果需要在场景中的某个点(例如对象前方 1 米处)开始 VR 体验,请执行以下操作:
创建一个视点 - 置于您想在其中以“站立”模式体验 VR 的场景地板上(“场景”>“摄影机编辑器”,单击鼠标右键,然后选择“创建”>“视点”)。
请参见 视点 ,了解如何创建此视点。
激活 OpenVR(请参见上文)。
激活预定义的视点。
有关坐标系的更多详细说明,请参见下一部分“摄影机”。
SteamVR 更新改变了 Vive 跟踪器的默认行为,导致 VRED 中出现跟踪器旋转问题。要解决此问题,请参见以下论坛帖子底部的答复: 答复:VRED 2019 中的 Vive 跟踪器方向问题 。有关 SteamVR 更新的更多详细信息,请参见以下文章: Vive 跟踪器最近的更改 。
房间比例和就座模式之间的唯一区别是假定的跟踪原点。跟踪值是相对于此原点报告的。
房间比例(默认值)
“房间比例”假定跟踪原点位于地板上游戏区域的中心。跟踪值相对于该中心位置。在 SteamVR 中配置游戏区域。
就坐
“就坐”跟踪原点位于用户的头部。跟踪值相对于用户已设置的就坐零姿势(首选坐姿)。此模式可能仅适用于无需真实世界与虚拟世界之间实际对应的情况。
要使用 Python 命令启用“就坐”模式,请参见 “就坐”模式 。
VRED 默认场景设置为“Z 轴向上”。在 OpenVR 模式中,VRED 默认使用“房间比例”跟踪。在下文中,我们假定场景设置为“Z 轴向上”,并使用“房间比例”跟踪模式。
VRED 活动摄影机的变换(平移和旋转)定义了场景中跟踪空间的原点/位置及其定向方式。
摄影机位置表示地板上游戏区域中首选的站立点 (~center)。VR 中的默认摄影机位置为 (0, 0, 0)。
摄影机的 Z 值位置表示地板高度。VR 中的默认摄影机高度为 0。
摄影机查看方向表示首选的前方向。VR 中的默认摄影机方向是 VRED 世界坐标系中的正 Y 轴。
首选的前方向是用户佩戴 HMD(头戴式显示器)时在真实世界中首选的查看方向。安装跟踪系统时,该方向是在 SteamVR 中设置的。
摄影机向上矢量应始终设置为 (0, 0, 1)。它是 VRED 世界坐标系中的 Z 轴。
HMD 的 VRED SteamVR 跟踪值应用于摄影机变换之上。
每次激活 OpenVR HMD 模式时,VRED 场景中的活动摄影机将设置为世界位置 (0, 0, 0) 并沿正 Y 轴方向查看。再次取消激活 OpenVR 后,摄影机将重置为其先前的位置/方向。
在以下图像中,您会从外部看到简单的示例设置:
下图显示了 VRED 摄影机如何置于地板上的原点(没有 HMD 跟踪值),以及应用跟踪值时摄影机所在的位置(以橙色显示):
在下图中,VRED 摄影机已沿 X 轴移动了 -1000 个单位。因此,已应用跟踪的摄影机也移动了 1000 个单位:
在“渲染窗口”中使用鼠标进行导航会更改活动摄影机的变换。可以在 VR 运行的同时变换活动摄影机,但这可能会导致摄影机不再处于地板标高或被不正确地旋转。因此不推荐在 VR 中使用鼠标进行导航。
在“房间比例”模式下,摄影机的 Z 轴平移值定义了地板标高。这意味着,场景中的 Z 值对应于跟踪空间中的物理地板。因此,如果场景中的地板不在 Z = 0,则相应地调整摄影机的 Z 值。
或者,您可以将摄影机置于 (0, 0, 0),并使用 Python 函数 setOpenVRTrackingOrigin(Pnt3f(x,y,z))
。
在下面的场景中,场景原点 (0, 0, 0) 位于前轮轴的中心,因此地板标高未设置为 Z = 0,而是 Z = -337。
查找地平面的 Z 值 - 要查找地平面的 Z 值,请在“场景图形”中选择“ShadowPlane”节点,单击鼠标右键,然后从菜单中选择“信息...”。在“节点信息”对话框中,查看“边界框中心”的第三个值,即世界 Z 值(地平面)。
如果此方法不适用于场景中的特定几何体,则使用“测量”模块创建临时的点到点测量。
要通过更改摄影机平移来设置地板标高,将需要激活 OpenVR。这会自动将摄影机平移设置为 (0, 0, 0)。然后,使用诸多方法之一将摄影机设置为地板标高并更改平移。
激活 OpenVR。
将摄影机平移更改为 (0, 0, -337)。您可以在“摄影机编辑器”(“场景”>“摄影机编辑器”)中执行此操作。
如果在“场景图形”中通过任何父变换节点来变换摄影机节点,则使用“变换编辑器”。在其“平移”部分中,将“坐标系”更改为“世界”以确保使用世界坐标系进行平移。
设置正确的摄影机位置后,创建一个新视点。
要在将来使用这些值,请将其存储在视点(进入 OpenVR 后会激活此视点)中。使用“摄影机编辑器”或 Python 激活视点。有关用于激活视点的 Python 函数,请参见 激活 OpenVR 和视点的快捷方式 。
在 VRED Pro 和 Design 2020.2 中,使用 HTC Vive Pro Eye 头戴式设备在 Open GL 中进行视角跟踪焦点渲染。这需要具备显卡(例如采用 Turing 架构的 NVIDIA 显卡),支持 OpenGL 扩展、着色速率图像。
Varjo 和 StarVR 头戴式设备目前不支持此选项。 对于没有视角跟踪功能的其他头戴式设备,可以启用 VR 的“焦点渲染”首选项中的选项。但是,由于无法跟踪您的视线,焦点区域将不会移动。它将保持固定在图像中心。
动态焦点渲染跟踪 VIVE Pro Eye 用户注视视角的方向。它会使用比外围更高的着色质量来渲染图像的当前聚焦区域。使用 HMD 虚拟现实首选项中的选项来加快渲染速度和/或提高视觉质量。
焦点渲染可以在使用计算密集型材质和实时抗锯齿的场景中提高性能。
视点是在“摄影机编辑器”中创建的,并且是摄影机的存储参数。变换摄影机时,它定义了场景跟踪空间的位置及其定向方式。这意味着,对于 VR,无法在普通“桌面”查看模式下重用现有的视点设置,而必须创建特殊的 VR 视点。
设置视点的变换时,可以更轻松地从外部查看带有辅助摄影机的实际摄影机(“视图”>“显示摄影机”)。完成此操作后,通过在场景中使用变换操纵器将显示的摄影机移动到所需位置。
要从“地板”摄影机创建视点,请先激活“地板”摄影机,创建视点,然后再次激活另一个摄影机以采用类似方式设置下一个视点。
创建视点之前需要激活摄影机,因为新的视点会随着活动摄影机的变换而不断创建。
平移 - 摄影机平移必须在地板上进行。
旋转 - 摄影机查看方向是首选的前方向,向上矢量必须是 0, 0, 1(VRED 世界 Z 轴)。要进行检查,请选择“场景”>“摄影机编辑器”>“高级”选项卡 >“来源/位于/至”。
激活 - 要实现即时远距传物,请在没有动画的情况下激活视点。VRED 中的视点动画在开始和结束时都有加速度,这可能会导致在 VR 中不舒适。因此,通过选择“场景”>“摄影机编辑器”>“摄影机设置”>“动画”,来取消激活“摄影机编辑器”设置中的动画。
要检查 Vive 的校准是否正确,以便虚拟场景中的测量值与真实世界 1:1 对应,请执行以下操作: