Как я могу загрузить свой файл glTF в SceneViewer с помощью ARCore Android SDK

Я слежу за документом в Google (https://developers.google.com/ar/develop/java/scene-viewer#ar-only).

Я помещаю файл glTF в каталог assets/models (в том же месте с Andy.obj)

и я попытался загрузить файл glTF 2.0 (из KhronosGroup Sample), но не смог:

    Intent sceneViewerIntent = new Intent(Intent.ACTION_VIEW);
    Uri intentUri =
            Uri.parse("https://arvr.google.com/scene-viewer/1.0").buildUpon()
                    .appendQueryParameter("file", "models/BoxTextured.glb")
                    .appendQueryParameter("mode", "ar_preferred")
                    .appendQueryParameter("title", "Untitled")
                    .build();
    sceneViewerIntent.setData(intentUri);
    sceneViewerIntent.setPackage("com.google.ar.core");
    startActivity(sceneViewerIntent);

В документе (ссылка на который приведена выше) нет ни малейшего понятия, как написать код для загрузки glTF из локального.

что я могу сделать для решения этой проблемы в android?

Спасибо.

изменить: источник основан на https://github.com/google-ar/arcore-android-sdk/tree/master/samples/hello_ar_java, и я работал HelloArActivity.java, версия ARCore Android SDK - 1.17.0


person Joona Yoon    schedule 04.06.2020    source источник


Ответы (1)


Решил сам.

Задайте для glTF абсолютный путь (например, /sdcard/BoxTextured.glb, а не models / BoxTextured.glb)

Я думаю, что он не может найти (также не преобразовать) относительный путь от этой функции.

Вы должны получить путь с помощью //assets/~ или чего-то еще, если хотите использовать относительный путь.


РЕДАКТИРОВАТЬ:

также есть класс Environment, у которого есть метод getExternalStorageDirectory().getAbsolutePath(). Я мог бы решить вышеуказанную проблему.

person Joona Yoon    schedule 10.06.2020
comment
знаете ли вы, что вместо ресурсов можно загружать файлы из общей папки «Загрузки»? Я хочу иметь возможность загружать модели и показывать их в SceneViewer. - person Someone Somewhere; 31.10.2020
comment
@Someone Где-то вы можете сделать в Uri.parse (Model_URL) ваш Model_URL - это ваши файлы glb - person jake; 25.11.2020
comment
Привет! Я пробовал ваше решение, но всегда получал сообщение об ошибке: Failed to Load Gltf url '/storage/emulated/0/FILENAME.glb' cause: /storage/emulated/0/FILENAME.glb. Я реконструирую свой путь к файлу, как этот Uri.parse (Environment.getExternalStorageDirectory (). GetPath () + / IlBattente_17_glb_mesh_20.glb), и использую его как этот .appendQueryParameter (file, Uri.parse (modelUrl) .toString) - person neo87; 22.03.2021