VRED 2022 通过 VR 菜单在 XR 和 VR 中添加了 Varjo MR 标记放置和首选项、手势、手部深度估算以及现成的对象放置。我们还添加了适用于 Python 界面的函数,用于实现自定义版本的标记跟踪。vrImmersiveInteractionService 文档中介绍了这些函数。
仅适用于 Varjo XR HMD 用户。
使用称为原点标记的可见标记,可以在混合现实场景中轻松放置对象。坐标系将自动同步;但在进入 MR 之前需要准备好节点。
使用 VR 菜单中的 ,使支持的 HMD 能够检测标记。HMD 识别标记后,如果某个节点标记有 VarjoMarker
,则节点内容将移动到标记的位置。需要将标记的 ID 号设置为单独的标记。
标记语法区分大小写。
可以将多个标记组合为单个标记。这样可以提高跟踪稳定性。
例如,多个节点标有 VarjoMarker
,但每个节点具有不同的标记编号。标记跟踪系统检测每个标记并为其指定置信度值(范围为 0.0 到 1.0)。如果认为正确,则节点内容将移动到标记的位置。有关置信度值的详细信息,请参见“虚拟现实”首选项最低标记置信度。
仅适用于 Varjo XR HMD 用户。
在进入 MR 之前,请按照以下步骤准备节点。请注意,在进入 MR 之前,需要缩小不适合您房间的对象。
添加标记,并将其重命名为 VarjoMarker
。
将对象节点拖放到此标记上以指定它。
创建另一个标记,并将其重命名为在 Varjo 标记上输出的数字。
将同一对象节点拖放到此标记上。
仅适用于 Varjo XR HMD 用户。
必须先标记场景中的节点,然后再继续。如果尚未完成此操作,请参见为标记准备节点,然后再继续。
佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。使用 VarjoMarker
标记的对象和编号标记将显示在 MR 中。
通过控制器打开 VR 菜单,然后选择“启用标记”。
几何体将直接跳到标记上。
目前,MR 仅支持 Varjo XR HMD。
在 XR 中,VRED 将 VR X 射线材质的手替换为您自己的手。
要进入 MR,请在 VR 菜单中选择 (MR 功能)。
请注意,MR 中 XR-1 和 XR-3 支持的功能存在差异。
要查看如何使用 Python 连接手部跟踪,请选择“文件”>“打开示例”,然后导航到 vr
文件夹,您可以在其中找到 externalHandTracking.py
。这提供了如何设置手部跟踪的示例。
vrDeviceService.getLeftTrackedHand()
vrDeviceService.getRightTrackedHand()
返回的对象类型为 vrdTrackedHand
。
目前,MR 仅支持 Varjo XR HMD。
在混合现实视频中检测您的真手,并在虚拟对象前面显示它们(如果它们比该对象更近)。禁用此选项后,从 VRED 进行的渲染将始终遮挡真手,即使手比渲染的对象更近也是如此。
此选项位于 VR 菜单中。要设置此选项的默认行为,请访问“虚拟现实”首选项 >“HMD”选项卡 >“Varjo”部分。
“手部深度估算”已禁用 | “手部深度估算”已启用 |
---|---|
目前,MR 仅支持 Varjo XR HMD。
在混合现实中,使用“手部深度估算”工具显示手。
佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。
按控制器上的“菜单”按钮以访问 VR 菜单。
按 以在 MR 中查看真手。
此部分提供在与数字设计交互时支持使用的 VRED 手势。当您使用食指点击模型的某些部分以启动触摸事件、从 VR 菜单中选择工具或与 HTML 5 HMI 屏幕交互时,系统会跟踪您的手部移动。使用这些手势可以浏览场景,而无需使用控制器。
虚拟手将自动调整以匹配您的真手。
使用食指尖(左右手均可)触摸场景内容,并与场景内容(如 xR 主菜单、带有点击传感器的对象或 HTML 5 HMI 屏幕)进行交互。
要打开和关闭 xR 主菜单,请使用相同手势。
将食指移至另一只手的手掌。这将打开菜单。现在,您可以使用食指从菜单中选择一个选项。重复初始手势可关闭 VR 菜单。
有关 VR 菜单及其工具的信息,请参见 VR 菜单。
如果您的手位于虚拟对象的前面,但受其遮挡,请启用手部深度估算。
要进行传送,您需要启动传送器,确定弧和箭头方向,然后跳转到新位置。完成后,终止传送器。
要启动和终止传送,请使用相同手势。
使用一只手,点击另一只手的手背。这将从被点击的手启动传送。现在确定弧方向并传送。重复此手势可终止传送器。
在手部当前未显示传送弧时,将食指与拇指捏在一起。这将接受传送弧位置和方向,并执行传送。完成后,终止传送以退出该工具。
有关传送的信息,请参见传送。
要使用激光指针,您需要启动、执行然后终止它。
要启动和终止激光指针,请使用相同手势。
使拇指、食指和中指指向外,并使手掌朝向摄影机。现在,使用激光指针指向对象或触发与场景内容的交互。重复此手势可终止激光指针。
使用食指指向场景内容。
将食指与拇指捏在一起以触发与场景内容的交互,例如从 VR 菜单中选择工具、激活点击传感器或与 HTML 5 HMI 屏幕交互。完成后,终止激光指针以退出该工具。
仅在 MR 模式下可用。
“放置”工具使用与传送类似的方法来旋转对象,即旋转手腕。通过按控制器的“夹点”按钮,可以将旋转捕捉到 10° 角。尝试将一个对象与另一个对象对齐时使用此选项。也可以将对象置于另一个对象之上。
仅在 MR 模式下可用。
要拾取对象并将其放入 MR 中,必须先准备节点。如果对象对于您的房间来说太大或太小,则需要在进入 MR 之前将其缩放到适当的大小。
Place
。仅在 XR 模式下可用。
必须先标记场景中的节点,然后再继续。如果尚未完成此操作,请按照准备节点以进行放置中的说明进行操作。
佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。使用 Place
标记的对象将显示在 MR 中。
通过按控制器上的“菜单”按钮打开 VR 菜单,然后选择 (放置)。
当以橙色亮显时,该工具处于启用状态。当为灰色时,该工具处于禁用状态。控制器上方显示一个指示器,指明处于活动状态和被拾取的对象。
指向对象并不断挤压触发器以拾取并沿虚拟地面移动此对象。
旋转手腕以围绕上方向轴旋转对象。此操作类似于“传送”工具的操作。
挤压“夹点”按钮以按 10 度角度增量进行捕捉。这有助于将对象与另一个对象对齐。
仅适用于 Varjo XR-3 用户。
我们向“虚拟现实”首选项添加了交互首选项,以启用手部跟踪并为跟踪的手设置平移和旋转手部偏移。
在首选项中启用手部跟踪会自动为 VR 或 MR 激活它。
仅适用于 Varjo XR-3 用户。
设置默认值,以在 VR 中始终跟踪手部(启用时)。如果跟踪器设置为“Varjo 集成 Ultraleap”,还会在 XR 中为支持的 HMD 启用手部跟踪。
仅适用于 Varjo XR-3 用户。
设置用于手部跟踪的默认系统。
为其他设备设置手部跟踪
对于“自定义跟踪器”选项,必须向 VRED 的 Python 界面提供所有跟踪数据。如何执行此操作可能因设备而异;但是,如果您可以通过 Python 脚本访问跟踪数据,则需将数据设置为所用方法返回的
vrdTrackedHand
对象。这需要跟踪的手和/或不同手指关节的变换数据(有关该操作的工作方式,请参见externalHandTracking.py
示例文件)。要进行测试,请设置相应的首选项,加载脚本,然后进入 VR。您可能必须通过更改手和/或关节变换的值来修改脚本,以了解所有内容的工作方式。
设置与手的默认平移跟踪偏移。使用此选项可调整跟踪的手和 VR 中渲染的手之间的任何偏移。
设置与手的默认旋转跟踪偏移。使用此选项可调整跟踪的手和 VR 中渲染的手之间的任何偏移。
标记跟踪系统检测每个标记并为其指定置信度值(范围为 0.0 到 1.0)。
0.0 表示系统认为检测到的结果(标记 ID 和位置)100% 不正确。
1.0 表示系统认为检测到的结果(标记 ID 和位置)100% 正确。
例如,值为 0.9 的标记表示对标记的位置和 ID 的正确性有 90% 的置信度。
置信度值较低的标记看上去像是在跳动。将接受的最低置信度设置为较高的值会使系统忽略检测到的不可靠结果。
如果之前检测到某个置信度值较高的标记,但以后检测到此标记的置信度值低于最小值,将会忽略此标记,并且不会更新其位置。
设置标记跟踪系统用来确定检测到的标记位置是否正确的默认最小值。
我们向“HMD”选项卡添加了特定于 Varjo HMD 的首选项,用于设置默认本机焦点渲染状态、您进入的模式和手部深度。
需要启用视角跟踪。
在“HMD”选项卡 >“Varjo”部分中,用于设置外围对象渲染方式的默认状态。启用此选项后,外围分辨率(图像质量)会降低;但是,您的视角跟踪的区域仍以高分辨率渲染。此选项可在具有计算密集型材质的场景中以及使用实时抗锯齿时提高性能。有关焦点渲染和不同设置的详细信息,请参见自定义质量。
在“HMD”选项卡 >“Varjo”部分中,用于为 Varjo HMD 设置默认查看模式。如果始终在混合现实中工作,则将此选项设置为“MR”。
在“HMD”选项卡 >“Varjo”部分中,用于在 MR 中设置真手的默认状态。启用此选项后,将会在混合现实视频中检测您的真手,并在虚拟对象前面显示它们(如果它们比该对象更近)。禁用此选项后,从 VRED 进行的渲染将始终遮挡真手,即使手比渲染的对象更近也是如此。
“手部深度估算”已禁用 | “手部深度估算”已启用 |
---|---|
下面是适用于 Python 界面的函数,用于实现自定义版本的标记跟踪。vrImmersiveInteractionService 文档中介绍了这些函数。
vrImmersiveInteractionService.
createMultiMarker(multiMarkerName, markerNames, markerType) 通过平均化多个常规标记的姿势创建一个多标记。
参数
返回值
返回值类型
vrdMultiMarker
vrImmersiveInteractionService.
getDetectedMarkers(markerType) 获取所有检测到的给定类型的标记。
参数
返回值
检测到的标记
返回值类型
List[vrdMarker]
vrImmersiveInteractionService.
getMarker(name, markerType) 获取已检测到的标记。
参数
返回值
标记,如果未检测到名称和类型组合,则为空标记
返回值类型
vrdMarker
vrImmersiveInteractionService.
getMinMarkerConfidence() 另请参见:setMinMarkerConfidence。
返回值
最低标记置信度
返回值类型
float
vrImmersiveInteractionService.
setMinMarkerConfidence(confidence) 设置最低标记置信度。当检测到置信度更低的标记时,将忽略它们。如果更新的数据的置信度更低,则不会更新系统已知的标记。
参数
vrImmersiveInteractionService.
markersDetected(markers) 检测到置信度等于或高于最低标记置信度的新标记时触发此信号。
参数
vrImmersiveInteractionService.
markersUpdated(markers) 检测到置信度等于或高于最低标记置信度的新标记时触发此信号。
参数