如何在加载Collada(dae)模型时设置THREE.js中的材质?

5

当我加载Collada (dae)模型时,如何在THREE.js中设置材质?

我有以下代码:

new THREE.ColladaLoader().load('models/cylinder.dae',
  function(collada) {
    var model = collada.scene;
    model.scale.set(10.0, 10.0, 10.0);
        
    // attempt to set a material - doesn't work...
    collada.dae.materials[0] = new THREE.MeshBasicMaterial({
      color: 0xff0000, 
      wireframe: true 
    });
        
    scene.add(model);
});

感谢您的帮助。
1个回答

5
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load( './models/cylinder.dae',function colladaReady( collada ) {

model = collada.scene;
model_geometry = collada.scene.children[ 0 ].geometry;
model_material = collada.scene.children[ 0 ].material;

model.scale.set(10.0, 10.0, 10.0);
model.updateMatrix();
});

如果您的model_material显示为“undefined”,请查看Collada对象。
console.log(collada);

有时候存在内部嵌套的子元素,因此您可能需要执行以下操作:
model_material = collada.scene.children[ 0 ].children[ 0 ].material;

请查看Collada模型,然后相应地进行修改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接