Создаём материал стекла в Substance Painter и Marmoset Ч.2
На этом слое отключаем все каналы кроме 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
Тип Add игнорирует канал цвета Albedo — он делает цвет полностью прозрачным. Отражения при этом рендерятся поверх задней геометрии.
В результате детализация в Roughness и в Normal будет видна на блике, но маску прозрачности использовать не получится. Параметр Alpha в настройках Transparency делает прозрачнее только отражения.
В этом материале используем только карту нормалей и Roughness
Dither
Прозрачность Dither рендерит Roughness, Normal и Albedo. Для каждого из каналов степень прозрачности пикселя задаётся чёрно-белой маской. Для всех каналов она одинаковая.
Это значит, что если в Albedo пиксель прозрачный, то отражений тоже не будет видно.
В материале glass_dither используем текстуру Roughness и маску прозрачности
Регулируем оттенок грязи цветом Albedo, так же, как в SP. Там мы делали это через слой, а здесь настроим цвет в самом материале.
Готово!
Можно включить видимость всех слоёв и посмотреть, как они выглядят вместе:















CGI Media
3.1K постов6.5K подписчиков
Правила сообщества
• Посты должны соответствовать тематике cообщества.
• Не допускается спам и нарушение правил сайта pikabu.