three.js - OBJ + MTL 加载但不渲染

标签 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(materials); 那么我会看到蛋糕,但没有 Material 。所以这似乎是一个重大问题。

我有一个 codepen,其中包含完整代码 https://codepen.io/steveg3003/pen/6f0d8c4a17ed12bea49b3391a6d80ce3?editors=0010

谢谢

最佳答案

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

关于three.js - OBJ + MTL 加载但不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47081452/

相关文章:

c++ - 将 SDL-Window 的大小调整为从 Wavefront OBJ 文件生成的 OpenGL 对象

c++ - 使用Boost.Spirit解析具有混合数据类型的OBJ文件?

javascript - 使css3d渲染平面充当3JS中的地板?

javascript - 将 Three.js 场景保存到服务器的有效方法是什么?

javascript - 在 javascript 中使用 A-frame img 资源

javascript - 将 HTML5 视频标签分配给 webGL 纹理时的 CORS/跨域安全异常

python - .obj 到 python 中带有法线的原始顶点转换器

3d - Blender - Three.js - 导出/导入网格看起来很丑

java - 尝试从波前.obj文件加载纹理时,为什么在使用索引渲染(glDrawElements)时纹理显示不正确?

c++ - 如何有效地将大 std::string 的一部分转换为 float?