ArCore: Как ограничить PlaneFindingMode только вертикальными поверхностями? - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в ARCORE и Kotlin и пробую простое приложение для Android-Kotlin, которое должно обнаруживать стены.Я знаю, что Google сделал это возможным с тегом PlaneFindingMode.VERTICAL, но я не уверен, как его использовать.

любая помощь будет оценена.

1 Ответ

0 голосов
/ 21 сентября 2018

Возможный дубликат здесь , но я все равно отвечу.

Эта реализация, вероятно, применима и к ARCore.Но я проверил это с помощью SceneForm SDK

. Сначала настройте сеанс AR и используйте функцию расширения для изменения поиска плоскости.

override fun onResume() {
    super.onResume()

    //Check if ARSession is null. If it is, instantiate it
    if(arSession == null) {
        arSession = Session(this@EdgeActivity)
        arSession?.setupPlaneFinding()
    }
}


// Setup plane detection
private fun Session.setupPlaneFinding() {

    //Create the config
    arConfig = Config(this)

    //Pause the session | Not sure if this is required for modifying plane detection. I was using this for something else, try & modify at your end
    pause()

    // Modify the plane finding mode
    arConfig?.planeFindingMode = Config.PlaneFindingMode.VERTICAL

    //Reinstate the session
    resume()

    //Sceneform requires that the ARCore session is configured to the UpdateMode LATEST_CAMERA_IMAGE. | I kept getting an exception if I remove this line. Again, this method is part of a bigger code, this particular line may not be required at your end. Try & Modify
    arConfig?.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE

    //Reconfigure the session
    configure(arConfig)

    //Setup the session with ARSceneView | Very important
    fragment.arSceneView.setupSession(this)
}
...