Запекание карт нормалей: Substance Painter vs Marmoset

В прошлой статье мы разобрались с процессом подготовки ассета к запеканию, ошибками и их последствиями. В этой статье поговорим о кнопках, программах и о практической стороне запекания.

Художнику доступно множество разных софтов, которые поддерживают запекание карт нормалей. Мы рассмотрим Substance Painter и Marmoset — два самых популярных софта с современным инструментарием.

Запекание карт нормалей: Substance Painter vs Marmoset

Substance Painter — программа для процедурного текстурирования от Allegorithmic. Кроме текстуринга, в ней можно запекать карты: Ambient Occlusion, Normal map, Curvature, ID, World Space Normal, Position и Thickness.

Чтобы начать работу с моделью в Substance Painter, нужно создать новый проект, выбрать подходящий «Document Resolution», назначить подходящий «Normal Map Format» и найти файл с лоуполи, который мы предварительно экспортировали из 3D редактора, в графе File — Select.

Запекание карт нормалей: Substance Painter vs Marmoset

Настройки бейкера

Document Resolution лучше выбирать такой же, как и для экспорта финальных текстур. Если же мощность ПК не позволяет работать с нужным разрешением — понижаем его. Главное — при запекании и экспорте указывать правильный резолюшн.

Также не стоит забывать про графу Template. В ней нужно выбрать основные параметры проекта. Именно там можно переключаться между Metall/Rough и Spec/Gloss.

Настройки бейкера

Когда объект находится во вьюпорте — переходим в Texture Set Settings — Bake Mesh Maps. В этом окне находятся все настройки запекания.

Первый параметр —<b> Output Size</b>. Это разрешение, в котором карты будут запекаться.
Первый параметр — Output Size. Это разрешение, в котором карты будут запекаться.

Dilation Width или паддинг. Параметр отвечающий за создание «буферных зон» вокруг UV шелла, которые копируют пиксели на его границах. Он используется, чтобы избегать артефактных линий на UV швах. Его значения нужно менять, если возникли подобные проблемы.

Запекание карт нормалей: Substance Painter vs Marmoset

Apply diffusion по сути повторяет функции Dilation Width, но закрашивает полностью все пустое пространство на UV, а не только зоны вокруг UV шеллов.

Use Low Poly Mesh as High Poly Mesh. Позволяет запекать лоуполи меш сам на себя. Игнорирует хайполи геометрию.

High Definition Meshes. В эту область нужно загружать High poly геометрию, с которой будет запекаться карта нормалей.

Use Cage дает возможность запекать карту нормалей с помощью Cage, о котором мы говорили в прошлых статьях цикла.

Cage File — графа для загрузки файла с Cage, который можно экспортировать из 3ds Max или другого 3D редактора.

Max Frontal Distance регулирует, насколько далеко полетят лучи над геометрией, чтобы захватить элементы с хайполи.

Max Rear Distance регулирует, насколько далеко полетят лучи вглубь геометрии, чтобы захватить элементы с хайполи.

Relative Bounding Box чаще всего не трогают. Он изменяет единицы измерения, которые используются при запекании.

Average Normals — усреднение нормалей, о которых мы говорили в прошлых статьях.

Ignore Backface — включает игнорирование объектов с суффиксом, указанным в графе «Ignore backfaces suffix».

Antialiasing настраивает силу антиалайзинга. Антиалайзинг — технология для устранения эффекта «зубчатости». Этот эффект возникает на линиях, расположенных под углом.

Запекание карт нормалей: Substance Painter vs Marmoset

Match — переключает режим запекания между двумя опциями. Always — запекание всех объектов без ограничений. Если два объекта находятся слишком близко друг к другу, они начнут «делиться» информацией с хайполи и создает артефакты. Чтобы избежать этого, нужно разнести отдельные элементы друг от друга. Но это долго и неудобно.

Поэтому есть второй вариант — режим «By Mesh Name». В нем лоуполи и хайполи запекаются, только если их имена совпадают.

Low poly mesh / High poly mesh / Ignore backfaces suffix — суффиксы в именах мешей, которые нужно задавать каждому элементу в 3D редакторе перед экспортом. Эти суффиксы помогают определять пейнтеру где лоуполи, где хайполи, и какую геометрию нужно игнорировать при запекании.

Ошибки и решения

Если в имени хайполи и лоуполи версии одного элемента есть разница или неправильно прописан суффикс — карта нормалей не запечется.

Ошибка запекания из-за неправильного нейминга
Ошибка запекания из-за неправильного нейминга
Настройки запекания карты нормалей для лоуполи бокса
Настройки запекания карты нормалей для лоуполи бокса
Настройки запекания карты нормалей для лоуполи сложного элемента
Настройки запекания карты нормалей для лоуполи сложного элемента

На примере видно, что летающая геометрия начинает «плыть».

Запекание карт нормалей: Substance Painter vs Marmoset

Это происходит из-за настройки average normal: мы не можем отключить эту галочку, ведь тогда грани запекутся со швами.

Запекание карт нормалей: Substance Painter vs Marmoset

Решений существует несколько, но самое быстрое при работе с Substance Painter — запечь две версии карты нормалей со включенной и выключенной галочкой Average Normal, и объединить их в Photoshop.

На детализированных объектах процесс комбинирования карт в фотошопе забирает много драгоценного времени. К тому же, у Substance Painter есть проблемы с качеством запекания других карт. Из-за этого многие художники предпочитают печь в Marmoset.

Главное преимущество SP — карты уже находятся в проекте, и их не нужно загружать отдельно. Это означает, что после запекания можно сразу же приступить к текстурированию, или накинуть генератор и увидеть, как они работают.

Marmoset Toolbag

Marmoset Toolbag 3 изначально она был рассчитан на работу с real-time рендером, освещением и бейкингом. Недавно разработчики выпустили Marmoset 4, но по части запекания практически ничего не изменилось, поэтому разбираться будем на примере третьей версии.

Для начала, в левом верхнем окне создаем «New Baker».

Загружаем ассет через кнопку Load. Важное примечание: в отличие от Substance Painter, в здесь можно загрузить один FBX/OBJ, в котором будет находиться и лоуполи, и хайполи. Он сам разносит их по нужным папкам на основе имен и суффиксов.

Когда геометрия прогрузилась во вьюпорте, лучше отключить отображение слоя «High», чтобы не перегружать компьютер.

Кнопка отключения слоев с хайполи геометрией.
Кнопка отключения слоев с хайполи геометрией.

Настройки бейкера. Geometry

Запекание карт нормалей: Substance Painter vs Marmoset

Use hidden Meshes — использовать геометрию из спрятанных слоев;

Ignore Transform — игнорировать трансформации объекта, проведенные в Marmoset;

Smooth Cage — сгладить Cage;

Ignore Back Faces — игнорировать заднюю сторону полигонов;

Tangent Space — выбор между DirectX и OpenGL;

Галочка Auto-Reload напротив кнопки Load — автоматически подгружать новые версии загруженного ранее файла FBX/OBJ.

Output

Запекание карт нормалей: Substance Painter vs Marmoset

bake.psd. — для настройки пути и имени, согласно которым сохранятся результаты запекания.

Samples — качество запекания. Чем выше значение — тем лучше качество и дольше процесс бейкинга.

Soften — сглаживает результат запекания. Может быть полезен, чтобы лучше сгладить углы или скрыть границы Float geometry.

Format — настройки битности.

Multi-Layered PSD позволяет записать все запеченные карты в разные слои одного файла для Photoshop.

Padding — аналог Dilation Width из Substance Painter. Зарисовывает области вокруг UV шеллов, чтобы избежать швов при работе мипмаппинг.

Padding size определяет размер паддинга.

Textures Sets

Запекание карт нормалей: Substance Painter vs Marmoset

Multiple Texture Sets дает возможность запекать несколько текстурных сетов. Текстурные сеты пекутся в таком случае основываясь на назначенных материалах. Каждый материал — это отдельный текстурный сет.

Resolution — разрешение, в котором будут запекаться карты.

Maps

Запекание карт нормалей: Substance Painter vs Marmoset

Кнопка Configure позволяет добавить/убрать все доступные для запекания карты из списка быстрого доступа.

Слева направо. Кнопка старта запекания, создание новой бейк группы, отображение слоя high, отображение слоя low, назначение запеченных карт на модели во вьюпорте.
Слева направо. Кнопка старта запекания, создание новой бейк группы, отображение слоя high, отображение слоя low, назначение запеченных карт на модели во вьюпорте.
Настройки для запекания карты нормалей для лоуполи сложного элемента
Настройки для запекания карты нормалей для лоуполи сложного элемента

На сложной геометрии видно те же проблемы с плывущими деталями, которые мы видели в Substance Painter. Но Marmoset позволяет локально редактировать направленность нормалей и размер Cage. Для этого нужно перейти в слой Low и выбрать Paint Offset и изменять размер Cage, либо Paint Skew для редактирования направленности нормалей.

Теперь на исправление поплывших элементов будет уходить пара минут.

Мы не говорили о запекании в 3ds Max, Maya, Xnormal и других подобных программах, так как их инструментарий заметно устарел и отстает по удобству от Substance Painter и Marmoset. Это не значит, что в них нельзя запечь нужные карты — просто на это уйдет больше времени.

Преимущество современных программ — отображение результатов запекания в реальном времени и интуитивно понятный интерфейс. Если в 3ds Max запеченную карту нужно сохранять отдельным файлом и подгружать в материалы, чтобы увидеть результат на модели, то в SP все реализовано проще.

Окно настройки бейкера в 3ds Max
Окно настройки бейкера в 3ds Max

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

Запекание карт нормалей: Substance Painter vs Marmoset

Мы рассказали, как работать с обеими программами, про их плюсы и минусы. Твоя задача — решить, какая программа лучше подходит под твой пайплайн. А с этим мы поможем тебе разобраться на нашем курсе 3D PRO. Переходи по ссылке, чтобы получить бесплатный пробный урок.

Пулемет из статьи на Artstation: https://www.artstation.com/artwork/YeqvqY

2323
4 комментария

Спасибо за статью. Как раз встал вопрос - в чем разница. Все время пек в марме, а тут мне сказали, что Пэинтер уже стал стандартом - в итоге очевидно, что в марме как было удобнее и быстрее, так и осталось. Хотя, может, все зависит от каких-то конкретных задач. В общем если есть у кого какие-то корректные примеры - буду рад вашему мнению. 

Ответить

Спасибо за подробное описание главных важных функций программ, сложилось более полное понимание

Ответить

Как в мармосете сгенерировать карты normal и AO без лоупольки?

Ответить

Спасибо за статью. Очень помогла

Ответить