3d MTL不';带OBJ处理的t加载

3d MTL不';带OBJ处理的t加载,3d,processing,3d,Processing,我创建了一个简短的脚本来显示欢迎屏幕,然后,一旦用户单击,就会显示一个3d模型。显示三维模型(OBJ)的代码如下所示: PShape shuttle; void setup() { ... shuttle = loadShape("shuttlecraft.obj"); ... } void draw() { ... translate(width/3, height/2); scale(10, 10, 10); shape(shuttl

我创建了一个简短的脚本来显示欢迎屏幕,然后,一旦用户单击,就会显示一个3d模型。显示三维模型(OBJ)的代码如下所示:

PShape shuttle;

void setup() {
    ...
    shuttle = loadShape("shuttlecraft.obj");
    ...
}
void draw() {
    ...
    translate(width/3, height/2);
    scale(10, 10, 10);
    shape(shuttle);
    ...
}
OBJ加载,但不加载相关的MTL。我看过另一篇类似的帖子,但提出的答案不起作用。我已经广泛地检查了处理论坛,以及处理wiki。如何加载MTL

编辑:


我相信这个问题源于MTL文件是空的这一事实。3mf中有顶点颜色,而不是纹理。因此,当3d Builder将3mf保存为OBJ时,它不保存纹理,只保存顶点颜色,这些颜色无法通过处理读取。那么,如何“正确”地将3mf转换为OBJ呢?

首先,确保您的对象文件引用了您的
.mtl
文件。例如,以下是从Blender导出的对象文件的前几行:

# Blender v2.79 (sub 0) OBJ File: ''
# www.blender.org
mtllib lefthand.mtl
o RobotHand_Cube.017
v -0.409451 -0.291475 0.250885
...
...

在第三行中,物料文件被引用:
mtllib lefthand.mtl
。当人们重命名他们的文件,忘记更改此引用以匹配新名称时,会出现一个常见错误。

经过大量研究,我终于找到了以下半指南:

它被渲染成彩色


我的模型在处理预期的纹理时使用了顶点颜色。上面创建了一个PNG纹理。我希望这能有所帮助。

我从thingiverse下载了一个模型,并用3d builder给它上色。我从3d Builder中将其保存为MTL。它自动保存了obj。另外,请注意,我没有得到一个错误,只是一个无纹理的形状。嗯,好的。我也有同样的事情发生在我身上,是的,它没有抛出错误,它只是有一个无纹理的模型,但我只是确保我的mtl文件在对象文件中被正确引用,这解决了我的问题。您是否检查了对象文件以确保其引用正确?我看到一行内容为:
mtllib shuttlecraft.mtl
。我在同一个目录中有一个文件,也称为shuttlecraft.mtl。没有其他地方提到MTL。MTL似乎没有内容,这有点奇怪。