У меня проблема с генерацией трехмерного объекта из URL с использованием следующего кода, он выдает ошибку, из-за которой я не уверен, что это такое. Будет здорово, если кто-нибудь укажет, что не так с кодом
Я следовал учебнику из Google: https://developers.google.com/ar/develop/java/sceneform/create-renderables. Но пришлось немного изменить из-за синтаксической ошибки.
(1) Следующий код должен генерировать трехмерный объект из URL - ASSET_URL (я протестировал этот URL, который работает).
private AugmentedImage image;
private CompletableFuture<ModelRenderable> modelRenderable;
modelRenderable =
ModelRenderable.builder()
.setSource(context, RenderableSource.builder().setSource(
context,
Uri.parse(ASSET_URL),
RenderableSource.SourceType.GLTF2)
.setScale(0.5f) // Scale the original model to 50%.
.setRecenterMode(RenderableSource.RecenterMode.ROOT)
.build())
.setRegistryId(ASSET_URL)
.build();
(2) Следующий код предназначен для размещения трехмерного объекта на изображении:
if(!modelRenderable.isDone()){
CompletableFuture.allOf(modelRenderable)
.thenAccept((Void aVoid) -> setImage(image))
.exceptionally(
throwable -> {
Log.e(TAG, "Exception loading", throwable);
return null;
}
);
return;
}
(3) Следующий код (который я изменил из образца augmentedImage из сцены) генерирует трехмерный объект из статического локального актива, который работает с кодом (2)
// modelRenderable = ModelRenderable.builder()
// .setSource(context,Uri.parse("SubstanceMiku.sfb"))
// .build();
Ошибка, которую я получаю
E/Filament: Panic
in filament::Material *filament::Material::Builder::build(filament::Engine &):85
reason: Material version mismatch. Expected 2 but received 1.
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 16333 (tapp.cloudimage), pid 16333 (tapp.cloudimage)
I/native: tracking.cc:3027 no history. confidence : 1.0
I/native: tracking.cc:3027 no history. confidence : 1.0
I/native: motion_analysis_calculator.cc:611 Analyzed frame 101
Application terminated.