substance painter запекание нормалей
Добрый всем день! Подскажите — вот запек в substance карту нормалей, чтобы потом в максе добавить складок. Вроде все сделал, только вот карты какие то странные. Так ведь не должно быть? какие то полосы.

На сайте c 18.02.2016
Сообщений: 8
Беларусь
Все нормально, полосы же у вас за границами развертки. Правильно? Значит на геометрии «подушки» не отразится. Главное что бы на ваших складках все было чистенько.
Насколько я помню, убрать это заполнение можно отключив галку с опции Apply Diffusion при запекании карты нормалей.
На сайте c 28.04.2020
Сообщений: 42
Санкт-Петербург
Спасибо! попробую.
На сайте c 18.09.2016
Сообщений: 2649
Украина, Запорожье
Mozart:
Пожизненный бан
kolstow
все в порядке, так и и должно быть

вон посмотрите как у меня нормали запеклись
Запекаем карту нормалей (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. Возможны вот такие казусы:

2. Align: выравниваем модели для запекания
Важно выровнять обе модели – вернее, отцентрировать их по отношению друг к другу! Делается это с помощью инструментов выравнивания Align.
![]()
Иначе, у вас может получиться вот такая штука:
![]()
Я, конечно, немного утрирую. Потому что сдвинул очень далеко. Но у вас могут быть мелкие артефакты, и вы будете задумываться почему такое происходит.
3. Freeze: сброс координат
Помимо того, что вы выровняете все детали можно еще сбросить все координаты в ноль посредством инструмента Freeze. Рекомендую делать эту операцию непосредственно перед экспортом модели в .obj формат.
![]()
4. Center Pivot: выставляем опорную точку
Для дальнейшей работы вам необходимо будет выставить реальный центр детали Center Pivot.

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

Раздел Cleanup Effect
- Cleanup matching polygon – это практически автоматический поиск исправление, удаление или разбиение на треугольники неправильных полигонов в вашей модели.
- Select matching polygons – неправильные полигоны будут подсвечены на нашей модели. Maya же исправлять ничего не будет, только выберет их.
- Apply to selection objects – применить к выбранным объектам.
- Apply to all polygonal objects – применить ко всем полигональным объектам.
- Keep construction history – Оставляет историю в channel box.

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

Раздел 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].

Правильная UV развертка для запекания карт нормалей
Ваша UV развертка должна тоже соответствовать определённым правилам.
Основная проблема «запекателя» в Substance Painter состоит в том, что он не любит большие натяжения в модели. То есть, ему проще понимать объект как множество отдельных полигонов. Если же у модели есть острые углы, то программе это не совсем нравится, и она не корректно запекает карту Normal. Поэтому я рекомендую при нарезке UV обращать внимание на эти самые углы под 90° или 45° и разрезать 3д-модель прямо по ним. Это снимет напряжение на развертке и модель запечётся более-менее хорошо. А главное, не будет мерзких швов.
Если в вашей модели присутствуют острые углы, то режьте UV прям по ним. Я сделал как-то так.
![]()
В результате, у меня получилась хорошая, сглаженная модель.
![]()
Также, программа плохо относится к вытянутым полигонам. Поэтому, при возникновении проблем во время запекания normal map, нужно стараться делать полигоны по форме ближе к квадрату.
![]()
7. Soft or Hard Edge: определяем жесткие и мягкие грани
Следующим важным элементом в наших правилах будет определение жестких и мягких граней.
По сути, это правило сводится к тому, что острые углы детали – жесткие (hard), а внутренности- мягкие (soft).
Полезно будет изучить окно Polygon Selection Constraint on Edge (Select => Use Constrants. ). Оно позволяет задать всевозможные фильтры на выбираемые компоненты: например, выбирать только грани, находящиеся под определенным углом к линии взгляда. Таких фильтров там несколько.
![]()
Для начала я сбросил все настройки выбора (Reset). Выбираем все ребра и выставляем им всем сглаживание Soft.
![]()

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

Минимальный угол: 45°, а максимальный: 120°.
Далее, жмем кнопку Close and Remember – Закрыть и запомнить.
Возможно, вам будет удобнее сделать все вручную. Тут главное понять сам принцип.
8. History: работаем с историей
Тут все просто: Удаляем всю историю, что вы делали с деталью. Есть смысл вывести эту команду на полочку Shelf. Как это сделать, я говорил в уроке по созданию полок в Maya ;).
![]()
Есть еще один момент, связанный, скорее всего, с багом программы, когда история не хочет удаляться. Перерыв кучу источников по этому вопросу, я пришел к выводу, что самым простым способом будет продублировать модель, а старую удалить. Есть еще подозрение на то, что все плохо с историей после инструмента Freeze. Так что, старайтесь замораживать позицию модели непосредственно перед экспортом в формат obj. Если у вас есть другие способы борьбы с этой ошибкой – напишите мне (или в комментариях к уроку).
9. Запекание мелких деталей
Все мелкие детали, что вы сделали на hi poly модели (ручки, кнопки, дополнительные панельки) можно запечь на low poly модели посредством карты Normal. При создании мелких деталей следует учитывать их геометрию. Стараться избегать крутых углов под 90°. Лучше чуть увеличить угол – тогда программе будет проще запечь геометрию.
![]()
![]()
![]()
Все детали вы соединяете в одну посредством инструмента Combine.
![]()
Вот тут возможен еще один казус, который может помешать вам запечь мелкие детали. Хотя все до банального просто. При соединении деталей в одну посредством Combine, программа Maya переименовывает эту получившуюся деталь, а вы этого можете не заметить. Так что внимательно проверяйте все через Outliner. Я просто выделяю все детали из слоя low и смотрю чтобы не было никаких казусов с именами.
![]()
10. Формат экспорта
В Maya есть возможность сохранять в формат .fbx посредством инструмента game exporter. Лично у меня Substance Painter и Substance Designer работают с ошибками с этим форматом. На модели возникают дырки в геометрии. Предполагаю, что это какой-то баг Maya. Возможно, у вас все будет прекрасно – попробуйте!
У меня отлично работает File -> Export Selection и экспорт в .obj формат.
![]()
Я оставил включенными только пункт материалы и сглаживание.
Запекаем карту нормалей в Substance Painter
Открываем Substance Painter 2. И создаем новый проект: File-> New.

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


Не буду разбирать все пункты этого окна, так как это тема отдельного разговора. Пробегусь только по тем пунктам, которые нам интересны в данном уроке.
Оставляем галочку только напротив пункта 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: вот тут вы можете назначать имена суффиксов сами, какие вам больше удобны.

Если у вас есть какие-то вопросы или предложение пишите в комментариях или в личку.
Оставляем статью открытой, если возникнут дополнительные нюансы. Чтобы расширить данную тему.
Напомним, что в предыдущих уроках по Maya (моделирование и создание развертки и текстур), мы подробно изучали создание low-poly 3d-модели микроавтобуса.
На этом наш урок по запеканию карты нормалей в Substance Painter закончен. Спасибо за внимание! Если вас интересуют уроки по Substance Painter пишите.
С Уважением, Onza!
Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!
Normal Map Painting
Painting details can be done by painting directly Normal map data directly on the mesh. This page regroups different way to manage normal map painting.
Painting Normal Map Details
To paint normal map details:
- Add a normal channel in the current current Texture Set (if not already present)
- Enable the normal channel in the current painting tool
- Load a Normal resource in the Normal slot of the Material section of the current painting tool.
From there, painting with a normal map is very similar to Height Map Painting , with the added precision of a baked normal.
Запекание карт нормалей: Substance Painter vs Marmoset
В прошлой статье мы разобрались с процессом подготовки ассета к запеканию, ошибками и их последствиями. В этой статье поговорим о кнопках, программах и о практической стороне запекания.
165 показов
33K открытий
Художнику доступно множество разных софтов, которые поддерживают запекание карт нормалей. Мы рассмотрим Substance Painter и 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.
Настройки бейкера
Document Resolution лучше выбирать такой же, как и для экспорта финальных текстур. Если же мощность ПК не позволяет работать с нужным разрешением — понижаем его. Главное — при запекании и экспорте указывать правильный резолюшн.
Также не стоит забывать про графу Template. В ней нужно выбрать основные параметры проекта. Именно там можно переключаться между Metall/Rough и Spec/Gloss.
Настройки бейкера
Когда объект находится во вьюпорте — переходим в Texture Set Settings — Bake Mesh Maps. В этом окне находятся все настройки запекания.
Первый параметр — Output Size. Это разрешение, в котором карты будут запекаться.
Dilation Width или паддинг. Параметр отвечающий за создание «буферных зон» вокруг UV шелла, которые копируют пиксели на его границах. Он используется, чтобы избегать артефактных линий на UV швах. Его значения нужно менять, если возникли подобные проблемы.
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 настраивает силу антиалайзинга. Антиалайзинг — технология для устранения эффекта «зубчатости». Этот эффект возникает на линиях, расположенных под углом.
Match — переключает режим запекания между двумя опциями. Always — запекание всех объектов без ограничений. Если два объекта находятся слишком близко друг к другу, они начнут «делиться» информацией с хайполи и создает артефакты. Чтобы избежать этого, нужно разнести отдельные элементы друг от друга. Но это долго и неудобно.
Поэтому есть второй вариант — режим «By Mesh Name». В нем лоуполи и хайполи запекаются, только если их имена совпадают.
Low poly mesh / High poly mesh / Ignore backfaces suffix — суффиксы в именах мешей, которые нужно задавать каждому элементу в 3D редакторе перед экспортом. Эти суффиксы помогают определять пейнтеру где лоуполи, где хайполи, и какую геометрию нужно игнорировать при запекании.
Ошибки и решения
Если в имени хайполи и лоуполи версии одного элемента есть разница или неправильно прописан суффикс — карта нормалей не запечется.
Ошибка запекания из-за неправильного нейминга
Настройки запекания карты нормалей для лоуполи бокса
Настройки запекания карты нормалей для лоуполи сложного элемента
На примере видно, что летающая геометрия начинает «плыть».
Это происходит из-за настройки average normal: мы не можем отключить эту галочку, ведь тогда грани запекутся со швами.
Решений существует несколько, но самое быстрое при работе с 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
Use hidden Meshes — использовать геометрию из спрятанных слоев;
Ignore Transform — игнорировать трансформации объекта, проведенные в Marmoset;
Smooth Cage — сгладить Cage;
Ignore Back Faces — игнорировать заднюю сторону полигонов;
Tangent Space — выбор между DirectX и OpenGL;
Галочка Auto-Reload напротив кнопки Load — автоматически подгружать новые версии загруженного ранее файла FBX/OBJ.
bake.psd. — для настройки пути и имени, согласно которым сохранятся результаты запекания.
Samples — качество запекания. Чем выше значение — тем лучше качество и дольше процесс бейкинга.
Soften — сглаживает результат запекания. Может быть полезен, чтобы лучше сгладить углы или скрыть границы Float geometry.
Format — настройки битности.
Multi-Layered PSD позволяет записать все запеченные карты в разные слои одного файла для Photoshop.
Padding — аналог Dilation Width из Substance Painter. Зарисовывает области вокруг UV шеллов, чтобы избежать швов при работе мипмаппинг.
Padding size определяет размер паддинга.
Textures Sets
Multiple Texture Sets дает возможность запекать несколько текстурных сетов. Текстурные сеты пекутся в таком случае основываясь на назначенных материалах. Каждый материал — это отдельный текстурный сет.
Resolution — разрешение, в котором будут запекаться карты.
Кнопка Configure позволяет добавить/убрать все доступные для запекания карты из списка быстрого доступа.
Слева направо. Кнопка старта запекания, создание новой бейк группы, отображение слоя high, отображение слоя low, назначение запеченных карт на модели во вьюпорте.
Настройки для запекания карты нормалей для лоуполи сложного элемента
На сложной геометрии видно те же проблемы с плывущими деталями, которые мы видели в Substance Painter. Но Marmoset позволяет локально редактировать направленность нормалей и размер Cage. Для этого нужно перейти в слой Low и выбрать Paint Offset и изменять размер Cage, либо Paint Skew для редактирования направленности нормалей.
Теперь на исправление поплывших элементов будет уходить пара минут.
Мы не говорили о запекании в 3ds Max, Maya, Xnormal и других подобных программах, так как их инструментарий заметно устарел и отстает по удобству от Substance Painter и Marmoset. Это не значит, что в них нельзя запечь нужные карты — просто на это уйдет больше времени.
Преимущество современных программ — отображение результатов запекания в реальном времени и интуитивно понятный интерфейс. Если в 3ds Max запеченную карту нужно сохранять отдельным файлом и подгружать в материалы, чтобы увидеть результат на модели, то в SP все реализовано проще.
Окно настройки бейкера в 3ds Max
Карты автоматически назначаются на модель и сохраняются внутри проекта. К тому же, пользователю доступен дебаггер, который позволяет просматривать все карты вместе и по-отдельности.
Мы рассказали, как работать с обеими программами, про их плюсы и минусы. Твоя задача — решить, какая программа лучше подходит под твой пайплайн. А с этим мы поможем тебе разобраться на нашем курсе 3D PRO. Переходи по ссылке, чтобы получить бесплатный пробный урок.
