Así que tengo un modelo que hice en Blender, con toda la iluminación y las texturas horneadas, pero cuando lo importo a THREE.js (guardado en formato .glb), por defecto es el material estándar. Esto podría estar bien en algunas situaciones, pero, como dije antes, tengo toda la iluminación y las texturas horneadas. ¿Cómo puedo cambiar el material de estándar a básico sin perder mi información de cocción y texturas/tener que importarlas como imágenes separadas?
Lo que está buscando se llama KHR_materials_unlit en glTF, o "Shadeless" en Blender. Puede exportar esto desde Blender a glTF usando el siguiente gráfico de nodos :
Con esta disposición, el archivo glTF exportado tendrá KHR_materials_unlit aplicado al material, y la iluminación horneada en la textura se conservará en ThreeJS.
De esta manera puedes cargar tu modelo y ponerle un material personalizado.
Esto también debería funcionar para su modelo glb. Pero Three js recomienda encarecidamente usar gltf.
const modelPath = "your model path"; const texturePath = "your texture path" const loader = new GLTFLoader(); const texture = new TextureLoader().load(texturePath); loader.load( modelPath, function ( gltf ) { const model = gltf.scene; model.traverse((obj) => { if(obj instanceof Mesh){ obj.material = new MeshBasicMaterial({map: texture}) } } ) }, undefined, function ( error ) { console.error( error ); } );