混合现实中的标记

仅适用于 Varjo XR HMD 用户。

“标记”图标 使用称为原点标记的可见标记,可以在混合现实场景中轻松放置对象。坐标系将自动同步;但在进入 MR 之前需要准备好节点。

具有坐标系的标记

注意:

Varjo 提供了一个 PDF,其中包含多个可打印出来的不同大小的标记。

使用 xR 主页菜单中的 “标记”图标,以使支持的 HMD 能够检测标记。HMD 识别标记后,如果某个节点标有 VarjoMarker,则相应节点内容将移动到标记的位置。需要将标记的 ID 号设置为单独的标记。

显示 ID 号的标记

注意:

标记语法区分大小写。

可以将多个标记组合为单个标记。这样可以提高跟踪稳定性。

将多个标记组合为单个标记

例如,多个节点标有 VarjoMarker,但每个节点具有不同的标记编号。标记跟踪系统检测标记并为每个标记指定置信度值(范围为 0.0 到 1.0)。如果认为正确,则节点内容将移动到标记的位置。有关置信度值的详细信息,请参见“虚拟现实”首选项最低标记置信度

标记跟踪

仅适用于 Varjo XR HMD 用户。

标记跟踪系统检测每个标记并为其指定置信度值(范围为 0.0 到 1.0)。

例如,值为 0.9 的标记表示对标记的位置和 ID 的正确性有 90% 的置信度。

为标记准备节点

仅适用于 Varjo XR HMD 用户。

在进入 MR 之前,请按照以下步骤准备节点。请注意,在进入 MR 之前,需要缩小不适合您房间的对象。

标记的场景标记节点结构示例

  1. 添加标记,并将其重命名为 VarjoMarker

  2. 将对象节点拖放到此标记上以指定它。

  3. 创建另一个标记,并将其重命名为在 Varjo 标记上输出的数字。

    场景中的标记(带数字特写)

  4. 将同一对象节点拖放到此标记上。

使用标记

仅适用于 Varjo XR HMD 用户。

必须先标记场景中的节点,然后再继续。如果尚未完成此操作,请按照为标记准备节点中的说明进行操作。

  1. 佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。使用 VarjoMarker 标记的对象和编号标记将显示在 MR 中。

  2. 使用控制器打开 xR 主页菜单,然后选择 标记(标记)。几何体将直接跳到标记上。

    提示:

    在 xR 主页菜单中禁用“标记”可停止对象可能出现的任何抖动。

“放置”工具

仅在 MR 模式下可用。

注意:

当在协作式 MR 会话中时,会为用户同步对象的位置。

“放置”工具 用于使用激光指针将对象放置在场景中的地面上以及沿地面移动这些对象。这些对象必须具有名为 Place指定场景标记

“放置”工具使用与传送类似的方法来旋转对象,即旋转手腕。通过按控制器的“夹点”按钮,可以将旋转捕捉到 10° 角。尝试将一个对象与另一个对象对齐时使用此选项。也可以将对象置于另一个对象之上。

准备节点以进行放置

仅在 MR 模式下可用。

要拾取对象并将其放入 MR 中,必须先准备节点。如果对象对于您的房间来说太大或太小,则需要在进入 MR 之前将其缩放到适当的大小。

具有 Place 场景标记的对象的图像

  1. 创建标记,并将其重命名为 Place
  2. 在“场景图形”中,将对象节点拖放到此标记上。

使用“放置”

仅在 MR 模式下可用。

必须先标记场景中的节点,然后再继续。如果尚未完成此操作,请按照准备节点以进行放置中的说明进行操作。

在 MR 中放置对象

  1. 佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。使用 Place 标记的对象将显示在 MR 中。

  2. 通过按控制器上的“菜单”按钮打开 xR 主页菜单,然后选择 xR 主页菜单中的“放置”图标(放置)。

    当以橙色亮显时,该工具处于启用状态。当为灰色时,该工具处于禁用状态。控制器上方显示一个指示器,指明处于活动状态和被拾取的对象。

  3. 指向对象并不断挤压触发器以拾取并沿虚拟地面移动此对象。

  4. 旋转手腕以围绕上方向轴旋转对象。此操作类似于“传送”工具的操作。

    提示:

    挤压“夹点”按钮以按 10 度角度增量进行捕捉。这有助于将对象与另一个对象对齐。

用于标记的 Python

下面是适用于 Python 界面的函数,用于实现自定义版本的标记跟踪。vrImmersiveInteractionService 文档中介绍了这些函数。

createMultiMarker

vrImmersiveInteractionService.createMultiMarker(multiMarkerName, markerNames, markerType) 通过平均化多个常规标记的姿势创建一个多标记。

getDetectedMarkers

vrImmersiveInteractionService.getDetectedMarkers(markerType) 获取所有检测到的给定类型的标记。

getMarker

vrImmersiveInteractionService.getMarker(name, markerType) 获取已检测到的标记。

getMinMarkerConfidence

vrImmersiveInteractionService.getMinMarkerConfidence() 另请参见:setMinMarkerConfidence。

setMinMarkerConfidence

vrImmersiveInteractionService.setMinMarkerConfidence(confidence) 设置最低标记置信度。当检测到置信度更低的标记时,将忽略它们。对于系统已知的标记,如果更新的数据的置信度更低,将不会更新相应标记。

markersDetected

vrImmersiveInteractionService.markersDetected(markers) 检测到置信度等于或高于最低标记置信度的新标记时触发此信号。

markersUpdated

vrImmersiveInteractionService.markersUpdated(markers) 检测到置信度等于或高于最低标记置信度的新标记时触发此信号。