首页 > 解决方案 > three.js 会静默加载 .mtl 文件吗?它们对于映射纹理是否必要?

问题描述

我注意到与我的 .obj 导出一起导出的 .mtl 文件不是我在使用 Three.js 时需要直接加载的东西,但我想知道如果库可以在同一个文件中找到它,是否会静默加载它它从中提取 .obj 的目录。我注意到在我没有包含 .mtls 的目录中,纹理没有映射到我的模型,我试图了解它们对 Three.js 的重要性(如果有的话)。three.js 会静默加载 .mtl 文件吗?它们对于映射纹理是否必要?

标签: three.js

解决方案


three.js 会静默加载 .mtl 文件吗?

不会。如果您只使用OBJLoader,将忽略任何相关MTL文件并应用默认材料。您必须使用MTLLoader以下示例中演示的方法来加载任何材料定义。正如您在源代码中看到的,您实际上执行了两个请求。您首先加载该文件MTL,然后加载该OBJ文件。

https://threejs.org/examples/webgl_loader_obj_mtl.html

它们对于映射纹理是否必要?

不,纹理坐标在OBJ文件中定义。因此,您可以OBJ在加载后手动加载并应用纹理,如下所示:

https://threejs.org/examples/webgl_loader_obj.html


推荐阅读