.

Экспорт единой текстуры сцены в 3dMax

Эта заметка написана ламером для ламеров. Так что если, кто-то знает как эти вещи делать правильно, расскажите! Если же вы не эксперт в 3dmax, но вам нужно экспортировать какую-то модель с единой текстурой, как мне, эта заметка для вас. Экспорт всех материалов сцены, а также освещения в одну простую текстуру нужен в частности для некоторых игровых движков. Короче, если вы не знаете зачем это надо, идите лесом..) Или приходите на курсы иллюстратора в Минске на курс обучение 3D-анимации в Минске.

Дело в том, что пытаясь сделать эту процедуру я по незнанию сделал ряд ошибок и в итоге всё экспортировалось неправильно. Ошибки эти от кривости рук и недостатка опыта. Возможно кто-то из вас тоже мог на них напороться. В этой заметке я кратко опишу весь процесс работающего экспорта чтобы люди не тратили время методом тыка. Все действия описываются для 3d max. В других версиях всё аналогично.

Откройте свою модель в 3d max и после этого никогда не сохраняйте, потому что мы будем её херить в процессе экспорта :) Экспортируемый объект должен быть только один. Если у вас их несколько, то сконвертируйте их в editable poly или editable mesh, а затем соедините с другими объектами с помощью кнопки Attach. Далее выделите полученный объект, который вы хотите экспортировать. На этом этапе у вас уже должно быть расставлено освещение и отлажен итоговый вид с помощью обычного рендеринга в 3dmax. Теперь кликаем Rendering -> Render to texture или просто нажмите клавишу «0» на клавиатуре.

Экспорт единой текстуры сцены в 3dMax


Откроется окно рендеринга в текстуру, с помощью которого мы соединим все наши текстуры и освещение в одном графическом файле. Если вы не знаете что такое запекание текстуры в 3dmax, то почитайте эту или вот эту статью. Идите отсюда, читайте. Почитали, но всё ещё не знаете как всё экспортировать? Не беда, сейчас всё будет ясно. Выставьте настройки, как показано на скриншоте. Красным я выделил те пункты, которые изменил для себя. Обратите на них внимание. Если вы понимаете (а вы должны) для чего каждый пункт нужен, можете изменить его под себя. Важно тут выставить автоматическую генерацию новых текстурных координат. Почему? Потому что если оставить Use existing channel, то освещение в текстуре будет неправильным, образуются черные резкие полигоны в совершенно неожиданных местах. Так что рендеринг с использованием существующих текстурных координат к сожалению не работает. Поэтому выставляем Use automatic unwrap в какой-нибудь несуществующий Channel.

После выбора настроек в самом низу окна нажмите кнопку Render. Вы получите примерно такой результат:


Экспорт единой текстуры сцены в 3dMax


3d max рассчитает новые текстурные координаты и добавит в стек модификаторов штуку под названием Automatic Flatten UVs. Этот модификатор накладывает на модель новые текстурные координаты. Если его удалить из стека, вступят в силу предыдущие текстурные координаты. Кроме того, после рендеринга текстуры будут изменены ваши материалы в сцене. В Diffuse map будет вставлена свежезапечённая текстура, а сам объект в итоге может выглядит тёмно. Т.е. в 3dmax он будет отображаться неправильно. Но это всё неважно...)

Теперь важный момент. Ни в коем случае не надо нигде использовать изображение текстуры из окна результата рендеринга. С виду оно нормальное, но на самом деле сильно отличается от файла, который вы указали в target настройке. Если использовать картинку из того окошка, то при наложении на объект появятся резкие белые или тёмные рёбра. Неизвестно почему, но это происходит, так что надо использовать файл, который сгенерил рендерер. Если открыть этот файл в фотошопе, то мы увидим примерно следующую картинку:


Экспорт единой текстуры сцены в 3dMax


Текстура может оказаться темноватой, как здесь. Это из-за того, что 3dmax зачем-то прописал в PNG файл нестандартную гамму, более тёмную. Не знаю почему и зачем, но вы возможно знаете. Так или иначе, это можно исправить в фотошопе с помощью Image -> Adjusments -> Levels или каким-то другим способом откорректировать гамму текстуры. Полученную текстуру можно уже использовать в игровом движке или там где вам надо.

Но это ещё не всё. Если вы экспортировали модель до этого, то она будет содержать старые текстурные координты, которые теперь изменились. Так что необходимо заново экспортировать модель чтобы она содержала правильные текстурные координаты. Собственно выбор Output to source в настройках рендеринга текстуры был нужен именно для этого. Чтобы затем экспортировать модель с новыми текстурными координатами. Я экспортировал модель в формат Collada (DAE).


Экспорт единой текстуры сцены в 3dMax


Соответственно, вы экспортируйте куда вам надо. Готово! Теперь у вас есть текстура и модель, которые можно использовать в ваших приложениях.

Напоследок покажу как выглядела модель в моей игрушке:


Экспорт единой текстуры сцены в 3dMax


Всё экспортировалось правильно, и текстура и модель. Желаю вам удачи в ваших проектах!

P.S.: А если вы хотите запечь несколько объектов в одну текстуру, то хотите дальше, потому что стандартный RTT этого не позволяет. Почитайте эту тему на буржуйском форуме и сделайте свои выводы. А вывод будет следующий: надо использовать плагин Flatrion. Его вы также можете найти на торрентах. Процедура, описанная в данной заметке делается плагином Flatrion в два клика. Даже новую развертку генерить не надо. Всё прекрасно работает сразу. Вот такие пироги.



Hosting Ukraine
Hosting Ukraine


Предложить

Дата Окончане проекта

Сумма проекта

×