车辆示例

车辆示例场景是一种将摄像机连接到正在虚拟空间中移动的车辆或平台的精简版本。

术语

此示例及其演示的功能与在移动的车辆(如汽车或火车)中使用增强现实 (AR) 设备无关。 对于此场景,请参见 HoloLens 的移动平台模式功能

此示例演示附加到移动参考系的相机。 物理摄像机本身不会移动,只是跟踪用户的设备。 但随着摄像机在虚拟世界中的拖动,摄像机在虚拟空间中的姿势会发生变化。

举例说明

假设你有一个车辆物理模型。 例如公交车模型。 此模型很简单:配备粗糙的隔板,用于隔离内壁,可能是驾驶座,甚至可能是控制板的支柱。 通常,它是实际公交车的台架。 这就像一个电影布景。 它不会移动到任何位置。

接下来,你想要使用增强现实将更精细的细节叠加到普通公交车的台架上。 可以将显示读数投影到虚拟显示面板上。 可以对管道、导轨和其他障碍物进行投影。 你想要对与应用程序相关的任何重要细节进行投影。 将虚拟公交车的内饰叠加到物理模型上。

显然,虚拟公交车细节必须与物理模拟保持一致。 World Locking Tools (WLT) 将通过 SpacePin 功能实现这一点。 本文档的概念部分以及几个更简单的示例更详细地描述了 SpacePins 的基本用法。

将虚拟内饰细节锁定到你的物理模型后,你就可以乘坐虚拟公交车游览虚拟城市了。

有人可能会说,正确的方法是让你的虚拟城市在公交车周围移动,从而呈现出公交车在城市中穿行的感觉。 毕竟,物理摄像机是不会移动的,那么它的坐标为什么要改变呢?

这篇相关文章中介绍了反对这种方法的论据。 现在我们将接受虚拟公交车的坐标将在虚拟城市中移动,而虚拟城市本身不会在虚拟空间中移动。

历来的技术是将摄像头连接到车辆的移动参考系上。 当摄像头跟踪用户的设备移动时,它相对于车辆的参考系移动,而不是相对于世界空间。

示例内容说明

摄像机树的根代表摄像机所在的车辆。 随着这个根在 Unity 的全局坐标空间中移动,摄像机的全局坐标也在不断变化。 自然地,改变摄像机的坐标并不会使摄像机在物理空间中移动。 摄像机在虚拟空间中移动,但不在物理空间中移动。

连接到车辆的其他物体也随着摄像机一起移动。 从摄像机的角度来看,其他物体是静止的,而全局空间中静止的物体似乎正在移动。 附着在车辆上的东西可以被认为是摄像机所在的车辆的一部分。 全局空间中静止的物体在视野中移动,这类似于通过车窗看到的的风景。

此示例演示了 SpacePins 在此类上下文中的两种用法。 SpacePins 也是此移动车辆(移动根)的一部分,在车辆的移动框架中照常运行。 它们允许你将虚拟车辆空间中的零件固定到物理空间。 尽管它们的坐标随着车辆移动而不断变化,但它们固定在包含摄像机的车辆框架中。 在示例场景中,车辆部件采用球体及其关联的 SpacePins 表示。

第二种用法是将车辆框架之外的坐标系附加到物理世界。 一旦它被固定到物理世界,它的坐标就会不断更新。 这使其相对于物理世界保持静止,从而使附着在其上的所有物体相对于物理环境都保持静止状态。 在此场景中,独立子空间用胶囊及其关联的 SpacePins 表示。

示例中的立方体在全局空间中是静止的,代表车辆正在通过的环境。

在此示例中,摄像机围绕原点沿圆形路径转动,始终向内看原点。 首次运行示例时,立方体似乎作为一个整体围绕几米外的一个点旋转。 更准确地说,它是围绕立方体运行的摄像机。

简短的配套视频演示了 HoloLens 2 上的示例,并对所见内容和预期内容进行了解释性评论。 为了简短起见,它缺乏上下文。 首先阅读本文将有助于理解你在视频中看到的内容。

另请参阅