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

Posted

技术标签:

【中文标题】加载 Collada (dae) 模型时如何在 THREE.js 中设置材质?【英文标题】:How to setup materials in THREE.js when loading Collada (dae) models? 【发布时间】:2012-01-07 01:49:41 【问题描述】:

我有以下代码:

    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】:
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 设为“未定义”,请查看 collada 对象

console.log(collada);

有时孩子里面有孩子,所以你可能必须这样做:

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

查看collada模型,然后进行相应的修改。

【讨论】:

以上是关于加载 Collada (dae) 模型时如何在 THREE.js 中设置材质?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 THREE.js 向 collada 文件 (.dae) 添加纹理?

从 Assimp 加载 Collada (dae) 模型显示不正确的法线

DAE/COLLADA 模型上 UV 映射的 Papervision 问题

iOS Xcode 从 Maya 导入 COLLADA .dae 3D 模型,同时尊重枢轴点

Blender 如何解释 Collada 文件 (.dae) 以进行装配?

如何使用 Three.js 和 Collada Loader 更新 .dae 文件中模型的特定部分