使用 ThreeJS 加载 .obj 和 .mlt 时缺少纹理

Missing textures when loading .obj and .mlt with ThreeJS

我正在做一个简单的概念验证。这涉及将简单的纹理模型从 Blender 导出到 .obj 模型文件、.mtl material 文件和一些 .jpg 纹理图像。我的模型是一个平面,上面有一个草纹理。

我遇到的问题是没有加载草纹理。我收到控制台消息,JS 代码看起来实际上正在加载图像文件,但它没有显示出来。飞机是绿色的,我不明白,因为我没有在任何地方定义颜色。我不确定这是否是渲染问题。

我查看了 ThreeJS 提供的示例,但它们与我从 blender 获得的文件略有不同。 obj 加载器示例不包含任何 .mtl 文件。 obj + mtl 加载程序示例使用了一些模型的 .dds 文件,我没有。我快速查看了一下,它与直接x有关。

我的例子在 https://www.raydowe.com/three/

有没有人有如何将 .obj、.mtl 和 .jpg 资源加载到 ThreeJS 中的示例?

所以,这很容易,你需要纹理坐标来将纹理映射到顶点。在 *.obj 中它被表示为 "vt"

https://github.com/koolkap/Obj-Mtl-Loader

这是您的工作样本

https://github.com/koolkap/Obj-Mtl-Loader/blob/master/obj/scene.obj

这是必需的 *.obj。 欢迎提问