3

我正在从事 AR 项目,我需要获取包括墙壁在内的水平和垂直两个表面并将 ar 对象放在该表面上。我已经尝试过以下事情来实现这一目标。但是有些它无法检测到墙壁或任何垂直表面。以下代码我已经实现。

扩展 ARFragment 的自定义 ARFragment。

class CustomARFragment : ArFragment() {
override fun getSessionConfiguration(session: Session?): Config {

    val config = super.getSessionConfiguration(session)
    config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE
    config.planeFindingMode = Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL


    return config
  }
}

我已经扩展了这个类以在我的项目中实现 ar。我仍然无法获取垂直平面。

4

1 回答 1

3

垂直检测真的很糟糕。

你需要海报、橱柜,甚至是一台正在运行的电视。可以区分墙上点的东西。否则会惨败。尝试一些分散的便签。

在没有额外深度传感器的情况下,使用标准相机进行垂直单色检测时,AR 非常糟糕。您可以使用从视图中的水平平面到颜色差异、光线到地板的各种技术来尝试克服这一点,但这并非易事,也不会带来最佳的用户体验。因此,尽管我们都渴望做一些垂直墙壁检测和 AR 放置,但又不需通过变通的工作来识别它,但它还没有实现。

这是 Griddyanmics 的一篇不错的文章,其中提供了一些很棒的细节。 https://blog.griddynamics.com/how-arkit-and-arcore-recognize-vertical-planes/

于 2019-11-14T00:22:11.867 回答