How to setup materials in THREE.js when loading Collada (dae) models?

ⅰ亾dé卋堺 提交于 2019-11-29 15:02:14

问题


How do I setup materials in THREE.js when loading Collada (dae) models?

I have the following code:

    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);
});

Thanks for any help.


回答1:


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();
});

if you are getting model_material as 'undefined', then take a look at collada object

console.log(collada);

sometimes there are children inside children, so you might have to do this:

model_material = collada.scene.children[ 0 ].children[ 0 ].material;

Take a look at collada model and then modify accordingly.



来源:https://stackoverflow.com/questions/8281681/how-to-setup-materials-in-three-js-when-loading-collada-dae-models

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!