Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 材料未应用于obj文件_Javascript_Three.js - Fatal编程技术网

Javascript 材料未应用于obj文件

Javascript 材料未应用于obj文件,javascript,three.js,Javascript,Three.js,我正在尝试使用OBJLoader和MTLLoader库在我的三个JS代码中加载从blender 2.79导出的3d对象模型。对象已加载,但其材质未应用于该对象 材料显示在正确渲染混合器的循环中 如何将材质应用于对象文件 我使用的代码是 var mtlLoader = new THREE.MTLLoader(); mtlLoader.load("textures/reception_table.mtl", function(materials) { materials.preload();

我正在尝试使用
OBJLoader
MTLLoader
库在我的三个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);
    });
});

如何将材质应用于对象文件

将材质添加到
网格的实例中的语法为

myMesh.material = myMaterial

但是,为了将其添加到对象文件中,可以使用文本编辑器编辑该文件,也可以尝试使用不同的设置重新导出该文件。这可能不是Three.js的问题,而是文件的问题。Three.js可能正在按要求的方式加载所有内容

没有人知道如何在三个js中添加材料吗?您的代码看起来不错,但如果没有看到一个工作示例,就很难判断。您的.mtl文件可能有问题。我已将文件从blender直接导出到wavefront(.obj),并且生成了.mtl文件。请尝试在“setMaterials(materials)”行之前添加“console.log(materials)”。你得到了什么结果?在添加了console.log(materials)之后,我在里面的每一个其他材质中都看到了类似的结果:InsideDoor:{…}​​​ d:“100万”​​​ 照明:“2”​​​ ka:数组(3)[1,1,1]​​​ kd:Array(3)[0.64,0.64,0.64]​​​ 柯:“0.0000000.0000000.000000”​​​ ks:数组(3)[0.5,0.5,0.5]​​​ 姓名:“内幕人士”​​​ 倪:“100万”​​​ ns:“96.078431”​​​ proto:{…}因为我是blender的新手,你能告诉我哪些设置需要更改吗@pailheadI不使用blender不幸的是,我刚刚从
three.js
的角度给出了一个通用的答案。blender exporter可能存在错误,但这实际上不是three.js的一部分,它只是一个在某个时候提供的示例,可能已被放弃。