【问题标题】:Texture not being rendered by OBJMTLLoaderOBJMTLLoader 未渲染纹理
【发布时间】:2015-06-19 23:49:57
【问题描述】:

我有一个来自 Blender 的 OBJ/MTL/JPG 格式的纹理 3d 模型。但我无法用 Three,js 正确渲染它。

  • 查看器代码为identical to the example on the three.js website。我只更改了 OBJ 和 MTL 文件的路径。
  • 我很确定所有文件都在正确的位置。加载了OBJ和MTL文件,MTL文件中JPG的路径是相对于MTL文件的正确路径(我改了会有404)。

但结果是黑色模型。 My example can be found here。谁能让我摆脱痛苦并告诉我我做错了什么?

为了便于阅读:

【问题讨论】:

    标签: javascript three.js webgl


    【解决方案1】:

    您需要了解 MTL 文件中的参数代表什么。你的漫反射和环境反射是黑色的——不好。将它们更改为合理的值,如下所示:

    Kd 1.000 1.000 1.000     # white
    Ka 1.000 1.000 1.000     # white
    

    或者像这样修改你的加载器回调函数:

    node.material.color.setRGB( 1, 1, 1 );
    node.material.ambient.setRGB( 1, 1, 1 ); // no longer required (see Note)
    

    注意:材料的ambient属性已经从three.js中移除了,所以你现在只需要设置颜色。

    three.js r.71

    【讨论】:

    • 谢谢。这帮助很大!
    • @DAN 我建议不要使用 objmtlloader 因为如果您的 obj 文件大小大于 4-5Mb 浏览器会崩溃或需要 1/2 分钟。渲染对象。你可以使用 jsonloader 对我来说很好。
    猜你喜欢
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多