首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改使用OBJ + MTLLoader加载的模型的材料属性?

如何更改使用OBJ + MTLLoader加载的模型的材料属性?
EN

Stack Overflow用户
提问于 2017-07-19 15:30:05
回答 1查看 565关注 0票数 0

多亏了它的配套.mtl文件,我已经成功地加载了一个.obj模型,并将正确的材质映射到模型上。但目前加载的模型非常暗,因此将发射颜色更改为白色将是一个好主意,但我找不到一个方法。我有这个:

代码语言:javascript
复制
MTLLoader.setTexturePath( '../models/' );
MTLLoader.setPath( '../models/' );
var url = "model.mtl";
MTLLoader.load( url, function( materials ) {

    materials.preload();
    OBJLoader.setMaterials( materials );
    OBJLoader.setPath( '../models/' );
    OBJLoader.load( 'model.obj', function ( object ) {

        scene.add( object );

    });
});

我试过这样做:

代码语言:javascript
复制
object.traverse (function (child) {
            if (child instanceof THREE.Mesh) {
              child.material = new THREE.MeshLambertMaterial({emissive: 'white'});
            }
         });

它自己创建一个发射材质,但忽略了我的.mtl文件。有没有办法把这两个结合起来?我似乎在任何地方都找不到任何与此相关的东西。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 15:38:56

您正在覆盖材料。您要做的是只通过更改发射值来修改它:

代码语言:javascript
复制
object.traverse (function (child) {
        if (child instanceof THREE.Mesh) {
          child.material.emissive.setHex( 0xFFFFFF );
        }
     });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45183730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档