sceneview-android
sceneview-android copied to clipboard
Detect Vertical PLane
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 ->
[email protected] = reason
}
}
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
},
Already added
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.
try this
frame.getUpdatedPlanes() .firstOrNull() ?.let { plane -> addAnchorNode(plane.createAnchor(plane.centerPose)) }