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

发布于 2024-12-18 05:12:56 字数 495 浏览 3 评论 0原文

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

我有以下代码:

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

感谢您的帮助。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

物价感观 2024-12-25 05:12:56
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 模型,然后相应地修改它。

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 the 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 the Collada model and then modify it accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文