如果我的问题表达不正确,请提前道歉;因为我是 AR 技术的新手,也是 CS 的学生。我整天都在阅读有关 AR 的文章,但是我还无法回答我的问题。
我的问题是:使用 Apple 的 ARKit,我们是否能够加载 ARKit 场景或从后端进行会话以识别其创建所在的飞机?完美的例子是 WWDC 演示中的 Babysitter 应用程序。我可以在我家的表面上创建图形,将该会话保存到后端,然后当保姆过来时,它将从云中下载会话数据,并将图形加载到保存它们的位置吗?
同样,很抱歉,如果我提出了这个问题,我还没有足够的经验来正确地提出这个问题。
3 回答
**更新:**在 iOS 12 的“ ARKit 2”(又名 ARKit)中,您确实可以保存和恢复 AR 会话状态。参见我对另一个问题的回答,WWDC18 关于 ARKit 2 的演讲或Apple 的 ARKit 文档和示例代码。
任何类型的共享 AR 的问题-是两个或多个设备同时看到相同的体验,或者一个设备正在录制供其他人(甚至是原始设备)在以后使用-这类事情需要共享参考框架。也就是说,两个用户的坐标
0,0,0
必须指向相同的 real-world 位置(和方向)。相对于启动会话时设备所处的位置,ARKit 所做的所有事情都位于参考框架中,并且它没有提供一种针对任何“绝对”世界坐标来定位该参考框架的方法。就是说,如果您尝试记录将一些虚拟内容放置在
0.2, -0.1, -0.5
上的体验,则稍后播放该体验的人唯一看到该内容处于 real-world 位置的唯一方法是第二个人是否站在完全相同的位置,将其设备保持在相同的高度,并指向相同的方向。Giphy“保姆笔记”演示几周前引起媒体关注似乎主要是关于录制 AR 体验的视频。
可以使用具有共享(或“绝对”)参考框架的 AR,但这不是 ARKit 可以立即使用的功能。
似乎可行的另一种方法是比较点云位置。如果 2 个玩家正在注视具有相似图案的某个表面,则可以将其定义为新的参考点。我做了一些实验,它似乎可以工作-但它并不可靠。现在,我正在用摄影测量法测试新方法,该方法将原始的环境网格存储在云中,并与相机中的环境进行比较。
您可以通过扫描二维码作为锚点来实现。
https://github.com/eugenebokhan/ARKit-Multiplayer