GLTFLoader mejora la eficiencia de carga de modelos

fondo

three.js carga algunos modelos 3D con imágenes de textura en la escena 3D. La entrada son archivos .obj y las imágenes de textura correspondientes. Three.js loaders OBJLoader y MTLLoader se utilizan. El código es el siguiente:

const mtlLoader = new MTLLoader();
const objLoader = new OBJLoader();
mtlLoader.load('models/' + filename + '.mtl', materials => {
    materials.preload();
    objLoader.setMaterials(materials);
    objLoader.load('models/' + filename + '.obj', onLoad);
});

pregunta

Hay problemas de rendimiento, por lo que consideramos convertir el formato de archivo .obj a un archivo .gltf, y es necesario tener en cuenta los siguientes puntos:

1. Hay una línea en el archivo .obj que es un índice del archivo .mtl. Asegúrese de que la ruta y el nombre del archivo sean correctos.

   mtllib 左边窗帘材质测试.mtl

2. El archivo .mtl contiene la relación correspondiente entre el nodo 3D del nodo especificado y el material, y la ruta y el nombre de la imagen de la textura deben ser correctos.

map_Kd textures/2046725.5b4fa11fd8869-004.jpg

solución

Instalar el paquete de terceros obj2gltf

npm install -g obj2gltf

Conversión de formato a través de la línea de comandos

obj2gltf -i model.obj -o model.gltf

Supongo que te gusta

Origin blog.csdn.net/valsedefleurs/article/details/130389844
Recomendado
Clasificación