4

.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");
    }
});
4

1 に答える 1

1

テクスチャのロードに関する例を確認してください。

three.js の内容を更新する方法については、「マテリアルの更新」セクションを参照してください。 https://github.com/mrdoob/three.js/wiki/Updates

于 2013-08-10T12:13:35.010 に答える