关于 ARCore 垂直规划与展示

About ARCore vertical plan and show

有个问题,最近在学习GoogleARCore,想实现检测垂直面,并且像水平面一样,也可以渲染一个平面,我觉得还有垂直检测ARCore,但是如何展示和使用呢?

目前在ARCore预览版中,ARCore中只有水平面检测。

Jane Friedhoff 有一个有趣的解决方法来检测垂直平面并在 this 文章中写到:

In order to orient portals perfectly on surfaces, we would want to put the portal in the right place, and then rotate it so it’s flush with the surface. One way to do this is to get the plane’s normal (the vector perpendicular to its surface), and adjust our portal’s orientation to match. But complicating this is that ARCore — like many other AR SDKs — only supports flat plane detection, ie floors and tabletops. Vertical features, such as walls, are treated as part of the point cloud, not detected as planes. As such, they do not have real normal values. So how can we work around this?

While watching folks play around with Portal Painter, I noticed that when they drew on walls, they typically drew on them head-on — not from an angle. This meant that most of the time, we could assume that the correct orientation of a vertical portal was simply facing the camera. We could get a surprisingly good hit rate by combining plane normals for the horizontal portals, and “facing the camera” for the vertical ones.

此解决方法可能仅适用于像她这样的应用程序,但提供了一种有趣的快速方法来估计垂直平面上对象的姿态。

几个月前我参加 Google Tango 研讨会时,当时 arcore 还没有发布,而 arkit 发布了。我问工程师 Tango 和 arkit 之间的主要区别。他们的回应是,tango 可以使用他们的点云系统检测几乎任何方向的平面,我可以确认,当我在 Google 的 2 天研讨会中使用它时,它确实工作得很好。两者使用不同的技术来理解物理世界,但我猜测与使用光学的 one/two 相机解决方案相比,使用 2 个红外深度传感器,您可以获得更多深度信息以确定不同表面的更多信息流量判断foreground/background。也许他们能够在某种程度上做到这一点,但如果没有合适的硬件,结果对于 public 版本来说不够稳定。