Я разрабатываю приложение для обнаружения поверхности для измерения. Для этой цели я использую ARCore SDK, который отлично работает для ГОРИЗОНТАЛЬНОГО ВИДА, но проблема заключается в части вертикального анализа, поскольку он не показывал никаких точек для обнаружения поверхности.
Код: Выделить всё
sceneView = findViewById(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.depthMode = Config.DepthMode.AUTOMATIC
config.instantPlacementMode = Config.InstantPlacementMode.LOCAL_Y_UP
config.lightEstimationMode = Config.LightEstimationMode.ENVIRONMENTAL_HDR
// config.updateMode=Config.UpdateMode.LATEST_CAMERA_IMAGE
}
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
Toast.makeText(this@MainActivity, "$reason", Toast.LENGTH_SHORT).show()
}
onSessionFailed={ fail->
Toast.makeText(this@MainActivity, "$fail", Toast.LENGTH_SHORT).show()
}
onSessionUpdated={
session, frame ->
// Toast.makeText(this@MainActivity, "$session", Toast.LENGTH_SHORT).show()
}
}
Уже пробовал
config.planeFindingMode = Config.PlaneFindingMode.VERTICAL
Подробнее здесь: https://stackoverflow.com/questions/780 ... -sceneview