【问题标题】:Save ARKit scene to backend and load later?将 ARKit 场景保存到后端并稍后加载?
【发布时间】:2018-07-10 04:10:00
【问题描述】:

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

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

再次,对不起,如果我把这个问题扼杀了,我还没有足够的经验来正确地问这个问题。

【问题讨论】:

  • 您对此有什么具体的解决方案吗?我有类似的问题。

标签: swift ios11 swift4 arkit


【解决方案1】:

更新:在“ARKit 2”又名 ARKit for iOS 12 中,您确实可以保存和恢复 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 开箱即用的东西。

【讨论】:

  • 同意这一点,我一直在开发一个应用程序,其中 AR 状态需要在会话之间保持以供多个操作员使用,我能够实现基本原型的唯一方法是挂载 4房间中的战略相机并创建我当前所在房间的数字蓝图,然后使用位置 + 4 个相机为我在房间中提供估计的 x、y 位置,总之我认为这还不容易实现甚至我采用的方法都感觉设计过度,我相信这将在未来几个月/几年内大幅改善
  • 感谢@Alex 和 rickster。这比我在 Google 上找到的资源更有意义!我想我会更多地研究它,看看我是否可以用 CoreLocation 和 ARKit 破解一些东西。它可能不完全适合景观,但现在可能可以将 AR 场景固定到某个位置!
  • 请注意,Core Location 和 ARKit 在不同的规模上运行。 AR定位精度在毫米到厘米的范围内;地理定位误差在一到几米的范围内。
  • 难道不能通过在房间里放置真实世界的标记进行一些校准来获得一个共享的参考点吗?
  • @kymer 可能——至少,这是人们一直在探索的途径之一。
【解决方案2】:

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

【讨论】:

  • “参考点”是什么意思?你能更准确地了解你想做什么吗?你能“编辑”一下 ARKit 的参考点吗?也许来自核心位置位置?
【解决方案3】:

您可以通过扫描二维码作为锚点来做到这一点。

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

【讨论】:

    猜你喜欢
    • 2019-03-20
    • 2018-07-19
    • 2011-08-17
    • 1970-01-01
    • 2016-09-04
    • 2021-12-24
    • 2018-12-06
    • 2022-10-14
    • 2021-08-03
    相关资源
    最近更新 更多