three.js objloader 中缺少 obj material

obj missing material in three.js objloader

我在 three.js 中使用 objloader,但我正在使用的 .obj 没有加载 material。根据控制台,three.js 中的一切都正常加载。我在同一个文件夹中有三个 obj 文件,它们是 - model.jpg、model.obj 和 model.mtl.

model.obj 具有对 mtl 和 material 的引用,可以像这样使用:

mtllib model.mtl
usemtl $Material_0

model.mtl 具有以下内容:

newmtl $Material_0
Kd 0.6 0.6 0.6
Ka 0.05 0.05 0.05
Ks 0.6 0.6 0.6
illum 1

这里不应该也有 jpg 的地图线吗?还是缺少其他内容?

shouldn't there be a map line for the jpg in this as well or is there something else that's missing?

是的。如果 MTL 实际上指的是纹理(例如漫反射贴图),通常应该有一个额外的行,如下例所示。

newmtl $Material_0
Kd 0.6 0.6 0.6
Ka 0.05 0.05 0.05
Ks 0.6 0.6 0.6
illum 1
map_Kd diffuse.jpg