三个JS | Collada装载机纹理

时间:2017-10-23 12:58:21

标签: javascript three.js

我遇到了threeJS collada loader 的问题。 我收到来自后端的所有纹理 dae 模型。之后,我解析图像(纹理)并创建材质数组。

let materials = [];
textures.forEach((texture) => {
  let loadedTexture = THREE.ImageUtils.loadTexture(texture.url);
  let material = new THREE.MeshPhongMaterial({ map: loadedTexture });
});

enter image description here

然后我加载 dae 模型并尝试使用材质追加我的数组:

colladaLoader.load(daeModelFile, (collada) => {
  let model = collada.scene;

  dae.traverse( ( child ) => {
    if ( child instanceof THREE.Mesh ) {
      child.material = materials;
    }
  });

  mainScene.add(model);
});

但不是这样: enter image description here

我收到了这个: enter image description here

1 个答案:

答案 0 :(得分:1)

如果要使用dae加载THREE.ColladaLoader2文件,则无需手动应用纹理。这是由装载机完成的。请查看此示例的源代码:

https://threejs.org/examples/webgl_loader_collada.html

顺便说一句:不再使用THREE.ColladaLoader了。这是一个旧的实现,将在下一个版本中替换为THREE.ColladaLoader2

R87