Мало-помалу, но мы движемся к цели. Сегодняшняя часть эпопеи о создании огнетушителя в 3ds Max будет посвящена теме о запекании карт нормалей (Normal map) и AO (Ambient Occlusion) из высокополигональной модели. В процессе разработки компьютерных игр картам Normal и AO отводятся ведущие роли, и нам понадобится сгенерировать эти карты до того, как мы займёмся текстурированием, поскольку последнее зависит от них. А для тех, кто забыл, на чём мы остановились, вот ссылочка на предыдущую часть по созданию развертки модели.
Ну что ж, давайте начнём разбираться с вопросом о том, каким образом можно запечь карты Normal и AO в 3ds Max.
Самое главное — это правильно расположить хай-рез (высокополигональный) и лоу-рез (низкополигональный) меши модели. В нашем примере мы начнём работу с упорядочивания некоторых слоёв, ведь когда правильно используешь слои и даёшь им заданные по определённым правилам названия, то работается проще.
Как видно, я поместил хай-рез меш в слой Hi_Mesh, а лоу-рез версию модели — в слой LO_Mesh. После этого нужно разместить обе сетки в одном положении в пространстве координат так, чтобы они полностью совпадали друг с другом. Для точной подгонки задействуйте инструмент Align (Выровнять).
2. Группы сглаживания полигональной сетки должны быть разделены в соответствии с тем, как эта сетка развёрнута. Существует два способа назначения групп сглаживания объекту. Первый — вручную выделить полигоны, которые вы хотите сгладить, и выбрать другой номер группы сглаживания.
Второй способ состоит в использовании какого-нибудь умного скрипта, который сделает всю работу за нас. Я отдаю предпочтение скрипту Textools. Это бесплатный, простой в применении и очень полезный скрипт. Скачать его можно отсюда >>>
С установкой тоже никаких проблем возникнуть не должно. Просто перетащите файлик скрипта в интерфейс программы 3ds Max, и при запросе системы выберите Quick Install (Быстрая установка). После завершения установки появится «плавающая» панель инструментов, как показано ниже.
3. Выделим модель Low-Res и перейдём к пункту меню Tools > Smoothing Groups from UV shells (Инструменты > Группы сглаживания из оболочки проекционных координат).
Этим действием мы автоматически применили к модели несколько модификаторов, как показано на следующем скриншоте. Выполните Collapse всех модификаторов и преобразуйте каркасную сетку модели в Editable Poly.
4. В ряде случаев, когда проекционные координаты полигонов накладываются друг на друга, могут возникнуть проблемы с картами Normal и AO (Ambient Occlusion). Поэтому все перекрывающиеся части нужно выносить за пределы рабочей области проекционных координат.
Для этого я в основном использую Absolute Relative Type Ins (Абсолютный [относительный] тип вставки). Нужно выделить проблемную область, ввести значение -1 или 1 в поле U либо V, и затем нажать Enter. Выделенные неразвёрнутые грани переместятся за границы области работы поля UV.
Аналогичного результата можно достичь, если воспользоваться скриптом Tex Tools. С ним всё делается вообще легко и быстро. Сначала кликните параметр Open UV Editor (Открыть редактор проекционных координат UV).
Вдоль верхней стороны окна редактора UV-координат у вас появится новый набор инструментов. Достаточно лишь кликнуть кнопку Shift Overlap (Сдвинуть перекрывающиеся элементы), и всё сделается само.
Вслед за этим выполните коллапс модификатора UVW Modifier, кликнув ПКМ по нему и выбрав Collapse All.
5. Теперь нажмите клавишу 0 (ноль) либо просто перейдите в меню Rendering > Render To Texture...
6. Откроется диалоговое окно Render to Texture.
7. Сперва нужно определить путь к папке для сохранения сгенерированных карт. Это делается в поле Path (Путь) области Output (Вывод). В данном примере я создал новую папку с названием Fire Extinguisher.
8. Теперь выделите каркасную сетку Low-Mesh и кликните кнопку Pick... (Выбрать).
9. Далее следует выбрать высокополигональную каркасную сетку модели, или сетку «Target» (Целевую), которая будет спроецирована на низкополигональную.
10. После добавления целевой сетки вы увидите, что к низкополигональной сетке применился модификатор Projection (Проекция), а вокруг самой модели появятся каркасные контуры синего цвета. Эта штука зовётся ограничивающей сеткой (Cage).
11. Дальше, кликните по свитку Cage для его раскрытия.
12. Щёлкните кнопку Reset (Сброс), вследствие чего cage вернётся в своё исходное положение и ляжет чётко по сетке.
13. Так как ограничивающая сетка в точности совпадает с каркасом модели, то чтобы увидеть её, понадобится активировать параметры Shaded (С закраской) и Point to Point (Поточечно). При включении параметра Shaded ограничивающая сетка перейдёт в режим отображения граней.
14. А теперь взгляните на эту картину! Модель НЕ низкополигональная, однако cage (ограничивающая сетка) показывается в виде граней, потому что мы включили параметр её отображения с закраской. Однако можно, конечно, вернуть её обратно в режим каркасного отображения, просто выключив параметр Shaded.
Параметр Push (Подгонка) полезен в покрытии высокополигональной модели ограничивающей сеткой. Можно либо вручную отредактировать положение вершин cage, либо увеличивать-уменьшать общий размер cage с помощью параметров Push Amount (Величина подгонки) и Percent (Процентное отношение).
Примечание: лоу-рез и хай-рез модели должны быть подогнаны одна к другой, а cage не должна с ними пересекаться. Она (cage) всегда должна быть чуточку больше, чем сетка модели. Для достижения наилучших результатов держите обе версии модели как можно ближе друг к другу.
Продолжение следует...