SceneView / sceneview-android

SceneView is a 3D and AR Android Composable and View with Google Filament and ARCore. This is a Sceneform replacement in Kotlin
Apache License 2.0
758 stars 151 forks source link

Detect Vertical PLane #424

Closed SyedMoizoffical closed 1 month ago

SyedMoizoffical commented 4 months ago
place object on vertical surface  ,Issue is that in not detect vertical surface ,Horizontally work fine ,

   sceneView = findViewById<ARSceneView?>(R.id.sceneView).apply {
        planeRenderer.isEnabled = true
        configureSession { session, config ->
            config.depthMode = when (session.isDepthModeSupported(Config.DepthMode.AUTOMATIC)) {
                true -> Config.DepthMode.AUTOMATIC
                else -> Config.DepthMode.DISABLED
            }
            config.planeFindingMode=Config.PlaneFindingMode.VERTICAL
            config.instantPlacementMode = Config.InstantPlacementMode.DISABLED
            config.lightEstimationMode = Config.LightEstimationMode.ENVIRONMENTAL_HDR
        }
        onSessionUpdated = { _, frame ->
            if (anchorNode == null) {
                frame.getUpdatedPlanes()
                    .firstOrNull { it.type == Plane.Type.VERTICAL }
                    ?.let { plane ->
                       addAnchorNode(plane.createAnchor(plane.centerPose))
                    }
            }
        }
        onTrackingFailureChanged = { reason ->
            this@MainActivity.trackingFailureReason = reason
        }
    }
UmerHamza commented 4 months ago

sessionConfiguration = { session, config -> config.depthMode = when (session.isDepthModeSupported(Config.DepthMode.AUTOMATIC)) { true -> Config.DepthMode.AUTOMATIC else -> Config.DepthMode.DISABLED } config.lightEstimationMode = Config.LightEstimationMode.ENVIRONMENTAL_HDR

            config.planeFindingMode = Config.PlaneFindingMode.VERTICAL.    // add this for vertical surface
        },
SyedMoizoffical commented 4 months ago

Already added

devR2id commented 4 months ago

Have you tried Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL?

In the little time I've been developing with this library, I don't notice that the VERTICAL configuration was available.

UmerHamza commented 4 months ago

try this

frame.getUpdatedPlanes() .firstOrNull() ?.let { plane -> addAnchorNode(plane.createAnchor(plane.centerPose)) }