ARCore Создать 3D-объект из URL и увеличить изображение - PullRequest
0 голосов
/ 23 июня 2019

У меня проблема с генерацией трехмерного объекта из 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.
...