#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. Пожалуйста, дайте мне знать, что я делаю не так.
Вы можете получить доступ к приложению здесь https://expo.io/@praful124/expo3
Ответ №1:
У меня была та же проблема, и в итоге я столкнулся с тем фактом, что он не поддерживает текстуры внутри файла glb. Но если вы найдете решение, я буду очень рад, если вы поделитесь им.
Комментарии:
1. Сейчас я пытаюсь отобразить модель с помощью веб-представления, попробуйте и эту опцию
2. На самом деле я не использовал никаких текстур в модели, но да, веб-представление с использованием PhoneGap кажется лучшим вариантом для использования в родной среде three.js применение.