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

标签 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

最佳答案

这是 Three.js 76 中的问题。更新到 Three.js 79 后该问题消失了。

关于javascript - Three.js改变网格纹理改变了整个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38617536/

相关文章:

javascript - 如果在点击打印按钮之前滚动表格,则粘性标题打印到页面的一半

javascript - 如何将数组转换为对象数组

javascript - 带有按钮的 Angular 下拉菜单未获取数据

javascript - 在 Javascript 中创建 setter

javascript - 在 three.js 中对组进行补间旋转,但它会在鼠标按下时重置为原始起始位置

javascript - 在 iPhone 中获取无效日期

javascript - Three.js - 如何使我的文本 Sprite 更清晰?

javascript - 导入到 Three.js 后,Blender 动画变得扭曲

javascript - 用三个js创建一个背景场景

javascript - three.js:GridHelper 制作非标准网格?