вторник, 9 июля 2013 г.

Как исправить путь к библиотекам и текстурам в файле .obj

Возможно вы часто сталкивались с такой ситуацией, как "битый путь" к текстуре в obj, который вы скачали с интернета или вам его передал знакомый. Лично я, помню, переназначал текстуры вручную через редактор материалов в 3ds max. Когда текстур было много, то это была каторга. 
Совсем недавно опять столкнулся с такой ситуацией, но в этот раз было ещё хуже. Названия текстур были написаны на русском и отображались в неправильной кодировке. Поэтому их пришлось переназначать наугад. К тому же путь к библиотеке был указан для другого компьютера. В итоге я потратил не мало полезного времени для переназначения текстур, а мог бы его потратить на что-то другое.
Но как оказалось, форматы obj и mtl это обычные text/plain объекты. Т.е. простым языком - это текстовые файлы. И их можно открыть любым текстовым редактором (для больших файлов лучше воспользоваться чем-то мощным, вроде Word). 
Проблемы с неправильным путём решаются просто. Открываем файл. Далеко идти не нужно, путь к библиотеке материалов находится сразу в начале файла. Находим строчку с mtllib и удаляем неправильный путь к файлу, оставив только само название файла к примеру my_material.mtl (пишете название файла с материалами, который должен лежать в той же папке, что и obj).
Проблема с неправильными путями к текстурам тоже решаются подобным образом. Открываем файл в ворде и устанавливаем правильную кодировку (в моём случае кодировка оказалась Турецкая (Windows), а я исправил на Кириллица (Windows)). Теперь нам нужно найти map_Ka, map_Kd и map_Ks, которые содержат пути к файлам текстур. Для каждого материала свои пути. Нам нужно просто удалить весь путь и оставить только название файла (с расширением). Главное чтобы текстуры лежали в той же папке что и obj файл. Если же вы не хотите смешивать obj файл и текстуры, то положите их в отдельную папку (например textures). Пусть эта папка лежит вместе с obj и mtl файлами. Просто добавьте перед названиями текстур в mtl файле название этой папки (к примеру textures\).

Комментариев нет:

Отправить комментарий