Загрузка модели glb в react native три с использованием компонента expo-три, не работающего на устройстве Android. Однако модель отображается в веб-версии

#android #react-native #expo #react-three-fiber

Вопрос:

Я пытаюсь создать собственные приложения react с тремя js, используя фреймворки expo-gl, expo-three.

Ниже приведен список импорта..

 import { ExpoWebGLRenderingContext, GLView } from 'expo-gl';
import ExpoTHREE, { Renderer, TextureLoader } from 'expo-three';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
import * as React from 'react';
import {
AmbientLight,
HemisphereLight,
BoxBufferGeometry,
Fog,
GridHelper,
Mesh,
MeshStandardMaterial,
PerspectiveCamera,
PointLight,
Scene,
SpotLight,
Camera,
InstancedMesh,
} from 'three';
import OrbitControlsView from 'expo-three-orbit-controls';
 

Помимо базовой настройки сцены, камеры и освещения, я пытаюсь загрузить модель glb, используя метод ExpoTHREE.LoadAsync, как показано ниже…

 const loadGlb = async ()=>{
   const obj = await ExpoTHREE.loadAsync(
   [require('./assets/suzanne.glb')],
   null,
   null}).
   then((e)=>{
       scene.add(e.scene);
       e.scene.traverse((f)=>{if(f.isMesh){f.material = new THREE.MeshNormalMaterial();}});
   })
   .catch((err)=>{console.log(err)});
   }
   
   loadGlb();
 

Используя ссылку: https://www.npmjs.com/package/expo-three

Модель загружается, когда я запускаю код в браузере на рабочем столе, но не на своем телефоне Android с помощью приложения expo. Пожалуйста, дайте мне знать, что я делаю не так.

Модель загружается в версии браузера
Модель не загружается в приложение для Android с помощью expo
Одно предупреждающее сообщение

Вы можете получить доступ к приложению здесь https://expo.io/@praful124/expo3

Ответ №1:

У меня была та же проблема, и в итоге я столкнулся с тем фактом, что он не поддерживает текстуры внутри файла glb. Но если вы найдете решение, я буду очень рад, если вы поделитесь им.

Комментарии:

1. Сейчас я пытаюсь отобразить модель с помощью веб-представления, попробуйте и эту опцию

2. На самом деле я не использовал никаких текстур в модели, но да, веб-представление с использованием PhoneGap кажется лучшим вариантом для использования в родной среде three.js применение.