Как настроить материалы в THREE.js при загрузке моделей Collada (dae)? - PullRequest
5 голосов
/ 27 ноября 2011

Как настроить материалы в THREE.js при загрузке моделей Collada (dae)?

У меня есть следующий код:

    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 голосов
/ 07 июня 2012
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;

Взгляните на модель коллады, а затем внесите соответствующие изменения.

...