我正在尝试更改从Sketchup导出的Collada模型的材质:
我用过:
dae.traverse(function(child) {
if (child.material!==undefined) {
if (child.material.materials===undefined) {
child.material.map = THREE.ImageUtils.loadTexture( "textures/monster.jpg", null, function( child ) {
child.geometry.buffersNeedUpdate;
child.geometry.uvsNeedUpdate;
});
} else {
for (var j=0;j<child.material.materials.length;j++)
child.material.materials[j].map = THREE.ImageUtils.loadTexture( "textures/monster.jpg", null, function( child ) {
child.material.materials[j].needsUpdate;
child.geometry.buffersNeedUpdate;
child.geometry.uvsNeedUpdate;
});
};
};
};
});
然而,当我尝试更改纹理贴图,甚至整个纹理时,我的几何图形完全消失了。
我已经看过了,但没有用。 Three.js Map material showing warnings despite updating buffers
有谁知道我做错了什么?谢谢!
将我的材质从MeshLambertMaterial更改为ShaderMaterial会使几何体显示,但它是红色的。 (它应该是瓷白色)。我不应该将MeshLambertMaterial用于复杂的Collada模型吗?