Как добавить путь к текстуре в файле OBJ или MTL? - PullRequest
0 голосов
/ 14 октября 2019

У меня следующая проблема: мой проект состоит из файла .obj, файла .mtl и текстуры (.jpg).

Мне нужно разделить текстуру на несколько файлов. Но когда я это сделаю, координаты UV (после сопоставления и обратного сопоставления) будут одинаковыми для нескольких файлов, поэтому это вызовет ошибку при просмотре объекта с помощью meshlab.

Как я могу решить мою проблему?

1 Ответ

0 голосов
/ 25 октября 2019

Meshlab поддерживает файлы с несколькими файлами текстур, просто используя отдельный материал для каждой текстуры. Не ясно, генерируете ли вы ваши файлы obj с помощью meshlab или другой программы, поэтому я не уверен, является ли это вопросом, связанным с 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
...