2

我目前正在构建一个 HoloLens 应用程序,并考虑了一个需要动态创建、放置和在会话之间保持全息图的功能。这些全息图不需要在设备之间共享。

我做了一场噩梦,试图为 Unity WorldAnchors 找到(工作)实现和文档,Azure Spatial Anchors 似乎消除了它的大部分痕迹。值得庆幸的是,我已经克服了这一点,并通过使用较旧的 HoloToolkit 来实现 WorldAnchors,因为较新的 MRTK 中的 WorldAnchors 文档似乎也消失了。

我的问题(因为我找不到任何文档)是WorldAnchors 是如何工作的?

  • 我冒昧地猜测它是基于空间映射的,它提出了一个限制,即如果您有 2 个相同的房间或在原始房间中移动的物体,则锚点/s 将会丢失。

  • 我想听到的是,它是一种神奇的转换管理,这意味着我的应用程序了解它在使用之间的真实世界位置的变化,即使应用程序每次都是从不同的位置启动的。

有没有人知道答案或者我可能会在哪里寻找(除了有限的 Unity 和 MS Docs 之外)以找出实现细节?

谢谢你。

4

1 回答 1

1

我冒昧地猜测它是基于空间映射的,这存在一个限制,即如果您有 2 个相同的房间或在原始房间中移动的物体,则锚点/s 将会丢失。

我们不会透露 World Anchor 内部编码的内部实现细节,但我们可以声明它不是基于当前使用 HoloLens v1 或 HoloLens v2 的 GPS。目前,世界锚点使用空间地图中的数据进行放置。关键的底层部分是anchors依赖空间扫描,扫描可以使用wifi来提高速度和准确性,请参阅这两个参考:1 & 2

我想听到的是,它是一种神奇的转换管理,这意味着我的应用程序了解它在使用之间的真实世界位置的变化,即使应用程序每次都是从不同的位置启动的。

当然有可能有两个完全相同的房间,它们的布局完全相同,以欺骗映射认为它是同一个房间。我们在这里记录: https ://docs.microsoft.com/en-us/windows/mixed-reality/coordinate-systems#headset-tracks-incorrectly-due-to-identical-spaces-in-an-environment

于 2020-02-27T06:17:07.557 回答