Приложение ARCore (Sceneform) аварийно завершает работу при визуализации нескольких моделей - PullRequest
0 голосов
/ 04 марта 2020

Я искал решение этой проблемы, и они, похоже, не являются чем-то отличным от нескольких вещей, которые я пробовал, к сожалению, не сработало.

Я следую этому уроку : https://www.youtube.com/watch?v=2xkZUPUbgoM

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

Это код, который я использую в данный момент для создания / рендеринга 3D-моделей:

private void createModel(AnchorNode anchorNode, int currentlySelected) {
    if (currentlySelected == 1){
        TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());

        transformableNode.getScaleController().setMinScale(0.05f);
        transformableNode.getScaleController().setMaxScale(0.1f);
        transformableNode.setParent(anchorNode);
        transformableNode.setRenderable(modelRenderable);
        transformableNode.select();
    }
}

arFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
        if (currentlySelected == 1)
        {
            Anchor anchor = hitResult.createAnchor();
            AnchorNode anchorNode = new AnchorNode(anchor);

            anchorNode.setParent(arFragment.getArSceneView().getScene());

            createModel(anchorNode, currentlySelected);
        }
    });

Спасибо за чтение и заранее помощь.

Я только что подумал об оптимизации памяти. Можно ли переместить этот код в фоновый поток до тех пор, пока 3D-модель / представление не будет нарисована?

...