纹理不是由OBJMTLLoader呈现的

时间:2014-06-19 15:56:18

标签: javascript three.js webgl

我有一个带有纹理的3d模型,来自Blender的OBJ / MTL / JPG格式。但是我不能用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。任何人都可以让我摆脱痛苦并告诉我我做错了什么吗?

为便于阅读:

1 个答案:

答案 0 :(得分:4)

您需要了解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