





Substance Painter Practice — Zhelong Xu
Substance Designer и Substance Painter — ведущие программы в области процедурного и ручного текстурирования. Они предоставляют широкий инструментарий и функционал, начиная от запекания текстур, заканчивая разработкой оригинальной и запоминающейся стилистики посредством автоматизированных и процедурных возможностей ПО.
Asphalt Shingles — Andrei Zelenco (Substance Designer 5)
Substance Designer нацелена на создание процедурных текстур, которые применяются в создании масштабирующихся объектов. Например, для fooliage системы, landscape, деревянных, каменных, фактурных, и повторяющихся паттернов и элементов.
Looking for home — Tiago Mesquita (Substance Painter)
Substance Painter применяется в текстурировании статичных мешей и обычных 3D моделей, например, персонажей и пропсов. В программе удобно производится ручное текстурирование, а инструментарий предоставляет расширенную библиотеку кистей и альфа-кистей. Кроме того, благодаря возможности запекания карт нормалей, Ambient Occlusion, Curvature и Height непосредственно в ПО, с помощью генераторов, масок и фильтров можно добиться различных эффектов всего за несколько кликов.
Сборка локации
Для этого способа текстурирования будет реализовываться сборка интерьерной локации — покои принца Сиддхартхи Гаутамы. В комнате будут присутствовать как модульные ассеты, такие как стены, потолок, пол, окна, для которых необходимо подготовить тайловые текстуры, так и отдельные статичные меши и пропсы, например, кровать принца, горшки, вазы, подушки, шторы, которые, в свою очередь, требуют ручное текстурирование.
Блокинг
Набор ассетов
Ассетирование локации
Модели подушек и штор были сделаны и просиммулированы в Marvelous Designer.
Marvelous Designer
Substance Designer
Для интерьерной локации необходимы простые и более комплексные материалы. Комната принадлежит индийскому принцу, поэтому ее убранство должно состоять из пестрых декораций с незамысловатыми узорами, поэтому создание тайловых текстур в Substance Designer делится на 4 задачи: создание материала каменной плитки для пола и потолка, простого материала для окон, материала со сложным паттерном для стен и еще одного материала с узором для колонны. Суммарно 2 простых и 2 сложных бесшовных материала
Дальнейшую вариативность исходных четырех материалов предоставит настройка Material Instances.
Референсы по материалам
Принцип работы схож со сборкой Material Layers «мазками» из предыдущей главы. Ноды собираются в группы, которые отвечают за ту или иную манипуляцию с материалом, например, базовые «шейпы» (Shapes), Brushstrokes, Handpaint, Damage, Highlights, Color. Однако в каждой группе используются одинаковые ноды, которые являются основными для Substance Designer: Shape, Blend, Transformation, Blur HQ, Slope Blur Grayscale, Levels, Histogram и др.
Объединив группы нод в готовые текстуры Albedo, Metallic, Roughness, Normal, Ambient Occlusion и Height (с помощью ноды Output), на выходе получается цельный тайловый материал.
Материал Wall_arabesque
Материал Wall_arabesque
Создание материала начинается с заготовки фундамента — Shape, также можно использовать Polygon. Substance Designer предоставляет несколько базовых форм — примитивов, из которых в дальнейшем можно слепить необычные формы.

Shape Нода Shape создает различные примитивы и круглые формы, к примеру, Диск, Параболоид и т. д.
Pilygon Polygon задает начало многоугольникам, количество сторон и углов которых можно настраивать вручную.
Transformation 2D С помощью ноды Transformation можно манипулировать шейпами и образовывать нужные формы.

Tile Generator Grayscale и Tile Sampler Grayscale Если материал повторяющийся, например, кафель, плитка, жерди, доски, то применяется ноды Tile Generator Grayscale и Tile Sample Grayscale, которые позволяет повторить изначальный Shape или создать новый и таким образом образовать паттерн.

Blend Нода Blend позволяет объединить или смешать две входящие текстуры, шейпы и цвета.
Процедура проходит через определенные Режимы наложения, которые присутствуют во всех программах пакета Adobe. Например, «Add» складывает текстуры, «Multiply» выдает пересечение текстур, а «Subtract» вычитает одну текстуру из другой.
База для материала
Чтобы сделать рамку для материала, нужно с помощью ноды Shape создать квадрат. Добавив Invert Grayscale, получится внешняя рамка. Далее Transformation 2D уменьшает квадрат, чтобы сделать внутреннюю рамку при помощи Edge Detect.
Объединив внешнюю и внутреннюю рамку, на выходе получится двойная рамка.
Рамка материала

Edge Detect Edge Detect обводит контур шейпа. В настройках ноды можно регулировать толщину обводки, а также округлённость краев. Для рамки материала края были немного скруглены.
Splatter Circular Grayscale Как и Tile Sampler Grayscale, Splatter может создавать паттерны из шейпов или других входных значений. Splatter Circular позволяет не только повторить шейп, но и расставить в круг.
Далее из шейпа в виде Диска посредством Splatter Circular Grayscale, Edge Detect и Tile Sampler получается добиться четырехлепестковой формы и бесшовно размножить ее.
Для того чтобы добавить по краям дополнительные узоры кругов, не наложив их при этом на получившийся паттерн, необходимо сделать маску, поверх которой наложиться второй паттерн.
С помощью шейпов автор собирает маску — четыре квадрата по краям. В Tile Sampler Grayscale, через который был собран паттерн, к отсеку Mask Map Input необходимо подключить маску. В настройках ноды, в разделе Color есть параметр Mask Map Threshol. Если покрутить ее, на паттерне появится маска. Добавив посредством Blend узор из кругов, получится итоговый паттерн.
Далее паттерн усложняется, обрастая группами нод, которые отвечают за различные манипуляции. Поверх паттерна с четырехлепестковыми цветами добавляются «шипы», собранные из Polygon и Splatter Circular.
Шипы с помощью ноды Polygon
Три паттерна, смешанные через маску и ноду Blend
Таким же образом создается маска для рамки и через Blend рамка смешивается со всем паттерном.
Комплексный паттерн
Работа в Substance Designer, на первый взгляд, кажется сложной, но каждая нода несет за собой какую-то функцию, и постепенно собирая «этажи» из групп нод, которые отвечают за то или иное изменение паттерна, в конце концов, можно получить многоэтажный дом — итоговый материал, представляющий из себя комплексный паттерн.
Комплексный паттерн
Группа нод Tiles

Histogram Range Histogram Range схожа с нодами Контрастность и Яркость. Ее фунуция заключается в том, чтобы настроить диапазон входной текстуры в градациях серого, сместив значения исходного материала (от 0 до 1).
Histogram Scan Histogram Scan производит похожие манипуляции, что и Histogram Range, но с Инверсией и более резкими контрастами.
Чтобы текстура не была сплошной однородной заливкой, автор создает текстуру шума, объединив между собой шумы Crystal и Grunge Rough Dirty, которые находятся в библиотеке Substance Designer. Через обычный Splatter текстура размножается и дублируется. Histogram Range уменьшает резкость и контрастность полученной текстуры.
Текстура шума
Заливка цветом производится с помощью ноды Uniform Color. Если смешивать маски нужных частей текстуры с Uniform Color посредством Blend, можно производить частичную заливку текстуры.
Цвет через маски
Дальнейшие манипуляции несут сугубо декоративный характер. Автор, используя вышеперечисленные ноды, а также дополнительные ноды для точечного и определенного использование, вроде Curvature Smooth, Invert Grayscale, Grayscale Conversion, Highpass Grayscale и др., последовательно собирает комплексный материал.
Чтобы придать эффект стилизованности, с помощью нод Slope Blur Grayscale, Perlin Noise, Crystal, Clouds, Histogram и Blend материал дополняется новыми деталями и шумами.
Финализация материала
Материал Wall_arabesque
Материал Column
Еще одним материалом, сгенерированным в Substance Designer является материал для колонны. Задачей стояло сделать материал, который также будет видоизменять силуэт 3D модели, т. е. влиять на карту Displacement.
Чтобы влияние текстуры Height стало сильнее, в панели Details в Material Graph Editor в разделе «Displacement» нужно увеличить значение Magnitude. Для сравнения на картинке одинаковые меши с материалом Column и без материала.
Как можно заметить, материал изменяет отображение геометрии модели, при этом никак на нее не влияя. Такой метод текстурирования позволяет минимизировать затраты движка на рендер и сделать процесс текстурирования более быстрым.




Сдвиг Displacement на модели
Основа со смещающимися выступами также делается через Shapes. Силу Height на рендере в Substance Designer можно настроить во вкладке Materials — Default — Edit Properties.
С помощью Tile Sampler Grayscale на материале генерируются «трещинки» и эффект «побитого камня», которые в дальнейшем смешиваются с шейпами.
База для колонны
Паттерн лепестков

Flood Fill
Другой важной нодой является Flood Fill. Она добавляет тон текстуре, который затем можно разбить на множество тонов в диапазоне от 0 до 1. Черные места — места впалостей, а белые — возвышенностей. Flood Fill to Gradient и Flood Fill to Random Grayscale
Также для придания большей стилизованности из ноды Flood Fill можно сгенерировать градиенты (Flood Fill to Gradient), а несколько манипуляций с параметрами ноды Flood Fill to Random Grayscale добавляют вариативности в их размещении.
В частности, Flood Fill применяется для создания паттерна плитки. Автору удалось добиться градиента, поверх которого накладываются текстуры шума для стилизации и те же «трещинки» с Tile Sampler Grayscale, что и в текстуре каменных выступов.
Flood Fill на материале
Как и в предыдущем материале, цвет наносится через маски разных частей паттерна.
Цвет
Материал Column
В процессе работы таким же образом было собрано еще 2 простых материала: Floor и Window.
Материал Floor
Материал Window
Substance Designer в UE5
Substance Designer удобен для дальнейшей работы с материалами в Unreal Engine, и все параметры и возможность их регулировки можно сохранить и так же настраивать непосредственно в самом движке через Material Instances.
Для этого необходимо подготовить Substance Archive для экспорта из Substance Designer.
Сперва нужно выбрать какие параметры и их регулируемость надо перенести в UE5. Для примера, автор настраивает параметр Scale ноды Tile Sampler Grayscale.
В боковой панели «Properties» напротив нужного параметра необходимо нажать на значок бургера со стрелкой вниз и в открывшемся окне выбрать «Expose as new graph input».
Expose as new graph input
Появляется меню «Expose Parameter». В нем можно подписать название параметра, чтобы в Unreal Engine или другом ПО было ясно, за что он отвечает.
Настроенные до этого значения параметра становятся значениями «по умолчанию».
Автор настраивает размер маленького паттерна, который не сильно повреждает общий узор, но придает разнообразие текстуре, и подписывает его Small_tile_scale.
Expose Parameter
Также были настроены параметры для градиента фона, градиента паттерна, цвета Curvature, падающего света и Ambient Occlusion.
Параметры
Чтобы экспортировать такой материал из Substance Designer и впоследствии импортировать в Unreal Engine 5, необходимо опубликовать его в формате Substance Archive. Для этого в боковой панели Explorer нужно нажать на Substance graph через ПКМ и выбрать опцию «Publish .sbsar file». После этого можно перемещаться в Unreal Engine.
В библиотеке Epic Games есть бесплатный плагин Substance 3D for Unreal Engine, который позволяет быстро перемещать материалы из Substance Designer и Substance Painter и устанавливать в Unreal Engine 5 с автоматической настройкой Master Material. Чтобы активировать его, необходимо подключить плагин Substance in UE5.


Плагин Substance in UE5
После публикации файла Substance Archive из Substance Designer можно импортировать его в движок. UE5 сам предложит создать Master Material из импортированных текстур, чтобы в дальнейшем можно было сделать Material Instances (MI). MI предоставят вариативность в текстурировании, и таким образом из трех материалов можно собрать неограниченное количество их вариаций.
Substance Import Options
Тем не менее, автор хочет добиться максимальной самостоятельности и контроля в создании Master Material, поэтому он отжимает галочку напротив Create Material и создает свой материал.
Master Material в UE5 для материала из Substance Designer
Далее нужно просто создать Material Instance и назначить все текстуры (Albedo, Metallic, Roughness, Normal, AO и Height).
Material Instance
Движок автоматически создает раздел Tiling с параметрами, которые позволяют производить манипуляции с растяжением текстур, их количеством, поворотом и сдвигом.


Изменение настроек в Material Instance
Плагин Substance 3D in UE5, кроме материала, создает также такой файл, как Substance Instance Factory, который, в свою очередь, может создавать несколько Substance Graph Instances с соответствующим набором текстур (Albedo, Metallic, Roughness, Normal, AO и Height). И уже в непосредственно Substance Graph Instance можно менять и регулировать параметры, которые были заданы и подготовлены в Substance Designer.
Substance Graph Instance




Изменение параметров в Substance Graph Instance
Таким образом, можно не выходя из Unreal Engine менять параметры материала из Substance Designer, делать Instances, что придает гибкость и удобство процессу текстурирования и лишь с одним исходным материалом задает его вариативность.
Текстуры в окружении
Генерация стилизованных текстур в Substance Painter
В локации, кроме модульных ассетов, вроде стен, пола, арок, окон и крыши также присутствуют и пропсы. Они были заблаговременно смоделированы в Maya и разделены на материалы. Остальная работа с текстурированием будет производится исключительно в Substance Painter. Первым дело, нужно запечь текстуры. Так как меши были смоделированы в Maya без скульптинга, во время запекания нужно выбрать «Use Low Poly mesh as High Poly Mesh».
Запекание текстур
Для ускорения и автоматизации создания стилизованных текстур будет использоваться готовый генератор Stylized Texture Generator от 3D художника Антона Рабарского. Он состоит из нескольких параметров, таких как Градиент, Цвета, Ambient Occlusion, Curvature, Cavity, дополнительная цветокоррекция и падающий свет, которые, на основе запеченных карт, создают текстуры. Комбинация таких манипуляций придает эффект стилизованной модели.
Stylized Texture Generator от Anton Rabarskyi
Краткое описание кастомного генератора от Anton Rabarskyi
При импорте файла Антона Рабарского нужно выбрать импорт в качестве генератора. Тогда он появится в меню среди других генераторов.
Import Custom Generator
Быстрый процесс стилизованного текстурирования
Паттерн поверх текстур
Чтобы сделать еще более стилизованный материал, можно применить фильтр «Stylization», который находится в библиотеке Substance Painter (появился в версии 2025 года).
Stylization Filter


Примененный фильтр и без фильтра
Он добавляет эффект brushstroke на все запеченные карты текстур (Base Color, Metallic, Roughness, Normal, Curvature, AO). Эти «хэндпейнт» мазки кистью, как и в генераторе, могут быстро регулироваться в настройках фильтра.
Кроме того, все манипуляции с «мазками» кистью могут влиять на карты по-разному. Другими словами, влияние на карты Base Color, Normal, Roughness, Metallic может быть разным и его силу можно задавать в параметрах (например, через параметр Normal Threshold идет влияние только на карту Normal)
Наложение brushstroke происходит на все карты текстур


Изменение параметра Normal Threshold и влияние мазков на карту Normal


Изменение влияние мазков на карту Roughness через параметр Roughness Variation


Изменение количества мазков через параметр Strokes amount


Изменение размера мазков через параметр Strokes Scale


Изменение размытости и резкости мазков через параметр Color Variation
В данном случае изменение значения параметра Color Variation лучше оставить минимальным, чтобы не потерять четкие границы паттерна с цветами.


Наложение оттенка через параметр Colorize с определенным цветом
Изменение формы мазков через параметр Strokes Select
В результате, с помощью кастомного генератора Антона Рабарского и фильтра Stylization можно быстро производить стилизованные текстуры. За время, затраченное на ручное текстурирование одной модели, с помощью генератора и фильтра можно приготовить сразу несколько вариантов текстур. Этот метод не только ускоряет процесс текстурирования, но и задает необходимую для проекта стилизацию.
Одна модель и два варианта текстур
Текстуры в окружении










сплошной базовый материал | материалы из Substance Designer и Substance Painter
Использование стороннего ПО и интеграция его результата в движок затруднительно, однако благодаря плагину процесс занял всего несколько минут. Создание стилизованных текстур с помощью нодовой системы Substance Designer требует усидчивости и долгого изучения программы, тем не менее, зная базовый набор основных нод, можно сгенерировать довольно простые, но уникальные текстуры.
В дальнейшем, из полученных из Substance Designer материалов в формате Substance Archive есть возможность сделать собственные стилизованные кастомные генераторы для Substance Painter, как это сделал в свое время 3D художник Тони Рабарон. Таким образом, получится производить полный контроль над всем пайплайном текстурирования.
Текстуры в окружении