我有下一个问题:我的项目由 .obj 文件、.mtl 文件和纹理(.jpg)组成。
我需要将纹理分成多个文件。但是,当我这样做时,UV 坐标(在映射和反向映射之后)在多个文件上将是相同的,因此会导致使用 meshlab 观看 obj 时出错。
我该如何解决我的问题?
我有下一个问题:我的项目由 .obj 文件、.mtl 文件和纹理(.jpg)组成。
我需要将纹理分成多个文件。但是,当我这样做时,UV 坐标(在映射和反向映射之后)在多个文件上将是相同的,因此会导致使用 meshlab 观看 obj 时出错。
我该如何解决我的问题?
Meshlab 确实支持具有多个纹理文件的文件,只需为每个纹理使用单独的材质即可。目前尚不清楚您是否使用 meshlab 或其他程序生成 obj 文件,所以我不确定这是否是与 meshlab 相关的问题。
这是一个最小的多纹理 .obj 文件的示例(8 个顶点,4 个三角形,2 个纹理)
mtllib ./TextureDouble.obj.mtl
# 8 vertices, 8 vertices normals
vn 0.000000 0.000000 1.570796
v 0.000000 0.000000 0.000000
vn 0.000000 0.000000 1.570796
v 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.570796
v 1.000000 1.000000 0.000000
vn 0.000000 0.000000 1.570796
v 0.000000 1.000000 0.000000
vn 0.000000 0.000000 1.570796
v 2.000000 0.000000 0.000000
vn 0.000000 0.000000 1.570796
v 3.000000 0.000000 0.000000
vn 0.000000 0.000000 1.570796
v 3.000000 1.000000 0.000000
vn 0.000000 0.000000 1.570796
v 2.000000 1.000000 0.000000
# 4 coords texture
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
# 2 faces using material_0
usemtl material_0
f 1/1/1 2/2/2 3/3/3
f 1/1/1 3/3/3 4/4/4
# 4 coords texture
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
# 2 faces using material_1
usemtl material_1
f 5/5/5 6/6/6 7/7/7
f 5/5/5 7/7/7 8/8/8
这是 TextureDouble.obj.mtl 文件。要测试这些文件,您必须提供 2 个名为 TextureDouble_A.png 和 TextureDouble_B.png 的图像文件。
newmtl material_0
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 1.000000
illum 2
Ns 0.000000
map_Kd TextureDouble_A.png
newmtl material_1
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 1.000000
illum 2
Ns 0.000000
map_Kd TextureDouble_B.png