Three.js改变网格纹理改变整个模型

时间:2016-07-27 15:37:48

标签: javascript three.js

我有一个有很多网格的模型。我想仅将纹理应用于单个网格。但问题是整个模型改变了它的纹理。我做错了什么?

function load_models(callback) {
    var loader = new THREE.OBJLoader(manager);
    loader.load(baseDir + 'files/' + model.model_name, function (object) {
        object.traverse(function(child) {
            if (child instanceof THREE.Mesh) {
                var mesh = model.meshes.filter(function(mesh) {
                    return mesh.name == child.name;
                }).shift();

                if (mesh.is_fiberboard == true) {
                    child.material.map = mesh.material.texture;
                    child.material.needsUpdate = true;
                    child.geometry.buffersNeedUpdate = true;
                    child.geometry.uvsNeedUpdate = true;
                }
            }
        });
        callback();
    });
}

enter image description here

1 个答案:

答案 0 :(得分:0)

这是Three.js 76中的一个问题。在更新为Three.js 79之后它已经消失了。