OBJ + MTL加载但不渲染

时间:2017-11-02 17:37:53

标签: three.js wavefront

如果我使用以下代码加载从.obj和.mtl下载 https://poly.google.com/view/9NXf-SDxJny它工作正常,我看到我的场景中呈现了这颗星。

return new Promise((resolve, reject) => 
    {
        let mtlLoader = new THREE.MTLLoader();
        mtlLoader.crossOrigin = true;
        mtlLoader.setPath(ASSETS_PATH);
        mtlLoader.load(filename + '.mtl', (materials) => 
        {           
            materials.preload();
            let objLoader = new THREE.OBJLoader();
                objLoader.setPath(ASSETS_PATH);

                objLoader.setMaterials(materials);
                objLoader.load(filename + '.obj', (obj) => 
                {   
                    this.obj = obj; 
                    resolve(true);
                });
        });
    });

但是,当我使用相同的代码从https://poly.google.com/view/4-OZNPuTqFq加载obj和mtl时,它没有显示。我没有得到任何错误。如果我删除 objLoader.setMaterials(材料); 这一行,那么我会看到蛋糕,但没有材料。所以这似乎是一个重大问题。

我有一个带有完整代码的codepen https://codepen.io/steveg3003/pen/6f0d8c4a17ed12bea49b3391a6d80ce3?editors=0010

由于

2 个答案:

答案 0 :(得分:1)

所以对我来说,解决方案是将材质文件(.mtl)中的'd'值从0.00000手动更改为1.00000

答案 1 :(得分:1)

类似的事情发生在我身上,除了模型全是黑色的。我必须打开.mtl文件,并将“ Kd 0.00 0.00 0.00”更改为“ Kd 1.00 1.00 1.00”