Ios 如何使用ARKit将SCNScene与物理表对齐?

Ios 如何使用ARKit将SCNScene与物理表对齐?,ios,scenekit,augmented-reality,arkit,Ios,Scenekit,Augmented Reality,Arkit,我试图找到将SCNScene与物理表对齐的最佳策略。就像ARKit应用程序一样 目前,我正在测试映射一个简单的平面模型,其尺寸与表相同。如果我画出ARKit检测到的平面,我可以看到平面的边缘不是很精确。它们总是超出边缘(下图) 所以我不能依赖于这个平面,把模型放在这个平面的中心。模型也没有正确旋转(下图) 我有另一个想法,使用ARReferenceImage技术,拍摄桌面纹理的照片,让ARKit找到并匹配桌子的“图像”。但即使是木纹纹理,ARKit也没有足够的数据来识别它。如果你有这些错误

我试图找到将SCNScene与物理表对齐的最佳策略。就像ARKit应用程序一样

目前,我正在测试映射一个简单的平面模型,其尺寸与表相同。如果我画出ARKit检测到的平面,我可以看到平面的边缘不是很精确。它们总是超出边缘(下图)

所以我不能依赖于这个平面,把模型放在这个平面的中心。模型也没有正确旋转(下图)

我有另一个想法,使用ARReferenceImage技术,拍摄桌面纹理的照片,让ARKit找到并匹配桌子的“图像”。但即使是木纹纹理,ARKit也没有足够的数据来识别它。如果你有这些错误,它就会失败。它甚至不想做一个糟糕的比赛

我该怎么做呢? 到目前为止,我的想法是:

  • 拍摄表格的图像,并使用ARImageReference功能进行匹配。这不管用。也许我可以在表格中添加一些更有趣的特征点,比如角落里的一些二维码
  • 检测平面,然后轻触桌子上的四个角以绘制出一个正方形,并使用此选项
  • 就像WWW应用程序一样,只需将对象随机放置在平面上,然后让用户缩放、移动和旋转模型,以使其正确放置

还有什么想法吗?你认为什么是最好的方法?

我认为你可以使用两个选项

  • 您可以创建一个(仅限iOS12+)并使用它而不是ARImageReference,在创建后续ARKit会话将记住的地图时在该区域漫游。您可以稍微试验一下如何在表格的四个角落中拟合模型(这有点乏味,没有SceneView编辑器的帮助)。但是,当您加载保存的ARWorldMap并对其进行本地化时(就像ARImageReference一样),您的模型每次都应该适合表格的四个角

  • 如果你使用Unity(及其ARKit插件),它有更强大的编辑器工具(3D查看器/设计器)。有一些工具可以帮助您保存地图,就像ARWorldMap一样,但随后会将地图的详细信息引入编辑器中,这样您就可以很容易地将事情排好。工具箱可以在这里提供帮助。Placenote(iOS11+)创建了自己的“世界地图”,但它在Unity编辑器中公开了视觉细节,使事情更容易对齐,然后根据()进行本地化。地图从一开始就存储在托管云上,使跨手机共享变得更加容易


  • 注意:这两个选项都要求您保持环境通常是静态的(不是大的照明变化等),尽管这与使用ARIMageReference时的限制类似

    问题。您是否尝试将模型与特定表对齐?或者一般的任何表?@pj_mukh用于此特定表(最终结果将出现在另一个表上,但它将只有一个,我们可以控制)。这就是为什么ARImageReference技术可以工作的原因。我最终做的是数字1的一个版本。我创建一个ARWorldMap,平移/缩放/旋转模型,并保存WorldMap,然后可以将其加载回。