0 added
0 removed
Original
2026-01-01
Modified
2026-03-07
1
<p>Всем привет, это Антон Агеев - автор курса<a>"Процедурный трип"</a>. На нём я учу создавать процедурные текстуры на профессиональном уровне.</p>
1
<p>Всем привет, это Антон Агеев - автор курса<a>"Процедурный трип"</a>. На нём я учу создавать процедурные текстуры на профессиональном уровне.</p>
2
<p>Один из самых популярных вопросов от студентов - как создать и настроить материал прозрачного стекла?</p>
2
<p>Один из самых популярных вопросов от студентов - как создать и настроить материал прозрачного стекла?</p>
3
<p>В прошлый раз я рассказал о создании материала<a>бетона в Substance Designer</a>, а в этом гайде покажу, как делать стекло в Substance Painter - на примере модели будильника.</p>
3
<p>В прошлый раз я рассказал о создании материала<a>бетона в Substance Designer</a>, а в этом гайде покажу, как делать стекло в Substance Painter - на примере модели будильника.</p>
4
<p>Стекло - непростой материал, потому что единого способа его сделать нет. В каждой программе оно настраивается по-разному, и поэтому часто возникает путаница.</p>
4
<p>Стекло - непростой материал, потому что единого способа его сделать нет. В каждой программе оно настраивается по-разному, и поэтому часто возникает путаница.</p>
5
<p>В статье два раздела: о создании текстуры в Substance Painter, и о её импорте и настройке в Marmoset. Методику из второго раздела я частично заимствую из<a>материала</a>художника Ognyan Zahariev.</p>
5
<p>В статье два раздела: о создании текстуры в Substance Painter, и о её импорте и настройке в Marmoset. Методику из второго раздела я частично заимствую из<a>материала</a>художника Ognyan Zahariev.</p>
6
<p><strong>Substance Painter</strong></p>
6
<p><strong>Substance Painter</strong></p>
7
<p>В моём проекте у модели два текстурных сета - для корпуса и для стекла будильника. Каждый текстурный сет использует свой шейдер, потому что в материале стекла нужна прозрачность, а в корпусе нет.</p>
7
<p>В моём проекте у модели два текстурных сета - для корпуса и для стекла будильника. Каждый текстурный сет использует свой шейдер, потому что в материале стекла нужна прозрачность, а в корпусе нет.</p>
8
<p><strong>Создание шейдера</strong></p>
8
<p><strong>Создание шейдера</strong></p>
9
<p>Чтобы создать новый шейдер текстурного сета стекла, нажимаем на Main Shader в Texture Set List:</p>
9
<p>Чтобы создать новый шейдер текстурного сета стекла, нажимаем на Main Shader в Texture Set List:</p>
10
<p>Переименуем его в разделе Shader Settings:<em></em></p>
10
<p>Переименуем его в разделе Shader Settings:<em></em></p>
11
<p>Сменим типа шейдера на pbr-metal-rough-alpha blending:</p>
11
<p>Сменим типа шейдера на pbr-metal-rough-alpha blending:</p>
12
<p>В SP 2 типа прозрачности: alpha-blending и alpha-test.<em></em><em></em></p>
12
<p>В SP 2 типа прозрачности: alpha-blending и alpha-test.<em></em><em></em></p>
13
<ul><li>В Alpha-test нет градаций. Пиксель либо полностью прозрачный, либо нет. Этот тип подходит, когда нужна жёсткая маска, - например, текстура листьев. Это более "дешёвая" альфа с точки зрения производительности.</li>
13
<ul><li>В Alpha-test нет градаций. Пиксель либо полностью прозрачный, либо нет. Этот тип подходит, когда нужна жёсткая маска, - например, текстура листьев. Это более "дешёвая" альфа с точки зрения производительности.</li>
14
<li>Alpha-blending более "тяжёлый", он поддерживает степень прозрачности и подойдёт для стекла</li>
14
<li>Alpha-blending более "тяжёлый", он поддерживает степень прозрачности и подойдёт для стекла</li>
15
</ul><p><strong>Канал Opacity</strong>После настройки шейдера добавим новый канал - opacity - в текстурный сет стекла.<em></em></p>
15
</ul><p><strong>Канал Opacity</strong>После настройки шейдера добавим новый канал - opacity - в текстурный сет стекла.<em></em></p>
16
<p>Он управляет прозрачностью в материале с помощью чёрно-белой текстуры. Чем темнее пиксель, тем он прозрачнее на модели, и наоборот.</p>
16
<p>Он управляет прозрачностью в материале с помощью чёрно-белой текстуры. Чем темнее пиксель, тем он прозрачнее на модели, и наоборот.</p>
17
<p>Для оптимизации процесса уберём каналы Metallic, Normal и AO из текстурного сета.<em></em></p>
17
<p>Для оптимизации процесса уберём каналы Metallic, Normal и AO из текстурного сета.<em></em></p>
18
<p><strong>Базовый слой</strong></p>
18
<p><strong>Базовый слой</strong></p>
19
<p>Создадим первый слой - обычный Fill Layer с базовым значением Roughness и цветом непрозрачности.<em></em></p>
19
<p>Создадим первый слой - обычный Fill Layer с базовым значением Roughness и цветом непрозрачности.<em></em></p>
20
<p>По мере загрязнения, ближе к краям, стекло будет становиться непрозрачным. Цвет в канале BaseColor в этом слое позволит настроить его оттенок.</p>
20
<p>По мере загрязнения, ближе к краям, стекло будет становиться непрозрачным. Цвет в канале BaseColor в этом слое позволит настроить его оттенок.</p>
21
<p><strong>Roughness</strong></p>
21
<p><strong>Roughness</strong></p>
22
<p>Создаём детализацию в канале Roughness, отключаем все остальные. Значение Roughness в слое выставляем на 1.<em></em></p>
22
<p>Создаём детализацию в канале Roughness, отключаем все остальные. Значение Roughness в слое выставляем на 1.<em></em></p>
23
<p>Теперь добавляем маску для слоя.</p>
23
<p>Теперь добавляем маску для слоя.</p>
24
<ol><li>Создаем процедурную текстуру Scratches generator.</li>
24
<ol><li>Создаем процедурную текстуру Scratches generator.</li>
25
</ol><p>Настраиваем её так, чтобы было похоже на царапины на стекле - тонкие и прямые. Уменьшим их количество, чтобы они не были слишком навязчивыми. И понижаем прозрачность слоя на 50%.<em></em></p>
25
</ol><p>Настраиваем её так, чтобы было похоже на царапины на стекле - тонкие и прямые. Уменьшим их количество, чтобы они не были слишком навязчивыми. И понижаем прозрачность слоя на 50%.<em></em></p>
26
<p>2. Создаём якорь над царапинами чтобы копировать эффект в другие слои. Позже добавим эти царапины в normal другого слоя.<em></em></p>
26
<p>2. Создаём якорь над царапинами чтобы копировать эффект в другие слои. Позже добавим эти царапины в normal другого слоя.<em></em></p>
27
<p>3. Следующие три слоя - микс из гранж-текстур, с помощью которых мы добавляем разные интересные детали: отпечатки пальцев, разводы и пыль.<em></em></p>
27
<p>3. Следующие три слоя - микс из гранж-текстур, с помощью которых мы добавляем разные интересные детали: отпечатки пальцев, разводы и пыль.<em></em></p>
28
<p>4. Делаем маску более интенсивной по краям и прозрачной в центре.<em></em></p>
28
<p>4. Делаем маску более интенсивной по краям и прозрачной в центре.<em></em></p>
29
<p>Дублируем слой и используем разные бленды для настройки интенсивности.<em></em></p>
29
<p>Дублируем слой и используем разные бленды для настройки интенсивности.<em></em></p>
30
<p>5. Повышаем резкость маски с помощью Sharpen.<em></em></p>
30
<p>5. Повышаем резкость маски с помощью Sharpen.<em></em></p>
31
<p>6. И создаём якорь для маски целиком.<em></em></p>
31
<p>6. И создаём якорь для маски целиком.<em></em></p>
32
<p>Он понадобится в следующем слое - из него же мы создадим маску прозрачности.<em></em></p>
32
<p>Он понадобится в следующем слое - из него же мы создадим маску прозрачности.<em></em></p>
33
<p>Готово! Финальный стэк эффектов Roughness выглядит так:<em></em></p>
33
<p>Готово! Финальный стэк эффектов Roughness выглядит так:<em></em></p>
34
<p>Детали в нём намного проще создавать и настраивать до того, как мы сделаем стекло прозрачным, - поэтому мы и создаём материал в таком порядке.</p>
34
<p>Детали в нём намного проще создавать и настраивать до того, как мы сделаем стекло прозрачным, - поэтому мы и создаём материал в таком порядке.</p>
35
<p><strong>Opacity</strong></p>
35
<p><strong>Opacity</strong></p>
36
<p>В следующем слое создаём маску прозрачности.<em></em></p>
36
<p>В следующем слое создаём маску прозрачности.<em></em></p>
37
<p>На этом слое отключаем все каналы кроме opacity, а значение прозрачности устанавливаем на 0,15-0,18.<em></em></p>
37
<p>На этом слое отключаем все каналы кроме opacity, а значение прозрачности устанавливаем на 0,15-0,18.<em></em></p>
38
<p>Этот параметр задаёт максимальную прозрачность стекла. В реальной жизни оно всегда немного непрозрачное, поэтому не стоит устанавливать параметр на 0.</p>
38
<p>Этот параметр задаёт максимальную прозрачность стекла. В реальной жизни оно всегда немного непрозрачное, поэтому не стоит устанавливать параметр на 0.</p>
39
<p>Стекло уже выглядит неплохо, но детали и грязь видны только на блике. Когда его нет, стекло кажется абсолютно прозрачным, потому что в канале Opacity сейчас однородный цвет.</p>
39
<p>Стекло уже выглядит неплохо, но детали и грязь видны только на блике. Когда его нет, стекло кажется абсолютно прозрачным, потому что в канале Opacity сейчас однородный цвет.</p>
40
<p>Для того, чтобы материал по краям циферблата был непрозрачным, добавим в слой opacity чёрную маску и скопируем в неё информацию из слоя Roughness с помощью якоря:<em></em></p>
40
<p>Для того, чтобы материал по краям циферблата был непрозрачным, добавим в слой opacity чёрную маску и скопируем в неё информацию из слоя Roughness с помощью якоря:<em></em></p>
41
<p>С помощью levels в якоре инвертируем её и увеличиваем контрастность маски, чтобы уменьшить площадь загрязнения.<em></em></p>
41
<p>С помощью levels в якоре инвертируем её и увеличиваем контрастность маски, чтобы уменьшить площадь загрязнения.<em></em></p>
42
<p>Финальная маска слоя и канал Opacity выглядят так:<em></em></p>
42
<p>Финальная маска слоя и канал Opacity выглядят так:<em></em></p>
43
<p>Добавление текстуры в канал Opacity делает края непрозрачными</p>
43
<p>Добавление текстуры в канал Opacity делает края непрозрачными</p>
44
<p>Добавляя текстуру в канал Opacity делаем края непрозрачными.</p>
44
<p>Добавляя текстуру в канал Opacity делаем края непрозрачными.</p>
45
<p>Цвет непрозрачности задаём в нижнем слое, Glass BM:<em></em></p>
45
<p>Цвет непрозрачности задаём в нижнем слое, Glass BM:<em></em></p>
46
<p><strong>Height</strong></p>
46
<p><strong>Height</strong></p>
47
<p>В этом слое настроим Height по маске царапин, чтобы на блике они смотрелись объёмнее.<em></em></p>
47
<p>В этом слое настроим Height по маске царапин, чтобы на блике они смотрелись объёмнее.<em></em></p>
48
<p><strong></strong><strong>Экспорт</strong></p>
48
<p><strong></strong><strong>Экспорт</strong></p>
49
<p>Создадим новый шаблон, потому что у нас в модели нестандартный набор текстур. Стекло в Marmoset настраивается иначе, поэтому мне понадобятся не все каналы.</p>
49
<p>Создадим новый шаблон, потому что у нас в модели нестандартный набор текстур. Стекло в Marmoset настраивается иначе, поэтому мне понадобятся не все каналы.</p>
50
<p>В проекте оставим только Normal, Roughness и маску Opacity.<em></em></p>
50
<p>В проекте оставим только Normal, Roughness и маску Opacity.<em></em></p>
51
<p><strong></strong>Обратите внимание: используем альфу из канала, а не сам канал.</p>
51
<p><strong></strong>Обратите внимание: используем альфу из канала, а не сам канал.</p>
52
<p><strong></strong><strong></strong>Информация из альфа-канала идентична маске слоя, она понадобится в Marmoset для настройки материала. Но есть загвоздка: в Marmoset обратная логика маски прозрачности.<em></em></p>
52
<p><strong></strong><strong></strong>Информация из альфа-канала идентична маске слоя, она понадобится в Marmoset для настройки материала. Но есть загвоздка: в Marmoset обратная логика маски прозрачности.<em></em></p>
53
<p>Прозрачный пиксель - черный, непрозрачный - белый</p>
53
<p>Прозрачный пиксель - черный, непрозрачный - белый</p>
54
<p><strong></strong><strong></strong>Чтобы прозрачность в SP отображалась корректно, отключим на время этот эффект. Обратно его можно включить во время экспорта, чтобы в результате маска прозрачности была правильной.<em></em></p>
54
<p><strong></strong><strong></strong>Чтобы прозрачность в SP отображалась корректно, отключим на время этот эффект. Обратно его можно включить во время экспорта, чтобы в результате маска прозрачности была правильной.<em></em></p>
55
<p><strong></strong><strong>Marmoset</strong></p>
55
<p><strong></strong><strong>Marmoset</strong></p>
56
<p>В стандартном шейдере Marmoset прозрачность подключается в разделе Transparency.<em></em></p>
56
<p>В стандартном шейдере Marmoset прозрачность подключается в разделе Transparency.<em></em></p>
57
<p><strong></strong>На выбор есть несколько типов прозрачности. Ни один из них не работает так же, как в Substance Painter.</p>
57
<p><strong></strong>На выбор есть несколько типов прозрачности. Ни один из них не работает так же, как в Substance Painter.</p>
58
<p>Единственный способ добиться схожего результата - использовать два типа прозрачности - один поверх другого - на разных геометриях.</p>
58
<p>Единственный способ добиться схожего результата - использовать два типа прозрачности - один поверх другого - на разных геометриях.</p>
59
<p>Поэтому при экспорте модели в Marmoset создаём два стекла и смещаем их друг относительно друга, чтобы избежать пересечений геометрии.<em></em></p>
59
<p>Поэтому при экспорте модели в Marmoset создаём два стекла и смещаем их друг относительно друга, чтобы избежать пересечений геометрии.<em></em></p>
60
<p>В Marmoset создаём 2 материала для обоих стёкол</p>
60
<p>В Marmoset создаём 2 материала для обоих стёкол</p>
61
<p><strong></strong>Первый будет использовать тип прозрачности add, а второй - dither.<em></em></p>
61
<p><strong></strong>Первый будет использовать тип прозрачности add, а второй - dither.<em></em></p>
62
<p><strong>Add</strong></p>
62
<p><strong>Add</strong></p>
63
<p>Тип Add игнорирует канал цвета Albedo - он делает цвет полностью прозрачным. Отражения при этом рендерятся поверх задней геометрии.</p>
63
<p>Тип Add игнорирует канал цвета Albedo - он делает цвет полностью прозрачным. Отражения при этом рендерятся поверх задней геометрии.</p>
64
<p>В результате детализация в Roughness и в Normal будет видна на блике, но маску прозрачности использовать не получится. Параметр Alpha в настройках Transparency делает прозрачнее только отражения.<em></em></p>
64
<p>В результате детализация в Roughness и в Normal будет видна на блике, но маску прозрачности использовать не получится. Параметр Alpha в настройках Transparency делает прозрачнее только отражения.<em></em></p>
65
<p>В этом материале используем только карту нормалей и Roughness</p>
65
<p>В этом материале используем только карту нормалей и Roughness</p>
66
<p><strong>Dither</strong></p>
66
<p><strong>Dither</strong></p>
67
<p>Прозрачность Dither рендерит Roughness, Normal и Albedo. Для каждого из каналов степень прозрачности пикселя задаётся чёрно-белой маской. Для всех каналов она одинаковая.</p>
67
<p>Прозрачность Dither рендерит Roughness, Normal и Albedo. Для каждого из каналов степень прозрачности пикселя задаётся чёрно-белой маской. Для всех каналов она одинаковая.</p>
68
<p>Это значит, что если в Albedo пиксель прозрачный, то отражений тоже не будет видно.<em></em></p>
68
<p>Это значит, что если в Albedo пиксель прозрачный, то отражений тоже не будет видно.<em></em></p>
69
<p>В материале glass_dither используем текстуру Roughness и маску прозрачности</p>
69
<p>В материале glass_dither используем текстуру Roughness и маску прозрачности</p>
70
<p>Регулируем оттенок грязи цветом Albedo, так же, как в SP. Там мы делали это через слой, а здесь настроим цвет в самом материале.</p>
70
<p>Регулируем оттенок грязи цветом Albedo, так же, как в SP. Там мы делали это через слой, а здесь настроим цвет в самом материале.</p>
71
<p>Готово!</p>
71
<p>Готово!</p>
72
<p>Можно включить видимость всех слоёв и посмотреть, как они выглядят вместе:<em></em></p>
72
<p>Можно включить видимость всех слоёв и посмотреть, как они выглядят вместе:<em></em></p>
73
<p>Если хочешь научиться текстурированию на профессиональном уровне, бронируй место на<a>курс</a>по процедурным текстурам - он стартует 1 ноября.</p>
73
<p>Если хочешь научиться текстурированию на профессиональном уровне, бронируй место на<a>курс</a>по процедурным текстурам - он стартует 1 ноября.</p>
74
<p>Узнать все подробности и забронировать место можно на нашем сайте:<a>https://www.school-xyz.com/texture</a></p>
74
<p>Узнать все подробности и забронировать место можно на нашем сайте:<a>https://www.school-xyz.com/texture</a></p>
75
<p>Успехов!</p>
75
<p>Успехов!</p>
76
<p>Хочешь получать лучшие статьиот XyZ раз в неделю?</p>
76
<p>Хочешь получать лучшие статьиот XyZ раз в неделю?</p>
77
<p>Подпишись на рассылку XyZ</p>
77
<p>Подпишись на рассылку XyZ</p>
78
<p>Нажимая на кнопку, вы соглашаетесь с условиями обработки данных</p>
78
<p>Нажимая на кнопку, вы соглашаетесь с условиями обработки данных</p>
79
79