将ARKit场景保存到后端并稍后加载?

时间:2017-09-17 02:33:47

标签: swift ios11 swift4 arkit

如果我的问题没有正确表达,请提前道歉;因为我是AR技术的新手,也是CS的学生。我整天都在读AR,但我还没能回答我的问题。

我的问题是:使用Apple的ARKit,我们能够从后端加载ARKit场景或会话来识别它创建的平面吗?完美的例子是WWDC演示中的保姆应用程序。我可以在我家的表面上创建图纸,将该会话保存到后端,然后当保姆过来时,它会从云中下载会话数据,并将图纸加载到保存位置吗?

再次,抱歉,如果我将问题剔除,我还没有足够的经验来正确地问这个问题。

3 个答案:

答案 0 :(得分:4)

更新:在" ARKit 2"对于iOS 12的ARKit,您确实可以保存和恢复AR会话状态。请参阅my answer to this other questionthe WWDC18 talk on ARKit 2Apple's ARKit docs and sample code

任何类型的共享AR的问题 - 两个或多个设备同时看到相同的体验,或者一个设备为其他人(甚至原始设备)进行录制以便以后体验 - 就是这样事情需要一个共享的参考框架。也就是说,坐标0,0,0需要为两个用户引用相同的真实世界位置(和方向)。

ARKit所做的一切都在相对于您开始会话时设备所在位置的引用框架中,并且它没有提供一种方法来针对任何类型的“绝对”世界坐标本地化该引用框架。也就是说,如果您尝试记录您在某些虚拟内容中放置的体验,比如0.2, -0.1, -0.5,那么以后播放该体验的唯一方式就是看到同一个真实世界位置的内容是第二个人站在完全相同的位置,将他们的装置保持在同一高度,并朝同一方向指向。

Giphy“保姆说明”演示that made the press a few weeks ago似乎主要是关于录制AR体验的视频

带有共享(或“绝对”)参考框架的AR可能是可能的,但它不是ARKit开箱即用的东西。

答案 1 :(得分:0)

另一种似乎正在起作用的方法是比较点云位置。 如果2个玩家正在查看具有相似模式的某个表面,那么您可以将其定义为新的参考点。 我做了一些实验,似乎有效 - 但它不可靠。 现在我正在测试摄影测量的新方法,其中环境的原始网格存储在云中并与摄像机中的网格进行比较。

答案 2 :(得分:0)

您可以通过扫描二维码作为锚来实现。

https://github.com/eugenebokhan/ARKit-Multiplayer