substance designer зачем нужен
Создание материалов для Unity в Substance Designer
Ужасные мучения
Текстурирование и создание игровых материалов всегда были интересной… и мучительной работой одновременно. До перехода на Substance Designer я использовал для создания всех нужных карт Photoshop и xNormal. Приходилось много раз переключаться между двумя этими приложениями, и это надоедало. Теперь я избавился от этой проблемы.
Substance Designer (SD) — это программное обеспечение, позволяющее создавать материалы и текстуры «на лету». В нём используется удивительно простая система узлов. Я художник, и обычно меня очень пугала работа с узлами (и вообще всем, кроме кисти). Честно говоря, когда я впервые увидел SD, то слегка вздрогнул. К счастью, у авторов программы есть видео, демонстрирующие её возможности. Они дают такого мотивирующего «пинка», что вам приходится совершить «прыжок веры».
Почему SD?
Сначала определимся, почему мы остановились именно на Substance Designer? Первая причина — Unity перешёл на новую систему материалов под названием PBS, Physically Based Shading («физически обоснованный шейдинг»), хорошо описанную в этом потрясающем посте. Мы хотели использовать эту новую технологию по максимуму.
Вторая причина заключается в том, что в игре Antegods мы хотели исследовать область процедурной генерации. В SD есть удивительно быстрые алгоритмы, позволяющие создавать материалы почти мгновенно. Одним нажатием или добавлением нового узла можно значительно изменить внешний вид всего материала.
Последняя причина в том, что рабочий процесс переноса материалов в Unity просто безупречен. Можно экспортировать весь материал в Unity, изменять его уже там… и всё работает без проблем!
Примеры
Вот примеры материалов, созданных нами в Substance Designer.
Процесс обучения SD никогда не заканчивается. Есть очень много способов достичь одинакового результата, и некоторые из них лучше или быстрее других.
Ищем золото!
Сейчас я продемонстрирую вам небольшой пример по созданию золота. Алхимики пытались получить его веками, и это очень важный материал для нашей игры, основанной на древней латиноамериканской культуре.
Если вы знаете Substance Designer в совершенстве, вы, наверно, увидите способ сделать материал гораздо лучше. Если это так, то расскажите нам! С другой стороны, если вы полный новичок в этом ПО, я предлагаю вам сначала посмотреть очень полезные обучающие видео компании Allegorithmic.
Материал «золото» на самом деле довольно просто создать, но он всё равно требует множества настроек. Вот как выглядит окончательный граф в Substance Designer.
Я обычно начинаю с настройки Specular/Glossiness (отражения/глянцевости). В основном потому, что я больше к ним привык, чем к Metallic/Roughness (металл/шероховатость). Это уже может быть странно, потому что настройка Metallic/Roughness — стандарт в Unity.
Во-вторых, мне нужна была красивая металлическая или каменная структура с трещинами и вмятинами.
Cracks & Grain (трещины и зернистость) — это очень малозаметная структура, которая в основном видна на карте нормалей (Normal), и совсем немного — на карте диффузности (Diffuse). Я начал с мозаичного шаблона и соединил его с узлами Clouds (облака) для получения здесь малозаметной структуры.
Я хотел, чтобы трещины проявлялись больше в Normal, чем в Diffuse, поэтому поместил узел прямо перед выходом, чтобы он находился в части с картами нормалей.
Для правдоподобности золото должно быть как можно более гладким, иначе у нас получится жёлтая фольга. Поэтому карта нормалей очень слабо выражена, но её всё равно видно.
Добавив к карте Cracks & Grain простую градиентную карту (Gradient map), я могу быстро создать карту Diffuse.
Но нам кое-чего не хватает. В Substance Designer удобно то, что можно работать с ранее созданными картами. Здесь я взял карту нормалей, превратил её в карту Curvature, увеличил значения и превратил всё это в цветовую карту (color map). (Карты Grayscale и Color не смешиваются.)
Смешав их поверх уже сущестующей карты Diffuse, мы получим немного более интересную текстуру.
И, наконец, для отражения (Specular) я использовал простой узел Clouds. С помощью градиентной карты я нанёс немного более тёмные цвета, чем в диффузной карте, а поверх добавил детали с помощью curvature с увеличенными значениями.
Для глянцевости (Glossiness) я использовал тот же узел Clouds, осветлил результат (чем ярче, тем больше блеска), добавил увеличенные детали Curvature, и на этом всё!
Вот и всё, материал уже находится в Unity. Как видите, внизу есть настройки. Например, можно быстро изменить размер текстуры, что очень удобно, если нужно уменьшить масштаб проекта.
Также тут есть кнопка Randomize. При её нажатии материал изменяет все сгенерированные значения. Сейчас моё золото выглядит не самым лучшим образом, потому что в нём всегда используются небольшие значения для облаков (clouds) и трещин (cracks). Однако если немного поднять значение cracks и нажать кнопку Randomize, то произойдёт следующее:
Это уже близко к нужной нам процедурной генерации. Каждый раз материал будет выглядеть немного иначе.
Но SD способен на большее: можно раскрывать нужные узлы и функции. После этого они становятся видимыми в Unity, и их можно настраивать. В моём примере я раскрыл две функции: количество трещин по осям X и Y. В редакторе можно перетаскивать ползунки, настраивая материал на свой вкус.
Рекомендуем!
В заключение я рекомендую Substance Designer всем, кто работает с текстурами и материалами. Это ПО предоставляет большую свободу и позволяет быстро достичь потрясающих результатрв. В нём так много функций, что можно, как мне кажется, создать практически всё.
А на прощание вот несколько графов, которые мы создали, осваивая программу. Успехов в работе!
Моделирование материалов: советы и трюки
Александр Глухачёв рассказал порталу 80.lv, как он работает над созданием невероятных материалов с помощью Substance Designer.
Перевод статьи с портала 80 level
Введение
Привет! Меня зовут Александр. С 3D графикой я познакомился в старшей школе. Шутки ради, я купил на рынке диск с пиратской версией программного обеспечения для 3D моделирования и фото редактирования. Удачно и безболезненно я установил несколько программ. Это были 3D max 5, Photoshope 7, Bryce 5 и, кажется, Maya, но не помню точно.
Тогда у нас не было нормального интернета, и я по сути не знал, что с этими прогами делать. Первый опыт в 3D не зашел дальше вращения каких-то базовых фигур в окне просмотра и парочки срендереных пиксельных строк, встроенных в 3D max.
Позже я заинтересовался графикой на 4-ом курсе университета. Тогда я занимался гео-моделированием для диплома и понятия не имел, что делал это в 3D.
Довелось как-то поработать с Blender. Я установил его, создал несколько моделей по обучалкам на форуме, и меня затянуло. За год-полтора 3D моделирование стало моим хобби, пока я не начал искать другую работу (по окончанию университета я работал в одной IT-компании) и меня взяли в небольшую дизайн-студию в качестве 3D-дизайнера. Студия работала со всякой всячиной по типу логотипов, макетов сайтов, фото суши для службы доставки японской еды. Долгое время я дизайнил кадры высоко полигональной окружающей среды для промо материалов.
Потом я ушел из студии, полгода проработал над проектом, который назывался Cyclop (Циклоп). Это должна была быть пост апокалиптическая онлайн стрелялка. Но, к сожаленью, по ряду причин проект заглох, так и не реализовавшись.
Несколько лет я работал в студии над разработкой пошаговой стратегии, и заполнял свое портфолио нерабочими проектами.
Знакомство с Substance Designer
Впервые с Substance Designer я познакомился в 2014 году, с его четвертой версией. Тогда меня обескуражил интерфейс, казалось, что проще создавать карты по-старинке, в Photoshop, чем пытаться сделать что-то толковое из той кучи точек. Проблема состояла в том, что я даже не представлял, на что способна программа. Тогда я делал среду в Unity 4, Designer использовал только чтобы сгенерировать шум, с которым потом создавал текстуры в Photoshop. Такое себе эффективное пользование программами.
В основном я начинал с Photoshop, запекал в xNormal, а текстуры брал с cgtextures.com. Всего год спустя я вплотную занялся Substance Designer, на тот момент с его пятой версией. Смотрел туториалы по моделированию кирпичной кладки, затем создавал своих поверхности.
По сути, если уметь работать со слоями, масками, режимами наложения в Photoshop, то не будет никаких сложностей в том, чтобы понять, как работает Substance Designer. И с системой узлов нодов разобраться просто на уровне интуиции. Хотя и выглядит это все поначалу устрашающе.
С нодами я уже был знаком, поскольку долгое время работал с Cycles, встроенным в Blender движком для рендера. Он использует узлы для конфигурации материалов и освещения.
Если сравнить его со старыми инструментами, то он как верстак в гараже, а новая версия больше похожа на стол для алхимии… посреди леса… с единорогами. Нужно просто смешать различные ингредиенты и получишь то, что хочешь.
К тому же, можно так же брать текстуры с сайтов, фотосканы и маски создавать в Photoshop или Illustrator. Или, как многие другие делают, запекать поверхности, созданные в Zbrush и более качественные материалы с помощью Substance Designer. Да, интерфейс совсем другой и подходы разные, но оно того стоит.
Создание
В моделировании материалов, как и в создании чего-либо, следует двигаться от простого к более сложному, от больших форм к формам поменьше.
Обычно я начинаю с простой карты. Создаю барельеф, потом альбедо и продвигаюсь к другим неровностям поверхности. Если потребуется, завершая карту, добавляю разные мелкие детали и микрорельеф.
Что касается структуры, то к созданию различных материалов нужны разные подходы. Если это грязь или штукатурка, все сводится к тому, что нужно смешать различные шумы, подогнать яркость и контраст. Если же это масштаб или более сложная поверхность, тут я обычно начинаю с базовых элементов, из которых состоит поверхность.
(процесс создания венозной системы)
В этом примере я использовал Форму (Shape node), добавил искривления основы, затем соединил все в ветвление с помощью двухмерных узлов.
(Структура одной ветки узлов)
Таким методом я смоделировал несколько венозных типов.
Потом продублировал их, используя Копирование фрагментов.
(Структура масок венозной системы)
В конечном результате, у меня получилась маска. Которую позже я использовал для создания рельефа венозной системы, а также чтобы отделить вены от поверхности мозга с альбедо и неровностями поверхности. Материал фактически обрамлял основную маску.
(конечный материал с венозной системой)
Органические вещества
Метод моделирования органических веществ не сильно отличается от создания любого другого материала. Главное – иметь как можно больше референсов под рукой и уметь их анализировать.
Однако же, я могу указать на некоторые нюансы.
Например, органические вещества очень часто имеют прозрачную или полупрозрачную поверхность. Такие как мукоза или различные жидкости.
Можно создать полупрозрачную оболочку, комбинируя два материала с помощью маски с гладким градиентным переходом, таким образом имитируя степень плотности просвечивающегося вещества на разных участках оболочки.
(вещество с полупрозрачной оболочкой)
На изображении высокого разрешения видно подкожный слой и оболочку мяса. Слева видно альбедо поверхности, которое создавалось наложением двух материалов. Заметны потемнения по краям неравномерного слоя маски, сымитировано утолщение оболочки, как если бы на месте деформации было повреждение оболочки.
– Можно также сделать видимость полупрозрачного слоя, снизив шероховатость оболочки или добавить размытость в альбедо. Получится якобы подсвечивающая пленка, с имитированным рассеиванием света. Еще можно добавить эффект тени в местах, где более прозрачные части поверхности соприкасаются с менее прозрачными.
– Моделируя поверхность слизистой оболочки, следует обращать внимание на поверхностное натяжение жидкостей. Когда жидкость обтекает какую-либо поверхность, она не соприкасается с ней под углом 90 градусов, создается гладкий переход.
У большинства органических материалов нет четкой и постоянной структуры. Кроме как на микроуровне, например, фасеточные глаза у насекомых. Но даже в таком случае существуют неровности, мелки и поврежденные грани. Следует разнообразить формы одного вида. Это касается, как органических веществ, так и других материалов. Чем больше неравномерностей, тем больше разнообразия в размере элементов, их форме и резкости.
– Из приятных бонусов процесса визуализации органических материалов – шейдер поверхностного рассеивания. Он позволяет придать материалу более реалистичный вид.
Детали
Сложно сказать, где заканчивается моделирование простого материала и начинается что-то реально крутое. Я вообще стараюсь, чтобы все материалы получались очень крутыми, но, увы, не всегда выходит. Как правило, такие детали заимствуются из рефренсов или добавляются чисто экспериментально, когда большинство материалов уже сделано и хочется, чтобы они выглядели интереснее.
Например, в Slime я изначально хотел использовать эффект простой пены с пузырьками. И первым референсом стало фото кваса. Таким образом, в ходе работы квас превратился в зеленую слизь.
Для имитации пены я создал разделенный генератор на два входа и четыре выхода.
(генератор пены и сгенерированные маски)
На вход генератора я добавил шум, создал форму пены, очертания формы пузырьков.
На выходах получил несколько типов пузырьков с контурами, созданными с помощью инструмента Карта градиента (Gradient map node), и толстый слой пены из маленьких пузырьков.
Разделение пузырьков на различные типы необходимо, чтобы настроить степень выпуклости слоев.
Генератор пены на самом деле очень прост и использует Копирование фрагментов. Форма пены – это совокупность входящего шума, переработанного и нанесенного на исходный слой маски Копирование фрагментов.
В той области, где маска белая, я создал множество маленьких пузырьков. Пузырьки побольше с маски для пузырьков маленьких инвертированы и удалены.
(Копирование фрагмента на исходный слой маски)
Таким образом, образуется пустая область среди маленьких пузырьков для больших.
(Структура генератора пены)
Маска, взятая из генератора пены, используется при формировке нормалей, цвета пены, альбедо, отделении пены от слизи. Еще я добавил эффект тени внутри пузырьков, чтобы пена выглядела «глубже», смешал базовый цвет слизи и инвертированную маску наложения с помощью Режима умножения и у меня получился такой легкий затенение внутри пузырьков.
(затенение внутри пузырей)
Кроме того, добавил затенения маленьким пузырька методом рассеивания тени снаружи-внутрь (AO map). А чтобы пена выглядела немного прозрачнее и не равномернее, добавил зеленый оттенок светло-бежевому цвету пены в альбедо.
(конечное альбедо пены)
В конечном итоге, неравномерное освещение маски, отделение слизи от мены и гладкий переход цвета внутри пузырьков имитируют полупрозрачность и рассеивание. Шейдинг создает впечатление, что слизистое вещество больше в размере и прозрачнее, чем есть.
И наконец, в нормаль вдоль кромки пены я также добавил гладкий скос дабы отобразить эффект натяженности воды снаружи между пеной и зеленой слизистой субстанцией.
Все эти мельчайшие детали едва можно заметить, но вместе они сильно влияют на то, каким же в итоге выглядит вещество. Как говорится, дьявол кроется в деталях.
(общая структура слизистого вещества)
Использование материалов в играх
Обычно в играх необходимо что-то попроще: плитка, штукатурка, бетон, земля, кирпичи и тому подобное – в общем то, из чего можно построит локации.
Когда же дело касается органических материалов, они довольно специфические и их используют только в определенных случаях. Например, в текстуре существ для хоррор игр или таких штук как Scorn.
Моей основной целью в моделировании таких материалов было научиться это делать. Мне хотелось создавать что-то необычное, приобрести дополнительный опыт работы в Substance Designer. Меня заинтересовала органика, и я начал работать именно в этом направлении.
В чем плюс веществ, так это в возможности их гибкого урегулирования; будь то рельеф или цветовая гамма – можно в любой момент быстро дожать любой элемент этого вещества.
Если вам, например, не нравится форма брусчатки, вам не нужно снова начинать все сначала: переделайте скульпт, запеките и сделайте новые маски. Всего-то нужно будет изменить исходную маску материала.
Или если, предположим, вам нужно два материала для раскрашивания вершин, такие как кусочки черепицы, нужно всего-то создать эти облицовочные плиты. Сохраните маски черепицы, поиграйтесь нодами, чтобы создать обломки или трещины, затем сохраните второй вариант – и готово.
Полезные советы
Не припомню какой-либо курс или видео по тематике, но рекомендую просмотреть курс Substance Academy на официальном сайте Allegorithmic. Еще если вбить в поисковик YouTube запрос ‘substance designer’, выдаст много видео-уроков по различным тематикам, можно любой из них смотреть. Новичкам в первую очередь надо понять общую логику работы и интерфейса, потом уже они сами смогут справиться.
Когда дело касается приобретенных навыков, то работа с масками в Substance Designer почти похожа на работу со слоями и режимами наложения в Photoshop. Вы просто комбинируете различные слои, добавляя или извлекая из них наполнение.
Между прочим, тем. Кто уже знаком с системой узлов, тем будет намного проще понять интерфейс самого редактора.
Самое важное, что обязательно нужно прочесть перед началом работы, – это материалы по PBR (Physically-Based Rendering), тонкости создания масок для PBR и все к этому относящееся. На сайте Allegorithmic размещен подробный гайд.
Adobe Substance Designer. Процедурное текстурирование
Алексей Баукин, инструктор Substance Designer в Realtime School
В метафизической философии Субстанция — неизменная сущность вещей
Давайте поговорим о текстурировании. Качество и вау-эффект любой 3D-картинки, от простого рендера до киношных спецэффектов или виртуальных игровых миров, напрямую зависит от того, насколько хорошо сделаны, подобраны и наложены текстуры. С текстурами — как с ремонтом: хороший отделочник сделает конфетку из самого убитого помещения, плохой маляр с ведром зеленой или серой краски превратит любой шедевр архитектуры в унылое ничто — вспомните окружающий нас ЖКХ-арт. Поэтому говорить о важности текстурирования бессмысленно, а вот о методах и приемах — очень даже полезно.
Компания Adobe с недавних пор предлагает целый комплект дополняющих друг друга инструментов для текстурирования 3D-моделей под общим названием Adobe Substance. Substance? Да-да, где-то мы это слышали раньше… Oh wait! Это же известный еще с 2003 года Allegorithmic, в 2019 году влившийся в плеяду творческих инструментов компании Adobe.
Основная особенность всего этого инструментария — процедурность, делающая процесс текстурирования максимально гибким. В состав Adobe Substance входит:
Substance Designer создает материалы процедурно, что позволяет полностью контролировать и недеструктивно редактировать готовый материал на любом этапе рабочего процесса. Кроме этого, он умеет:
Как работает Substance Designer?
Те, кто пробовал текстурировать в Photoshop, знают, что там почти все построено на слоях и модификаторах их свойств. В нашем случае система слоев с модификаторами никуда не делась, преобразовавшись в ноды, связанные между собой в логические цепочки:
Узнаете Levels из фотошопа?
Ноды — это схематичное отображение всей последовательности действий для генерации текстуры. Каждая нода совершает какое-либо действие над проходящими через нее данными. Результат на выходе одной ноды подается на вход другой (или нескольких), и мы формируем логическую последовательность действий, приводящую нас к готовому результату. Система нод вовсе не такая жуткая, как может показаться на первый взгляд:
Главное качество нодовой системы — недеструктивное редактирование: текстура генерируется в реальном времени, и при изменении любого параметра любой ноды все последующие немедленно перестраиваются, исходя из изменившихся данных на входе. Таким образом, мы управляем процессом в real time, делая его невероятно гибким.
Ноды делятся на несколько видов:
Много нод — это хорошо, но как это поможет сделать материал?
Зная разновидность и «поведение» нод, можно вывести группы, из которых состоит наша структура:
С чего начать?
Для работы с Substance Designer понадобятся базовые знания о текстурных картах PBR, референсы того, что вы будете рисовать, и понимание инструментов управления нодами. Если текстурные карты и виды PBR можно коротко описать картинкой ниже, то на инструментах стоит остановиться подробнее.
Источник: www.substance3d.com/books/pbr-guide
Какие ноды понадобятся?
Первая в нашем списке — уже упомянутая нода Levels. Она дает контроль над контрастом.
Нода Transformation 2D позволяет передвигать узор/паттерн/текстуру.
Ноды Blur и Blur HQ Grayscale/Color позволяют «замылить» изображение, что очень полезно для создания фасок (blur+curve). Различия видны из названия: если достаточно банального «расфокуса», используйте обычный Blur, если же нужна тонкая настройка — без Blur HQ Grayscale/Color не обойтись. Нода Grayscale не работает с цветом! Для работы с полноцветными данными используйте Blur HQ Сolor.
Ноды Gradient и Uniform color. Первая позволяет красить карту высот в несколько цветов градиентами, а вторая создает сплошную заливку.
Ну а самый необходимый инструмент — нода Blend. Получая на входе данные из нескольких источников, она позволяет смешивать их по определенным алгоритмам, формируя ваши узоры и паттерны. Функционально она выполняет те же задачи, что и режимы наложения слоев в Photoshop.
Создание материала в Substance Designer
В первую очередь нужно определиться, какой метод генерации материала будет использоваться. В нашем случае мы выберем шаблон PBR (Metallic/Roughness):
После выбора шаблона в окне Graph появились ноды, которые отвечают за итоговый вид текстуры:
Наведя курсор на окно Graph и нажав TAB или «пробел», вы получите меню с инструментами и строкой поиска. Поищем в ней ноду Mesh 1: вводим имя и нажимаем Enter.
Выделив ноду Mesh 1 одинарным кликом, мы увидим ее параметры. Если щелкнуть дважды, нода отобразится в левой колонке в окне 2D-просмотра. Редактируем параметры: на вкладке instance parameters изменим tiling на 6 и rotate 45 degrees на true:
Добавим ноду Levels, чтобы сделать наш узор менее рельефным. Параметры ее настройки — на картинке ниже.
Мы получили паттерн текстурированного стального листа — новенького, как с завода. Стоит добавить немного ржавчины. Для этого понадобится маска, которая будет определять области коррозии. Сделаем ее с помощью нод Normal, Curvature smooth и Histogram scan.
Генерируем текстуру ржавчины, используя BnW Spots 2 и Directional Warp:
Маска почти готова. Осталось смешать ржавчину с окантовкой и увеличить контрастность. Добавляем ноды Blend и Histogram scan:
Разумеется, параметры расположения маски можно менять, перемещая пятна ржавчины по металлу.
Теперь раскрасим нашу маску, используя ноды Gradient Map и PBR Metal Reflectance (вместо нее можно использовать и обычный Uniform Color). В Gradient Color нажимаем Gradient editor — откроется окно с настройками. Цвет ржавчины, конечно, можно подобрать и вручную, но это медленно и нецелесообразно. Вместо этого найдите любую картинку с ржавым куском железа и, удерживая левую кнопку мыши, проведите инструментом Pick gradient по картинке — вы получите идеальный градиент ржавчины, на создание которого руками ушли бы часы.
Далее смешиваем окраску ржавчины с текстурой с помощью ноды Blend (режим смешивания Copy) и выводим результат в ноду Base color.
Остается лишь добавить несколько деталей, чтобы наш металл смотрелся реалистичнее. Карту Roughness не трогаем, а вот Metallic немного подкорректируем: инвертируем нашу маску и втянем ее в Metallic, чтобы определить, где и как поверхность будет отражать свет. Теперь осталось лишь добавить немного теней. Для этого к ноде Levels добавляем HBAO и редактируем параметры:
Результирующая процедурная текстура — на картинке ниже. В любой момент мы можем изменить любой параметр текстуры и сразу увидеть, как изменится внешний вид. Готовый материал можно использовать как в Substance Painter, так и в других программах, поддерживающих форматы текстур Substance Designer.
Вы можете скачать файл Substance Designer с этой текстурой и поэкспериментировать с разными параметрами нод: смягчить или усилить контраст штамповки на стальном листе, изменить количество ржавчины, ее оттенок или даже добавить, например, слой облупившейся краски. Также вы можете посмотреть демо-ролик по созданию материала в Substance Designer.
Об авторе: Алексей Баукин – инструктор курса «Основы Substance Designer» в школе компьютерной графики Realtime.