统一虚拟场景比例因子

本文解释了如何在虚拟Unity场景中使用任意比例,尽管Vuforia引擎要求所有目标都要精确配置为米比例。

Vuforia Engine要求以米为单位定义所有目标的大小。重要的是,要尽可能准确地配置尺寸,因为它用于计算目标的姿势——目标在空间中的位置和方向。
Vuforia融合将来自摄像机馈送和设备传感器的跟踪信息结合起来。如果目标的大小配置不正确,则根据相机图像和传感器计算的姿势不匹配,这将导致各种跟踪问题。

虚拟场景比例因子是一种简单的机制,可以将所有Vuforia目标转换为要使用的虚拟场景比例。

设置模型目标的物理比例

目标的物理大小在数据集文件中设置,但也可以在Unity检查器中为特定目标配置:

因为目标需要以米为单位进行配置,所以默认情况下,用作增强的所有虚拟内容也需要以米进行缩放,以匹配相同的大小。

然而,这可能会导致您的数字资产出现各种问题。例如,您可能希望创建一个AR体验,其中虚拟角色使用Vuforia模型目标.

示例场景

在这个场景中,您的虚拟内容可能与虚拟内容的比例不同:本例中的玩具汽车的比例为1:18,但数字字符的高度为1.75米。

缩小数字资源以匹配目标的物理大小可能是可行的,但通常会在Unity中引起问题,尤其是在使用物理或粒子系统时。

相反,使用虚拟场景因子设置将您的Vuforia目标置于您使用的任何虚拟场景比例中。设置位于Vuforia配置.

The 虚拟场景比例因子配置物理世界中一米对应的Unity场景单位数。Vuforia报告的姿势将相应变换,但场景内容不会缩放。

在我们的示例中,我们希望将从1:18玩具模型计算的姿势转换为虚拟场景,该虚拟场景包含与实际大小的汽车大小匹配的资产。这是通过在Vuforia配置中将虚拟场景比例因子设置为18来完成的。您的Vuforia目标,即模型目标和图像目标,会自动按比例调整,如上面的屏幕截图所示,但不会更改任何应用程序内容;这包括遮挡对象和目标表示。

在运行时,将自动应用“虚拟场景比例”(Virtual Scene Scale),允许您以所需的任何比例构建场景,同时使用正确的物理比例跟踪目标。

注释:HoloLens和Magic Leap设备不支持虚拟场景比例因子。在这些平台上,头部跟踪姿势不由Vuforia Engine控制,所有场景内容都需要以米为单位。因此,虚拟场景比例因子被强制为1.0。

在运行时设置虚拟场景比例因子。

在某些情况下,可能需要在运行时更改虚拟场景比例因子。
例如,在上面的一个类似示例中,您可能正在为一辆真正大小的汽车构建AR体验。然而,为了测试您的应用程序,您使用的是同一辆车的玩具模型。
通过从任何脚本调用以下值,可以在运行时更改虚拟场景比例因子,以便在真实和玩具大小的汽车模型之间切换:

VuforiaConfiguration(Vuforia配置)。实例。Vuforia.VirtualSceneScaleFactor=18f;

注意:您还需要在运行时通过调用即。图像目标设置高度(1/18f).

了解更多信息

管理模型目标缩放的最佳实践

Vuforia融合