首页 > 解决方案 > 如何使用 Unity 和 ARCore 围绕真实世界对象(如瓶子)生成表面/平面?

问题描述

我使用 HelloAR 场景(随 ARcore 包提供)构建了一个 apk。该应用程序仅检测像桌子一样的水平表面,并在其上创建自己的半透明平面。当我在瓶子周围移动手机时,该应用程序再次创建了一个穿过瓶子的水平面。我希望 ARCore 在我移动手机时沿着瓶子创建平面,就像网格中的多边形一样。

另一种情况是,我在地板上放了两本书,每本书的厚度都不一样。但是 HelloAR 应用程序只在较厚的书上创建一个半透明的水平表面,而不是创建两个表面(每本书一个)。

这里出了什么问题?如何修复它并让 HelloAR 应用程序更准确地工作?请帮忙。

软件:Unity v2018.2、
ARcore v1.11.0

标签: unity3darcore

解决方案


ARCorepoint cloud使用设备的软运动生成一个近似值来识别特征点,这些点是通过不同形状的对比来检测的,如果您在统一的测试模式下使用您的应用程序,您可以看到这些点是如何放置在您的空场景中的.

一旦程序有足够的点"same height"(我不知道确切的精度),它就会生成你可以看到的平面,但它不会检测相隔 5 厘米甚至更远距离的平面。

如果您想知道应用程序的大致精度,请统一测试并编写脚本以捕获已用于生成平面的生成点,然后检查Y difference以查看公差距离。


推荐阅读