Anonymous
Как показать файл GLB в студии Android с помощью Sceneform?
Сообщение
Anonymous » 29 июн 2024, 21:42
Я хочу выбрать файл GLB с SD-карты телефона, затем, указав адрес файла или URI, показать 3D-модель в моем приложении. Я попробовал Java-код Sceneform-android, как указано в этой ссылке:
https://github.com/SceneView/sceneform- ... /java/com/ google/ar/sceneform/samples/sceneviewbackground/MainActivity.java
Итак, я попробовал этот код в mainactivity:
Код: Выделить всё
public void loadModels(Uri uri) {
CompletableFuture dragon = ModelRenderable
.builder()
.setSource(this
,Uri.parse("https://storage.googleapis.com/ar-answers-in-search-models/static/Tiger/model.glb"))
.setIsFilamentGltf(true)
.setAsyncLoadEnabled(true)
.build();
CompletableFuture.allOf(dragon, backdrop)
.handle((ok, ex) -> {
try {
Node modelNode1 = new Node();
modelNode1.setRenderable(dragon.get());
modelNode1.setLocalScale(new Vector3(0.3f, 0.3f, 0.3f));
modelNode1.setLocalRotation(Quaternion.multiply(
Quaternion.axisAngle(new Vector3(1f, 0f, 0f), 45),
Quaternion.axisAngle(new Vector3(0f, 1f, 0f), 75)));
modelNode1.setLocalPosition(new Vector3(0f, 0f, -1.0f));
backgroundSceneView.getScene().addChild(modelNode1);
Node modelNode3 = new Node();
modelNode3.setRenderable(dragon.get());
modelNode3.setLocalScale(new Vector3(0.3f, 0.3f, 0.3f));
modelNode3.setLocalRotation(Quaternion.axisAngle(new Vector3(0f, 1f, 0f), 35));
modelNode3.setLocalPosition(new Vector3(0f, 0f, -1.0f));
transparentSceneView.getScene().addChild(modelNode3);
} catch (InterruptedException | ExecutionException ignore) {
Toast.makeText(this, "ERROR!!!!!!!!!!", Toast.LENGTH_SHORT).show();
}
return null;
});
}
и в файле макета:
Я столкнулся с какой-либо ошибкой, но ничего не отображается. Пожалуйста помоги!. В чем проблема?
Подробнее здесь:
https://stackoverflow.com/questions/786 ... -sceneform
1719686550
Anonymous
Я хочу выбрать файл GLB с SD-карты телефона, затем, указав адрес файла или URI, показать 3D-модель в моем приложении. Я попробовал Java-код Sceneform-android, как указано в этой ссылке: https://github.com/SceneView/sceneform-android/blob/master/samples/3d-model-viewer/src/main/java/com/ google/ar/sceneform/samples/sceneviewbackground/MainActivity.java Итак, я попробовал этот код в mainactivity: [code]public void loadModels(Uri uri) { CompletableFuture dragon = ModelRenderable .builder() .setSource(this ,Uri.parse("https://storage.googleapis.com/ar-answers-in-search-models/static/Tiger/model.glb")) .setIsFilamentGltf(true) .setAsyncLoadEnabled(true) .build(); CompletableFuture.allOf(dragon, backdrop) .handle((ok, ex) -> { try { Node modelNode1 = new Node(); modelNode1.setRenderable(dragon.get()); modelNode1.setLocalScale(new Vector3(0.3f, 0.3f, 0.3f)); modelNode1.setLocalRotation(Quaternion.multiply( Quaternion.axisAngle(new Vector3(1f, 0f, 0f), 45), Quaternion.axisAngle(new Vector3(0f, 1f, 0f), 75))); modelNode1.setLocalPosition(new Vector3(0f, 0f, -1.0f)); backgroundSceneView.getScene().addChild(modelNode1); Node modelNode3 = new Node(); modelNode3.setRenderable(dragon.get()); modelNode3.setLocalScale(new Vector3(0.3f, 0.3f, 0.3f)); modelNode3.setLocalRotation(Quaternion.axisAngle(new Vector3(0f, 1f, 0f), 35)); modelNode3.setLocalPosition(new Vector3(0f, 0f, -1.0f)); transparentSceneView.getScene().addChild(modelNode3); } catch (InterruptedException | ExecutionException ignore) { Toast.makeText(this, "ERROR!!!!!!!!!!", Toast.LENGTH_SHORT).show(); } return null; }); } [/code] и в файле макета: [code] [/code] Я столкнулся с какой-либо ошибкой, но ничего не отображается. Пожалуйста помоги!. В чем проблема? Подробнее здесь: [url]https://stackoverflow.com/questions/78686800/how-to-show-glb-file-in-android-studio-with-sceneform[/url]