Merge texture sets, или как делать один набор текстур в Substance Painter
Доброго времени суток, меня зовут Julia, и сегодня я расскажу вам о том, как объединить Texture Sets в Substance Painter и экспортировать один набор текстур. Объяснять буду на примере своего проекта, который я делала в Blender 2.8.
Вступление
Для начала, пару слов про ПО. Substance Painter — это достаточно мощная и стабильная программа, которая знакома многим, а может быть и всем 3D-художникам и разработчикам компьютерных игр. Что может быть проще загрузить модель с UV-разверткой и сразу «текстурить» и «запекать»? Но однажды передо мной появилась проблема…
Проблема
Как многие (кто работает с Substance Painter) знают, что при импорте 3D-модели с набором цветов или текстур в среду, происходит разделение этой самой модели на отдельные области или «Texture Sets». Для примера я взяла свою старую модель топора.

Texture Set — это удобный инструмент, так как художник при работе с ним может просто убирать из видимости ненужные ему части модели, которые будут окрашены в другой цвет. И все бы ничего, но что же я получила, когда решила, делать экспорт текстур из Substance Painter что бы работать с моделью в другом редакторе (например, в том же самом Blender)?
А именно то, что и должны была, я получила по набору текстур на каждый Texture Set, а именно 6*3=18 разных текстур (BaseColor, Roughness, Metallic, Normal, Height, Emissive).
Может быть кому-то это покажется очень удобным, но точно не мне. Настроить рендер добавляя 18 текстур в один маленький проект — это слишком… Данную проблему я и пыталась решить. Искала решения в сети, но было мало понятных для меня ответов. Теперь, спустя время, я хочу рассказать о том, как я её решаю сейчас.
Этап 1 — Подготовка моделей
При экспорте из любого 3D редактора (после создания low-poly и UV) мы должны назначить всем частям модели один цвет — это самое главное, что нужно сделать на первом этапе. Импортируя потом эту модель в Substance Painter у нас будет один Texture Set и, следовательно, только один набор текстур при экспорте.

Далее, мы работаем с нашим high-poly (на основе которого обычно делают «запечку» разных карт). Назначим каждым объектам свои цветовые ID (я работала так же в Blender), то есть просто окрашиваем их в разные цвета максимально отличающиеся друг от друга.
Этап 2 — «Запечка»
После того, как все было подготовлено, экспортируем low-poly в Substance Painter. Далее самое важное… Я не стану рассказывать о том, что такое «запечка» и Normal Map, таких статей довольно много, и если вы интересуетесь этой темой, то наверняка знаете о чем я говорю.
При «запечке» в Substance Painter я выбираю только 2 карты Normal Map и ID. И в качестве объекта выбираю мою high-poly, нажимаю Bake и готово.
(Что бы карта «запекалась» без артефактов нужно сделать некоторые дополнительные операции в настройках: на вкладке Common в поле Match установить значение «By Mesh Name», на вкладке ID в поле Color Source установить значение «Material Color».)

Этап 3 — Настройка проекта
Теперь нужно правильно настроить проект, что бы работа с ним была удобной и понятной.
- Создаем в слоях папку (Folder) и называем ее так, как назвали бы текстуру (В моем случае Wood, Rings или Steel). Таких папок нужно столько, сколько будет текстур на вашей модели
- Выбираем одну из папок и добавляем ей mask with color selection в меню масок, в ее настройках выбираем пипетку (Picker) и видим «запечёный» ID на нашей low-poly модели. Данную операцию нужно сделать для всех частей объекта
P.S.
Возможно это не единственный вариант решения такого типа задач, но я нашла его для себя и успешно пользуюсь. Буду рада критике и пожеланиям, расскажите о своих методах.
- Работа с 3D-графикой
- CGI (графика)
- Графический дизайн
ГЛТФ-материалы (ПБР-совместимый ГЛТФ 2.0) / 3дс Макс
Если вам по какой-то причине требуется, чтобы материал был совместим с форматом ГЛТФ 2.0, вы можете использовать простые настройки на основе шейдерной ноды Principled BSDF.

Смотрите пример в магазине ассетов — «ГЛТФ».
Настройки
Добавьте шейдерную ноду Physical Material следующим образом: перейдите в раздел Materials/Map Browser и выберите Physical Material из списка материалов General.

Затем вы можете подключить к Physical Material текстурную ноду, как показано ниже. Обратите внимание, что все текстуры являются необязательными, и любую из них можно смело опустить.

- Подключите текстуру Ambient Occlusion ко входу Base Weight Map. Для лучшей согласованности между вьюпортом 3дс Макс и «Вердж3Д» текстуру Ambient Occlusion можно также подключить ко входу Refl Color Map, но это не обязательно.
- Подлючите текстуру Base Color ко входу Base Color Map.
- Подлючите текстуру Roughness ко входу Roughness Map.
- Подлючите текстуру Metallic ко входу Metalness Map.
- Подлючите текстуру Normal к ноде Normal Map, а затем к ноде Physical Material ко входу Bump Map. После чего, вам следует установить значение Bump Map Amount в панели Special Map настроек Physical Material равным 1.0.
- Подключите текстуру Emission ко входу Emission Color Map. После чего, вам следует установить значение emission равным 1.0 в панели Basic Parameters настроек Physical Material.
- Карта Transparency будет взята из Альфа-канала текстуры Base Color.

Цветокоррекция и гамма
Для правильной визуализации необходимо учитывать цветовое пространство для изображений. Все изображения, кроме текстур Base Color и Emission, должны быть представлены в линейном цветовом пространстве. Для этого выберите Override Gamma со значением 1.0 в Gamma Preferences, затем откройте изображение в диалоговом окне Open Image (как показано ниже).

Текстуры Base Color и Emission должны быть открыты в цветовом пространстве sRGB color space (с Gamma 2.2). Для этого оставьте значение Automatic в настройках gamma preferences диалогового окна Open Image.

Текстура прозрачности
Движок будет автоматическии использовать Alpha канал (если он есть) из текстуры Base Color в качестве карты прозрачности. Чтобы сделать прозрачность видимой во вьюпорте 3дс Макс, подключите Alpha канал текстуры Base Color ко входу Transparency Color Map.

Также в Preferences текстуры, в панели Bitmap Parameters следует установить Mono Chanel Output в Alpha и RGB Channel Output в Alpha as Gray.

Экспорт текстур из «Сабстанс Пейнтера»
Модели, вместе с запечёнными картами нормалей и окклюзии (если они есть), могут быть открыты в ПО «Сабстанс Пейнтер» через формат OBJ.

На выходе в этой программе создаются три карты: base color/transparency, occlusion/roughness/metallic и normal.

Для упрощения экспорта текстур из Сабстанс Пейнтер и достижения максимального потенциала при использовании движка «Вердж3Д», мы рекомендуем использовать Verge3D export preset. Поместите этот файл с пресетом в папку export-presets, которую можно найти, используя следующий путь My Documents\Allegorithmic\Substance Painter\shelf\ (если папки нет, создайте её самостоятельно).

При экспорте текстур из Сабстанс Пейнтер, в диалоговом окне эксопрта выберите Verge3D for 3ds Max, чтобы он сгенерировал текстуры совместимые с форматом ГЛТФ 2.0.
Экспорт в ГЛТФ во время выполнения
С пазлом export to gltf вы можете экспортировать свои модели или целую сцену в реальном времени. Затем вы можете скачать экспортированную модель или загрузить на сервер для постоянного хранения. Ознакомьтесь с данным пазлом подробнее по ссылке.
Остались вопросы?
Задайте их на нашем форуме!
306. Как работать с альфой в текстурах?
Сразу оговорюсь, что для текстур я всегда использую формат PNG. Как по мне, он даёт хорошее соотношение между качеством и размером файла, поддерживает 8 и 16 бит на канал, легко редактировать и его поддерживают все. Можете со мной не соглашаться, но бОльшая часть поста завязана именно на PNG и тонкости работы с ним.
Как извлечь альфа-канал из PNG?
Часто бывает такое, что нужно разделить альфа-канал (прозрачность) и RGB-каналы. Например, извлечь Smoothness из карты Metallic/Smoothness или извлечь прозрачность из декали, для более точного редактирования.
Эту задачу можно легко решить с помощью Adobe Photoshop.
1. Открываем PNG в Photoshop и выбираем наш слой.
2. Нажимаем на пункт меню Layer -> Layer Mask -> From Transparency. Это команда конвертирует альфа канал в маску слоя, с которой удобно работать.
3. Альфа-канал (прозрачность) будет конвертирован в альфа-маску слоя.
Артефакты на границе прозрачности
Почти все сталкивались с проблемой, когда вокруг текстуры с прозрачностью возникает белый (иногда другого цвета) контур.
Этот контур возникает из-за того, что альфа не может идеально совпадать с изображением в RGB канале. По мере уменьшения MipMap уровней, контур будет только увеличиваться. Схожая ситуация случается, когда острова развёртки на текстуре не имеют запаса по отношению к островам на модели и появляются швы в движке.
В обоих случаях проблема решается одинаково — с помощью Dilation’а текстуры.
В случае текстур с прозрачностью Dilation применяется к RGB составляющей текстуры, а альфа остаётся в исходном виде.
Теперь рассмотрим как это сделать в Adobe Photoshop.
1. Скачиваем и устанавливаем Action тут или тут.
2. Открываем изображение и дублируем слой.
3. Выбираем нижний слой и выбираем функцию Layer->Matting->Defringe со значением по умолчанию (1 пиксель). Это позволит нам избавится от мусора на Diation.
4. Выбираем нижний слой и запускаем Action “ Dilate many times “.
5. Будет создано несколько слоёв. Выделяем все слои, кроме верхнего (исходного) слоя и сливаем в один ( Ctrl+E).
6. Повторяем нужное количество раз шаги 4 и 5. Пока размер Dilation’a не будет достаточно большим. Чем выше разрешение текстуры, тем бОльшее количество раз придётся повторить эти шаги.
7. Теперь необходимо перенести альфу с исходного слоя на слой с Dilation. Для этого выбираем верхний слой и извлекаем прозрачность в маску слоя ( Layer -> Layer Mask -> From Transparency).
8. Копируем маску слоя из верхнего в нижний.
9. Скрываем верхний слой и сохраняем в PNG.
Проблема с сохранением чёрного в альфе из Photoshop
Ещё один очень важный момент. Photophop при сохранении PNG любит думать, что в местах изображения, где прозрачность равна 100% (альфа абсолютно чёрная), информация о цвете не нужна и он делает эти пиксели белыми (или чёрными).
Как же решить эту проблему?
1. Нажимаем с зажатым Alt по маске слоя, чтобы перейти в редактирование маски.
2. Нажимаем Ctrl+L для редактирования уровней. Устанавливаем в Outputl Levels значение 2 вместо 0.
3. Сохраняем в PNG.
Смысл в том, что мы незначительно высветляем чёрный (с #000000 до #020202). Визуально это совершенно не заметно, а для Photoshop это является знаком, что пиксели под прозрачностью удалять не стоит.
Как экспортировать альфа текстуру из substance painter

Discord community Youtube official

Пример первого урока: «развертка модели»

Пример первого урока: «подготовка к запечке»

Пример второго урока: «запечка модели»

Пример второго урока: «Ambient ocllusion»
Этот курс
для тебя, если

ЗАДАТЬ ВОПРОС СПИКЕРУ
Ты текстурщик, хочешь, чтобы тебе платили больше и доверяли
более интересные и сложные задачи.
Ты 3D-моделлер и хочешь научиться создавать выразительные
текстуры и материалы для своих работ.
Курс подойдет для тех, кто умеет моделить, но пока не разобрался
с текстурингом.
Ты текстурщик, хочешь, чтобы тебе платили больше и доверяли более интересные и сложные задачи.
Ты 3D-моделлер и хочешь научиться создавать выразительные текстуры и материалы для своих работ.
Курс подойдет для тех, кто умеет моделить, но пока не разобрался с текстурингом.
