【问题标题】:Dynamically change .mtl of .obj OBJMTLLoader动态改变.obj OBJMTLLoader的.mtl
【发布时间】:2013-08-08 19:23:55
【问题描述】:

如何动态更改 .obj 模型上的材料?我的每个模型都包含带有纹理的 .obj、.mtl 和 .jpg 文件。我应该以某种方式更改 .mtl 文件吗?

在下面的代码中,我将 .obj 的每个子网格的几何图形居中,然后尝试为其赋予纹理,但无论是注释代码还是 loader.load 都没有赋予它纹理。

var loader = new THREE.OBJMTLLoader();
            loader.addEventListener( 'load', function ( event ) {
                object = event.content;
                for (var i = 0; i < object.children.length; i++) {
                    THREE.GeometryUtils.merge(geometry, object.children[i].geometry);
                }
                THREE.GeometryUtils.center( geometry );
                //var materials = new THREE.ImageUtils.loadTexture("/obj/stol.mtl");
                //mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( material ) );

                var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
                mesh = new THREE.Mesh( geometry,  material );

                mesh.scale.x = 0.25;
                mesh.scale.y = 0.25;
                mesh.scale.z = 0.25;
                mesh.castShadow = true;

                scene.add( mesh );
                animate();
            });
            loader.load( '/obj/stol.obj', '/obj/stol.mtl' );

我想在我的页面上有一些按钮来触发点击时的纹理变化,例如

$(function(){
    $('#txt_01').click(function(){
        mesh.textureLoad("/obj/txt_01.mtl");
    }
});

【问题讨论】:

  • 我在找一个提示未准备好的代码,真的no1可以帮助我吗?
  • 你能和我分享一下准备好的代码@Artur Fidelus吗?

标签: three.js textures


【解决方案1】:

只需查看有关加载纹理的示例。

以及如何更新 three.js 中的内容,请参阅“材料更新”部分。 https://github.com/mrdoob/three.js/wiki/Updates

【讨论】:

  • 那些例子使用 JSON loader,我使用 obj+mtl。我设法使用了 obj+jpg 材质,但我无法通过“渲染到纹理”将其正确保存在 3dmax 中。我应该更改我的加载器以匹配这些示例吗?
  • 抱歉,我不知道你在做什么 atm 以及你的代码看起来如何以及你在做什么 3dsMax RTT 对话框
  • 好吧,毕竟你的链接还不错,我可以用 obj+jpg uvw 贴图制作改变材质的按钮。链接:edar.com.pl/test-3d-3 ...但是,它仍然不是我正在寻找的解决方案,因为我相信使用 .mtl 数组会更有效。
  • 你能更新链接@GuyGood 吗?我点击然后去了那里。但是,该站点中没有任何内容。
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多