Substance painter не работает симметрия

5 лайфхаков с использованием генераторов в Substance Painter

Мы уже успели поговорить об основных ошибках при текстурировании, про разнообразие и контрасты, про износ и точки интереса. В этой статье разберем несколько подходов, которые упрощают создание текстур в Substance Painter.

Curvature в канале Base Color

На некоторых объектах, в качестве финального штриха, можно добавлять запеченную карту Curvature в цветовой канал верхнего Fill layer. Режим смешивания в таком случае нужно выставить «Overlay».

Курватура в таком режиме высветлит углы и грани, которые запеклись на ней белым цветом — это добавит объема.
Если нужно подредактировать яркость или тоновый баланс карты — используй Levels или крути прозрачность слоя.

AO в канале Base Color

Также можно добавить карту АО в цветовой канал для создания объемных затенений на объекте. Тогда режим смешивания используй «Multiply», а для корректировки — все те же изменения прозрачности или Levels.

Внимание! Описанные способы могут нарушить работу PBR: по его правилам, в карте Albedo не должно быть информации о запеченном свете. Поэтому пользуйся ими аккуратно и осознанно.

Position generator

Генератор position можно использовать для создания загрязненности/запыленности на частях объекта, которые стоят на земле. Это может быть какой-то забор, столб, ящик, или даже автомобиль.

Генератор использует Position map и World Space Normal, чтобы определить, где у модели низ, а где — верх. И если на этих картах остались какие-то артефакты — они проявятся.

Создаем Fill layer с грязью/пылью/ржавчиной, накладываем маску и добавляем в неё ячейку Generators. В списке generators выбираем «Position».

Дальше крутим контраст/баланс/размытие, настраиваем нужную интенсивность.
В конце можно добавить несколько гранжей с помощью заливочного слоя в режиме multiply внутри маски, чтобы разнообразить монотонный градиент.

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

Художник из Naughty Dog, работавший над The Last of Us 2, в своем ArtStation[a] показал решение проблемы с генеративным загрязнением машин. Для этого они использовали специальный шейдер, работающий на Position и World Space Normal картах. Конечно, он устроен сложнее, чем в Substance Painter, но принцип работы тот же.

Curvature generator

Помимо добавления Curvature map напрямую в цвет объекта, можно использовать генератор для создания маски на углах. Это отлично работает с деревянными и кожаными объектами, если нужно высветлить стертые грани.

Создание и рандомизация маски выглядят следующим образом:

Сначала в маску добавляем генератор курватуры и редактируем в нем контрастность/размытие/баланс:

В генераторе можно настроить контрастность линий и разбить их гранж картой, но если тебе нужно сделать линии шире — используй хитрость. Добавляй слой Blur, размывай немного маску и добавляй Levels поверх. Levels в комбинации с Blur позволяет расширять/сужать пятна и линии.

В конце добавляем заливочный слой в маску с настроенным Multiply смешиванием.

Light generator

Ещё один достойный внимания генератор — Light generator. Он использует Position и World Space Normal maps, чтобы симулировать освещение.

Этим инструментом можно создавать направленную запыленность. К примеру, если у вас есть воздухозаборник и нужно прорисовать скопившуюся пыль на открытых участках — Light generator незаменим. Он также удобен для создания запыленности на тканях со множеством складок.

Читайте также:  Отремонтировать мост stardew valley

В работе со шлемом он не применялся, но все же рассмотрим принцип использования.

Назначаем его в маску, настраиваем с помощью двух ползунков «Horizontal Angle» и «Vertical Angle» направленность света.

Настраиваем контрастность и интенсивность с помощью стандартных ползунков или дополнительных слоев с Levels и Blur.

В конце, как обычно, можно добавить гранж-карту для разнообразия. Готово!

Мы описали основные подходы чтобы показать тебе, что генераторы не такие страшные и непонятные, какими кажутся на первый взгляд. Существует еще много хитростей, которые можно использовать для решения специфичных задач. Мы расскажем о них в будущем. Stay tuned.

Источник

Создаём материал стекла в Substance Painter и Marmoset

Всем привет, это Антон Агеев — автор курса “Процедурный трип”. На нём я учу создавать процедурные текстуры на профессиональном уровне.

Один из самых популярных вопросов от студентов — как создать и настроить материал прозрачного стекла?

В прошлый раз я рассказал о создании материала бетона в Substance Designer, а в этом гайде покажу, как делать стекло в Substance Painter — на примере модели будильника.

Стекло — непростой материал, потому что единого способа его сделать нет. В каждой программе оно настраивается по-разному, и поэтому часто возникает путаница.

В статье два раздела: о создании текстуры в Substance Painter, и о её импорте и настройке в Marmoset. Методику из второго раздела я частично заимствую из материала художника Ognyan Zahariev.

Substance Painter

В моём проекте у модели два текстурных сета — для корпуса и для стекла будильника. Каждый текстурный сет использует свой шейдер, потому что в материале стекла нужна прозрачность, а в корпусе нет.

Создание шейдера

Чтобы создать новый шейдер текстурного сета стекла, нажимаем на Main Shader в Texture Set List:

Переименуем его в разделе Shader Settings:

Сменим типа шейдера на pbr-metal-rough-alpha blending:

В SP 2 типа прозрачности: alpha-blending и alpha-test.

  • В Alpha-test нет градаций. Пиксель либо полностью прозрачный, либо нет. Этот тип подходит, когда нужна жёсткая маска, — например, текстура листьев. Это более “дешёвая” альфа с точки зрения производительности.
  • Alpha-blending более “тяжёлый”, он поддерживает степень прозрачности и подойдёт для стекла.

Канал Opacity

После настройки шейдера добавим новый канал — opacity — в текстурный сет стекла.

Он управляет прозрачностью в материале с помощью чёрно-белой текстуры. Чем темнее пиксель, тем он прозрачнее на модели, и наоборот.

Для оптимизации процесса уберём каналы Metallic, Normal и AO из текстурного сета.

Базовый слой

Создадим первый слой — обычный Fill Layer с базовым значением Roughness и цветом непрозрачности.

По мере загрязнения, ближе к краям, стекло будет становиться непрозрачным. Цвет в канале BaseColor в этом слое позволит настроить его оттенок.

Roughness

Создаём детализацию в канале Roughness, отключаем все остальные. Значение Roughness в слое выставляем на 1.

Теперь добавляем маску для слоя.

  1. Создаем процедурную текстуру Scratches generator.

Настраиваем её так, чтобы было похоже на царапины на стекле — тонкие и прямые. Уменьшим их количество, чтобы они не были слишком навязчивыми. И понижаем прозрачность слоя на 50%.

2. Создаём якорь над царапинами чтобы копировать эффект в другие слои. Позже добавим эти царапины в normal другого слоя.

3. Следующие три слоя — микс из гранж-текстур, с помощью которых мы добавляем разные интересные детали: отпечатки пальцев, разводы и пыль.

4. Делаем маску более интенсивной по краям и прозрачной в центре.

Дублируем слой и используем разные бленды для настройки интенсивности.

5. Повышаем резкость маски с помощью Sharpen.

6. И создаём якорь для маски целиком.

Он понадобится в следующем слое — из него же мы создадим маску прозрачности.

Готово! Финальный стэк эффектов Roughness выглядит так:

Читайте также:  Как починить наушники jbl tb 205

Детали в нём намного проще создавать и настраивать до того, как мы сделаем стекло прозрачным, — поэтому мы и создаём материал в таком порядке.

Opacity

В следующем слое создаём маску прозрачности.

На этом слое отключаем все каналы кроме opacity, а значение прозрачности устанавливаем на 0,15–0,18.

Этот параметр задаёт максимальную прозрачность стекла. В реальной жизни оно всегда немного непрозрачное, поэтому не стоит устанавливать параметр на 0.

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

Для того, чтобы материал по краям циферблата был непрозрачным, добавим в слой opacity чёрную маску и скопируем в неё информацию из слоя Roughness с помощью якоря:

С помощью levels в якоре инвертируем её и увеличиваем контрастность маски, чтобы уменьшить площадь загрязнения.

Финальная маска слоя и канал Opacity выглядят так:

Добавление текстуры в канал Opacity делает края непрозрачными

Добавляя текстуру в канал Opacity делаем края непрозрачными.

Цвет непрозрачности задаём в нижнем слое, Glass BM:

Height

В этом слое настроим Height по маске царапин, чтобы на блике они смотрелись объёмнее.

Стекло готово!

Экспорт

Создадим новый шаблон, потому что у нас в модели нестандартный набор текстур. Стекло в Marmoset настраивается иначе, поэтому мне понадобятся не все каналы.

В проекте оставим только Normal, Roughness и маску Opacity.

Обратите внимание: используем альфу из канала, а не сам канал.

Информация из альфа-канала идентична маске слоя, она понадобится в Marmoset для настройки материала. Но есть загвоздка: в Marmoset обратная логика маски прозрачности.

Прозрачный пиксель — черный, непрозрачный — белый

Чтобы прозрачность в SP отображалась корректно, отключим на время этот эффект. Обратно его можно включить во время экспорта, чтобы в результате маска прозрачности была правильной.

Marmoset

В стандартном шейдере Marmoset прозрачность подключается в разделе Transparency.

На выбор есть несколько типов прозрачности. Ни один из них не работает так же, как в Substance Painter.

Единственный способ добиться схожего результата — использовать два типа прозрачности — один поверх другого — на разных геометриях.

Поэтому при экспорте модели в Marmoset создаём два стекла и смещаем их друг относительно друга, чтобы избежать пересечений геометрии.

В Marmoset создаём 2 материала для обоих стёкол

Первый будет использовать тип прозрачности add, а второй — dither.

Тип Add игнорирует канал цвета Albedo — он делает цвет полностью прозрачным. Отражения при этом рендерятся поверх задней геометрии.

В результате детализация в Roughness и в Normal будет видна на блике, но маску прозрачности использовать не получится. Параметр Alpha в настройках Transparency делает прозрачнее только отражения.

В этом материале используем только карту нормалей и Roughness

Dither

Прозрачность Dither рендерит Roughness, Normal и Albedo. Для каждого из каналов степень прозрачности пикселя задаётся чёрно-белой маской. Для всех каналов она одинаковая.

Это значит, что если в Albedo пиксель прозрачный, то отражений тоже не будет видно.

В материале glass_dither используем текстуру Roughness и маску прозрачности

Регулируем оттенок грязи цветом Albedo, так же, как в SP. Там мы делали это через слой, а здесь настроим цвет в самом материале.

Готово!

Можно включить видимость всех слоёв и посмотреть, как они выглядят вместе:

Если хочешь научиться текстурированию на профессиональном уровне, регистрируйся на курс по процедурным текстурам — он стартует 1 ноября.

Источник

Merge texture sets, или как делать один набор текстур в Substance Painter

Merge Texture Set быстро и без лишних усилий…

Доброго времени суток, меня зовут 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 — Настройка проекта

Теперь нужно правильно настроить проект, что бы работа с ним была удобной и понятной.

  1. Создаем в слоях папку (Folder) и называем ее так, как назвали бы текстуру (В моем случае Wood, Rings или Steel). Таких папок нужно столько, сколько будет текстур на вашей модели
  2. Выбираем одну из папок и добавляем ей mask with color selection в меню масок, в ее настройках выбираем пипетку (Picker) и видим «запечёный» ID на нашей low-poly модели. Данную операцию нужно сделать для всех частей объекта

Теперь эти папки и есть наши варианты Texture Set, при работе с которыми мы не будем задевать другие части модели. Теперь иерархически заполняя папки (например, Fill Layer) можно окрашивать части модели в свои текстуры.

Источник

Оцените статью