装有MTLLoader的MTL材料似乎不起作用

时间:2018-02-14 10:02:38

标签: three.js shading

我正在使用three.js处理项目。 我有一个简单的模型(标准茶壶),我使用obj导出器从3DS Max导出一个简单的材料。

我可以使用OBJLoader加载模型,它显示没有任何问题,但是当我尝试加载相对MTL文件以获取材质和纹理时,我只是得到一种白色。

我几乎从OBJ-MTL导入示例(带有纹理的人)中复制粘贴代码,我还尝试了其他方法(遍历Object3D以获取网格以手动应用材质)

这是设置:

 var mtlLoader = new THREE.MTLLoader();
    mtlLoader.setMaterialOptions( {side: THREE.DoubleSide} );
    mtlLoader.load('moonpot.mtl', function (materials) {
        materials.preload();
        console.log(materials.materialsInfo);
        var objLoader = new THREE.OBJLoader();
        objLoader.setMaterials(materials);
        objLoader.load('moonpot.obj', function (object) {
            scene.add(object);
        });

enter image description here

我没有设置资源的路径,因为它们位于根文件夹中(并设置它无论如何都没有改变)。我正在从3DS Max导出,它可能是不兼容的吗?我从材质编辑器中将材质设置为Phong,因为我知道three.js有一个Phong材质,但我也尝试了默认选项(Blinn)并且它不起作用。 我记录了材料的内容,似乎与文件中的数据相关联。

0 个答案:

没有答案