如何加速ARCore/Sceneform中的平面检测?

7

ARCore场景形式示例项目“hellosceneform”很酷,而且运行非常好。

问题在于需要移动手机以获取放置锚点的表面。这太慢了。

我的应用程序不需要在垂直平面(墙壁)上显示任何内容,只需要在地板上显示。有没有办法跳过“移动手机”的步骤或者至少加快速度?

我尝试过:

session.getConfig().setPlaneFindingMode(Config.PlaneFindingMode.HORIZONTAL);

我曾认为如果不需要寻找垂直平面,所有的操作都会更快……但似乎并不够快。

谢谢!

3个回答

5
很遗憾,此框架受制于(即:由)它用于检测平面的计算机视觉模型。平面发现控制器(即“移动手机”的步骤)是促使用户通过摄像头提供深度信息以便于检测这些平面的模型。去除此步骤并不会加快处理速度,只会让用户没有任何指引。
如果不改进核心平面检测模型,我不认为有办法使其更快。我们所能做的最好的事情就是设计出鼓励用户更有效地侧向移动手机的用户体验引导。

0

隐藏显示用户如何移动手机的动画

 arFragment.planeDiscoveryController.hide()
 arFragment.planeDiscoveryController.setInstructionView(null)

0
加速ARCore中的平面检测非常容易。以下是代码片段:
class MainActivity : AppCompatActivity() {

    lateinit var arFrag: ArFragment

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_ux)

        arFrag = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment
        arFrag.planeDiscoveryController.hide()
        arFrag.planeDiscoveryController.setInstructionView(null)
        arFrag.arSceneView.planeRenderer.isEnabled = false
        arFrag.arSceneView.scene.setOnUpdateListener(::onFrame)
    }

    // ........................................................
}

希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接