我遇到了threeJS collada loader 的问题。 我收到来自后端的所有纹理的 dae 模型。之后,我解析图像(纹理)并创建材质数组。
let materials = [];
textures.forEach((texture) => {
let loadedTexture = THREE.ImageUtils.loadTexture(texture.url);
let material = new THREE.MeshPhongMaterial({ map: loadedTexture });
});
然后我加载 dae 模型并尝试使用材质追加我的数组:
colladaLoader.load(daeModelFile, (collada) => {
let model = collada.scene;
dae.traverse( ( child ) => {
if ( child instanceof THREE.Mesh ) {
child.material = materials;
}
});
mainScene.add(model);
});
答案 0 :(得分:1)
如果要使用dae
加载THREE.ColladaLoader2
文件,则无需手动应用纹理。这是由装载机完成的。请查看此示例的源代码:
https://threejs.org/examples/webgl_loader_collada.html
顺便说一句:不再使用THREE.ColladaLoader
了。这是一个旧的实现,将在下一个版本中替换为THREE.ColladaLoader2
。
R87