Загрузка 3D-модели из внутреннего хранилища с помощью библиотеки SceneformAndroid

Форум для тех, кто программирует под Android
Anonymous
Загрузка 3D-модели из внутреннего хранилища с помощью библиотеки Sceneform

Сообщение Anonymous »

Я использую библиотеку SceneView для представления своих 3D-моделей. Обычно я загружаю 3D-модели из папки ресурсов, и мое приложение работает нормально.

Код: Выделить всё

   Scene(
modifier = Modifier.fillMaxSize(),
engine = engine,
modelLoader = modelLoader,
cameraNode = cameraNode,
childNodes = listOf(centerNode,
rememberNode {
ModelNode(
modelInstance = modelLoader.createModelInstance(
assetFileLocation = "models/$aircraftModelName" ), //works correctly!
scaleToUnits = 1.5f
)
}),
environment = environmentLoader.createHDREnvironment(
assetFileLocation = "environments/sky_2k.hdr"
)!!,
onFrame = {
centerNode.rotation = cameraRotation
cameraNode.lookAt(centerNode)
}
)
Но на этот раз я хочу, чтобы мое приложение загружало 3D-модель из внутреннего хранилища после ее загрузки. Но проблема в том, что когда я даю библиотеке адрес файла в папке внутреннего хранилища, она вместо открытия файла показывает мне папку, в которой находится файл модели.

Код: Выделить всё

         val fileName = "a4.glb"
val file = File(context.filesDir, fileName)
val modelAddress :String = file.absolutePath

Scene(
modifier = Modifier.fillMaxSize(),
engine = engine,
modelLoader = modelLoader,
cameraNode = cameraNode,
childNodes = listOf(centerNode,
rememberNode {
ModelNode(
modelInstance = modelLoader.createModelInstance(
assetFileLocation = modelAddress ), // here is model address
scaleToUnits = 1.5f
)
}),
environment = environmentLoader.createHDREnvironment(
assetFileLocation = "environments/sky_2k.hdr"
)!!,
onFrame = {
centerNode.rotation = cameraRotation
cameraNode.lookAt(centerNode)
}
)

введите здесь описание изображения
Я пробовал разные методы адресации, но все они дают один и тот же результат, и вместо отображения 3D-модели они просто открывают папка модели.

Подробнее здесь: https://stackoverflow.com/questions/792 ... rm-library

Вернуться в «Android»