加载 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 模型,同时尊重枢轴点