首页 > 解决方案 > 材料不适用于 obj 文件

问题描述

我正在尝试使用OBJLoaderMTLLoader库在我的三个 JS 代码中加载从 blender 2.79 导出的 3d 对象模型。对象已加载,但其材质未应用到它。

材料在循环渲染搅拌器中正确显示。

我该怎么做才能将材料应用于目标文件?

我为此使用的代码是

var mtlLoader = new THREE.MTLLoader();
mtlLoader.load("textures/reception_table.mtl", function(materials) {
    materials.preload();
    var objLoader = new THREE.OBJLoader();
    objLoader.setMaterials(materials);
    objLoader.load("textures/reception_table.obj", function(mesh) {
        scene.add(mesh);
        mesh.position.set(190, -25, 300);
        mesh.scale.set(4, 6, 4);
    });
});

这就是我的模型在 three.js 中的样子

标签: javascriptthree.js

解决方案


我该怎么做才能将材料应用于目标文件?

将材质添加到 a 实例的语法Mesh

myMesh.material = myMaterial

但是,为了将其添加到目标文件中,您可以使用文本编辑器并编辑该文件,或者您可以尝试使用不同的设置重新导出它。这可能不是 Three.js 的问题,而是您的文件的问题。Three.js 可能正在按照它被告知的方式加载所有内容。


推荐阅读