Запекаем карту нормалей (normal map) в Substance Painter

 
Запекаем карту нормалей (normal map) в Substance Painter

Основные правила. Подготовка модели к экспорту в Substance painter.


Всем привет! В этой статье я хотел бы поговорить о запекании карты нормалей (normal map) в программе Substance Painter. Вернее было бы сказать, что я попытался собрать воедино все тонкости запекания в Substance Painter. В самом процессе запекания карты нормалей нет ничего сложного и сверхъестественного. Вопрос в том, почему у многих начинающих этого не получается. Хотя вроде все делают как надо. Я попытался вывести несколько правил, которые помогут вам сделать это быстро и качественно. Так же мы рассмотрим причины, по которым порой не получается запечь карту нормалей. Разбирать процесс подготовки мы будем на примере части 3d-модели бульдозера.


Я буду делать урок на основе программы Maya. В 3ds Max принципы те же, только инструменты другие.


Большинство наших действий будут направлено на подготовку модели для запекания. Что-то из моих пунктов не так критично и может просто указывать на то, как я подготавливаю модель для Substance Painter и игрового движка UE4 или Unity 5.


Чтобы запечь карту нормалей нам понадобиться две модели. Одна модель высоко полигональная (hi poly), а другая низко полигональная (low poly). Вы можете изготовить вначале высоко полигональную 3д модель, а затем на ее основе сделать низко полигональную модель. Или выражаясь по-другому сделать ретопологию. И сделать это можно с помощью программы topoGun или вручную. Хотя кто-то предпочитает делать вначале low poly модель и затем уже наделять ее деталями. Все зависит от вашего предпочтения и удобства.


Имеет смысл создать два отдельных слоя low и high. Это очень поможет вам в дальнейшем. В один будете кидать все что относится к низко полигональной модели, а в другой высоко полигональной.


1. Suffix: делаем правильные суффиксы


Самое первое правило касается названий ваших деталей. Имена вашим деталям нужно будет давать специфические. Всем высоко полигональным деталям нужно будет давать суффикс _high, а низко полигональным _low. Обратите внимание на нижнее подчеркивание:
Base_low – Base_high
Крыло_low – Крыло_high


Всегда обращайте внимание на название ваших деталей чтобы не закрались ошибки, иначе Substance Painter откажется запекать карту нормалей. Важно, чтобы имена деталей совпадали и отличались только в суффиксе, _low и _high должны быть четкими. То есть без каких-либо приписок типа _low1. А такое бывает потому, что Maya сама приписывает цифры, так как название _low уже есть.


В дальнейшем, вы сможете поменять название суффиксов на те, которые вам удобны, но об этом позже.


Внимательно посмотрите названия деталей в Outliner. Возможны вот такие казусы:


Запекаем карту нормалей (normal map) в Substance Painter

2. Align: выравниваем модели для запекания


Важно выровнять обе модели – вернее, отцентрировать их по отношению друг к другу! Делается это с помощью инструментов выравнивания Align.


Запекаем карту нормалей (normal map) в Substance Painter

Иначе, у вас может получиться вот такая штука:


Запекаем карту нормалей (normal map) в Substance Painter

Я, конечно, немного утрирую. Потому что сдвинул очень далеко. Но у вас могут быть мелкие артефакты, и вы будете задумываться почему такое происходит.


3. Freeze: сброс координат


Помимо того, что вы выровняете все детали можно еще сбросить все координаты в ноль посредством инструмента Freeze. Рекомендую делать эту операцию непосредственно перед экспортом модели в .obj формат.


Запекаем карту нормалей (normal map) в Substance Painter

4. Center Pivot: выставляем опорную точку


Для дальнейшей работы вам необходимо будет выставить реальный центр детали Center Pivot.


Запекаем карту нормалей (normal map) в Substance Painter

5. Cleanup: проверяем ошибки геометрии


Следующим шагом будет проверка нашей модели на наличие ошибок в геометрии: это один из важнейших этапов для последующего запекания карты нормалей (normal map) в Substance Painter. Для этого мы будем использовать инструмент Cleanup.


Запекаем карту нормалей (normal map) в Substance Painter

Запекаем карту нормалей (normal map) в Substance Painter

Раздел Cleanup Effect


Operation.


  • Cleanup matching polygon – это практически автоматический поиск исправление, удаление или разбиение на треугольники неправильных полигонов в вашей модели.
  • Select matching polygons – неправильные полигоны будут подсвечены на нашей модели. Maya же исправлять ничего не будет, только выберет их.

Scope.


  • Apply to selection objects – применить к выбранным объектам.
  • Apply to all polygonal objects – применить ко всем полигональным объектам.
  • Keep construction history – Оставляет историю в channel box.

Запекаем карту нормалей (normal map) в Substance Painter

Раздел Fix by Tesselation.


В зависимости от выбранных ранее пунктов программа либо исправит проблему, либо укажет на нее.


  • 4-sided faces – покажет все четырехугольные полигоны.
  • Faces with more than 4 sides – покажет полигоны с более чем четырьмя сторонами.
  • Concave faces – отмечает все полигоны, которые не являются выпуклыми фигурами.
  • Faces with hole – полигоны с отверстиями.
  • Non-planar faces – будет отмечать все полигоны, которые не являются плоскостью. Укажет все полигоны, чьи вершины не лежат в одной плоскости.

Запекаем карту нормалей (normal map) в Substance Painter

Раздел Remove Geometry.


  • faces – Удаляет или показывает дубликаты полигонов, созданные по ошибке.
  • Nonmanifold geometry – показывает или удаляет неправильную геометрию (На самом деле Maya отделит проблемные полигоны от основной модели). Ошибки типа выдавленных случайно полигонов или полигонов, которые прикреплены к остальной модели через одну точку (vertex).
  • Normals and geometry – позволит вам исправить вывернутые полигон.
  • Geometry only – только геометрия.
  • Edges with zero length – показывает или удаляет ребро нулевой длины. Ниже мы можем задать этот порог Length tolerance – [0.0001].
  • Faces with zero geometry area – полигоны с нулевой площадью геометрии. Area tolerance – [0.0001] (см. рисунок ниже).
  • Faces with a zero map area – полигоны с нулевой площадью карты. Покажет полигоны, которые на UV развертке меньше чем указано в окошке Area tolerance – [0.0001].

Запекаем карту нормалей (normal map) в Substance Painter

Правильная UV развертка для запекания карт нормалей


Ваша UV развертка должна тоже соответствовать определённым правилам.


Основная проблема «запекателя» в Substance Painter состоит в том, что он не любит большие натяжения в модели. То есть, ему проще понимать объект как множество отдельных полигонов. Если же у модели есть острые углы, то программе это не совсем нравится, и она не корректно запекает карту Normal. Поэтому я рекомендую при нарезке UV обращать внимание на эти самые углы под 90° или 45° и разрезать 3д-модель прямо по ним. Это снимет напряжение на развертке и модель запечётся более-менее хорошо. А главное, не будет мерзких швов.


Если в вашей модели присутствуют острые углы, то режьте UV прям по ним. Я сделал как-то так.


Запекаем карту нормалей (normal map) в Substance Painter

В результате, у меня получилась хорошая, сглаженная модель.


Запекаем карту нормалей (normal map) в Substance Painter

Также, программа плохо относится к вытянутым полигонам. Поэтому, при возникновении проблем во время запекания normal map, нужно стараться делать полигоны по форме ближе к квадрату.


Запекаем карту нормалей (normal map) в Substance Painter

7. Soft or Hard Edge: определяем жесткие и мягкие грани


Следующим важным элементом в наших правилах будет определение жестких и мягких граней.
По сути, это правило сводится к тому, что острые углы детали – жесткие (hard), а внутренности- мягкие (soft).
Полезно будет изучить окно Polygon Selection Constraint on Edge (Select => Use Constrants...). Оно позволяет задать всевозможные фильтры на выбираемые компоненты: например, выбирать только грани, находящиеся под определенным углом к линии взгляда. Таких фильтров там несколько.


Запекаем карту нормалей (normal map) в Substance Painter

Для начала я сбросил все настройки выбора (Reset). Выбираем все ребра и выставляем им всем сглаживание Soft.


Запекаем карту нормалей (normal map) в Substance Painter

Запекаем карту нормалей (normal map) в Substance Painter

Затем, настроим фильтр по углам.


Запекаем карту нормалей (normal map) в Substance Painter

Минимальный угол: 45°, а максимальный: 120°.


Далее, жмем кнопку Close and Remember – Закрыть и запомнить.
Возможно, вам будет удобнее сделать все вручную. Тут главное понять сам принцип.


8. History: работаем с историей


Тут все просто: Удаляем всю историю, что вы делали с деталью. Есть смысл вывести эту команду на полочку Shelf. Как это сделать, я говорил в уроке по созданию полок в Maya ;).


Запекаем карту нормалей (normal map) в Substance Painter

Есть еще один момент, связанный, скорее всего, с багом программы, когда история не хочет удаляться. Перерыв кучу источников по этому вопросу, я пришел к выводу, что самым простым способом будет продублировать модель, а старую удалить. Есть еще подозрение на то, что все плохо с историей после инструмента Freeze. Так что, старайтесь замораживать позицию модели непосредственно перед экспортом в формат obj. Если у вас есть другие способы борьбы с этой ошибкой – напишите мне (или в комментариях к уроку).


9. Запекание мелких деталей


Все мелкие детали, что вы сделали на hi poly модели (ручки, кнопки, дополнительные панельки) можно запечь на low poly модели посредством карты Normal. При создании мелких деталей следует учитывать их геометрию. Стараться избегать крутых углов под 90°. Лучше чуть увеличить угол – тогда программе будет проще запечь геометрию.


Запекаем карту нормалей (normal map) в Substance Painter
Запекаем карту нормалей (normal map) в Substance Painter

Запекаем карту нормалей (normal map) в Substance Painter

Все детали вы соединяете в одну посредством инструмента Combine.


Запекаем карту нормалей (normal map) в Substance Painter

Вот тут возможен еще один казус, который может помешать вам запечь мелкие детали. Хотя все до банального просто. При соединении деталей в одну посредством Combine, программа Maya переименовывает эту получившуюся деталь, а вы этого можете не заметить. Так что внимательно проверяйте все через Outliner. Я просто выделяю все детали из слоя low и смотрю чтобы не было никаких казусов с именами.


Запекаем карту нормалей (normal map) в Substance Painter

10. Формат экспорта


В Maya есть возможность сохранять в формат .fbx посредством инструмента game exporter. Лично у меня Substance Painter и Substance Designer работают с ошибками с этим форматом. На модели возникают дырки в геометрии. Предполагаю, что это какой-то баг Maya. Возможно, у вас все будет прекрасно – попробуйте!
У меня отлично работает File -> Export Selection и экспорт в .obj формат.


Запекаем карту нормалей (normal map) в Substance Painter

Я оставил включенными только пункт материалы и сглаживание.


Запекаем карту нормалей в Substance Painter


Открываем Substance Painter 2. И создаем новый проект: File-> New.


Запекаем карту нормалей (normal map) в Substance Painter

Через кнопку Select выбираем нашу low poly модель. Остальные параметры выставляем как на картинке. Обратите внимание что нет галочки на пункте Creat a texture set per UDIM tile.


В окне TextureSet Settings нажимаем кнопку Bake textures.


Запекаем карту нормалей (normal map) в Substance Painter

Запекаем карту нормалей (normal map) в Substance Painter

Не буду разбирать все пункты этого окна, так как это тема отдельного разговора. Пробегусь только по тем пунктам, которые нам интересны в данном уроке.
Оставляем галочку только напротив пункта Normal, остальные снимаем. Потому что мы запекаем только карту нормалей (Normal). Разрешение играет роль, от этого будет зависеть качество карты.
В разделе High poly parameters, в окне High Definition Meshes, нажимаем на пиктограмму листика с загнутым краем. Выбираем нашу high poly модель.


Cage File: тут вам позволяют выбрать свою cage модель, если ее у вас нет то пропускаем этот пункт.
Max Frontal Distance и Max Rear Distance: Я выставил значение 0.03 – это позволило мне добиться хорошего качества. Вы можете поиграть этим значение в большую или меньшую сторону и посмотреть на конечный результат запекания карт нормалей (normal map).


Остальные галочки оставьте как есть. Единственное, может включать или выключать Average Normals (усреднение значений).
Match: By Mesh name или Always – важный пункт, если в вашей модельке много деталей. Позволяет запечь каждую деталь как бы отдельно. То есть программа уже не смотрит на находящиеся рядом детали. Если у вас много деталей выбирайте By Mesh name. Вот именно для этой цели мы и давали каждой детали отдельные похожие названия изменив при этом suffix _low и high.
base_low – base_high
Antialiasing: Выбор уровня сглаживания.
High poly mesh suffix и Low poly mesh suffix: вот тут вы можете назначать имена суффиксов сами, какие вам больше удобны.


Запекаем карту нормалей (normal map) в Substance Painter

Если у вас есть какие-то вопросы или предложение пишите в комментариях или в личку.
Оставляем статью открытой, если возникнут дополнительные нюансы. Чтобы расширить данную тему.


Напомним, что в предыдущих уроках по Maya (моделирование и создание развертки и текстур), мы подробно изучали создание low-poly 3d-модели микроавтобуса.


На этом наш урок по запеканию карты нормалей в Substance Painter закончен. Спасибо за внимание! Если вас интересуют уроки по Substance Painter пишите.
С Уважением, Onza!


Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.