EN
Andrey Sokolov
Andrey Sokolov
730 subscribers
goals
21 of 500 paid subscribers
Когда я наберу 500 платных подписчиков, смогу больше времени уделять записи видео и разработке аддонов для Blender.
358.51 of $ 1 128 money raised
Донаты || Donates
37.35 of $ 564 money raised
Cделать аддон True Time Remapping бесплатным для всех желающих навсегда. Make True Time Remapping add-on free for everyone forever.
112.78 of $ 113 money raised
На дисковый накопитель 4Tb для хранения бэкапов курса «Blender Избушка».

Математика в 3Д ► 11. Brick, Magic, Gradient, White Noise

Я решил, что выносить остальные текстуры в
отдельные уроки не имеет смысла. Возможно я об этом пожалею, потому что это
упростило бы мне жизнь, но у нас тут не середина третьего сезона сиквела
спиноффа, чтобы намеренно растягивать хрон, поэтому обойдёмся без нелепых
мхатовских пауз и затянутых статичных планов со многозначительных лицами
героев. Математики в оставшихся текстурах немного, либо для понимания их работы она неважна, либо очевидна. По сравнению с предыдущими, эти текстуры не универсальны и служат либо для каких-то технических целей, либо для очень узких художественных.
🛈  Waves Texture по большому счёту стоило отнести сюда же, потому что, как мы убедились, она полностью воссоздаваема при помощи математики и векторного шума. Пусть она останется, в качестве примера того, как из подручных средств можно под определённую задачу собрать нечто осмысленное и подлежащее повторном использованию.
Буду очень благодарен всем, кто решит стать платными подписчиками или разово задонатить на означенные цели. Это сильно мотивирует на продолжение.
Как и в предыдущих уроках, используются текстурные координаты типа Object (в Geometry Nodes - Position). Слева направо показаны:
• Сдвиг вертексов относительно нормалей с помощью геометрических нодов
• Срез на плоскости
• 5 срезов, на небольшом расстоянии, наложенных друг на друга
• Трёхмерный волюметрик материал
Подробнее про то, как настроен проект, здесь.  
Brick Texture
Или, иными словами - кирпичи. Технически это прямоугольные ячейки с разными значениями яркости, с регулируемым размером, с регулируемой толщиной швов и возможностью нескольких вариантов сдвига рядов.
↑ Brick Texture с настройками по умолчанию
↑ Обратите внимание, Brick Texture - двухмерная текстура. В отличие от большинства других процедурно генерируемых шумов, у неё нет третьего и четвёртого измерения, она, как картинка, проецируется на плоскость, это видно, если развернуть её по оси Х на 90 градусов.
↑ Scale в Brick Texture предсказуемо регулирует общий размер паттерна
Mortar Size в Brick Texture отвечает за ширину швов, измеряется в метрах с поправкой на значение Scale. Ширина одинакова для всех кирпичей
↑ Mortar Smooth в Brick Texture изменяет уровень размытия, сглаживания швов, что может быть полезно, например, при использовании её в качестве карты высот для Bump или Displacement, предотвращая неестественные слишком острые переходы, или при наложении дополнительных масок с трещинами и неровностями по краям швов.
Bias в Brick Texture выступает в качестве фактора смешивания первого и второго цветов: на -1 используется только первый цвет, на 1 - только второй, на 0 - оба цвета рандомно распределяются между кирпичами.
Brick Width в Brick Texture - это длина кирпича, измеряется в метрах, с учётом параметра Scale
↑ Brick Height в Brick Texture - это высота кирпича, измеряется в метрах, с учётом параметра Scale
↑ Выход Color в Brick Texture - позволяет использовать расцветку кирпичей, определяемую тремя цветами: Color 1 и Color 2 - от какого до какого цвета изменяется расцветка самих кирпичей, Mortar - цвет швов. Использование цвета в качестве числовых значений при изменённых цветах никаких особых эффектов не даёт, используется только информация о яркости.
Offset в Brick Texture - определяет, насколько ряды сдвигаются относительно друг друга. Измеряется относительный сдвиг, не метры. 
↑ Frequency, которая идёт в паре с Offset в Brick Texture, определяет частоту, с которой происходит сдвиг. Например, если она выставлена на 4, то сдвигаться будет только каждый 4-й ряд.
↑ Squash 

в Brick Texture регулирует уровень сжатия ряда кирпичей - выступает в качестве множителя для параметра Brick Width
↑ Frequency, которая идёт в паре с Squash в Brick Texture, определяет частоту рядов, подлежащих сжатию. Например, при значении 3, сжиматься будет каждый 3-й ряд.
По Brick Texture это всё. С точки зрения практического применения, в чистом виде она может использоваться разве что в каких-то стилизованных материалах, где с художественной точки зрения оправданы идеально ровные кирпичи. В остальных случаях приходится придумывать, как добавить неровностей, и это может стать настолько нетривиальной задачей, что проще бывает просто скачать откуда-нибудь бесшовную фото-текстуру кирпичей нужной фактуры с сопутствующими картами нормалей, roughness и т.д. Поскольку и сама Brick Texture тоже двухмерная, с функциональной точки зрения, принципиального отличия не будет.
Checker Texture
Трёхмерная текстура по принципу шахматной доски.
↑ В Checker Texture минимум параметров - один цвет, второй цвет и размер кубов. Всё.
↑ В плане практического применения, помимо непосредственно основы для текстурирования шахматных досок (это почти сарказм), Checker Texture преимущественно используется в утилитарных, технических целях, чтобы посмотреть, как материал будет распространяться по объекту. Наиболее частое применение - при работе с UV-развёрткой: в качестве входящего вектора используются координаты UV, и можно править развёртку в UV-Editor и в реальном времени смотреть, как будут искажаться те или иные части текстур на поверхности объектов
Magic Texture
Трёхмерный шум. Слишком повторяющийся, чтобы быть универсальным, слишком странный, чтобы служить практической цели.
Magic Texture с настройками по умолчанию
↑ В Magic Texture параметр Scale отвечает за общий размер паттерна. 
↑ В Magic Texture параметр Depth, как я предполагаю, отвечает за количество фрактальных копий паттерна внутри самого себя, но это только предположение. В описании характеризуется, как уровень деталей в турбулентном шуме.
↑ В Magic Texture параметр Distortion отвечает за объём добавляемых искажений. На нулевой отметке генерируется однотонный серый цвет со значением яркости 0.5 по всем 3-м цветовым каналам.
↑ При добавлении Distortion, визуально паттерн всё больше и больше раз начинает повторять сам себя внутри каждой ячейки. Сами границы ячеек при этом не искажаются
↑ Из выхода Color можно использовать цветовую информацию. Ну, в смысле, как можно - никто вам не запретит, но если вы не делаете анимацию для документального фильма «Бханг-ласси в Варанаси», вряд ли это когда-либо вам понадобится.
Gradient Texture
Текстура с градиентами для тех, кто не проходит эти уроки и не знаком с математикой. Потому что все её режимы - это визуализация простейших математических действий.
Separate XYZ > X
Separate XYZ > X, Y -> (чтобы разделить оси)
Math Arctan2 -> (чтобы пустить по кругу ось Х)
Math > Add + pi -> (чтобы вывести значения в плюсовой диапазон)
Math > Divide / (2*pi) (чтобы привести значения к диапазону от 0 до 1)
pi в числовых параметрах Blender можно вбивать вместо числа, чтобы получить число Пи. pi*2 можно вбивать вместо числа, чтобы получить 2Пи.
Vector Math > Length ->
Math > Subtract с Clamp, подключается в нижний слот, верхнее значение 1.
Vector Math > Length ->
Math > Subtract с Clamp, также вычитается из 1 ->
Math > Power - возводим в квадрат, выставив нижнее значение на 2
↑ Separate XYZ > X, Y -> (чтобы разделить оси)
Math Add (чтобы сложить их значения друг с другом)  
↑ Separate XYZ > X -> 
Math Power - возводим в квадрат, выставив нижнее значение на 2.001 (при чётных степенях отрицательный диапазон перекидывается в положительный) 
↑ Ладно, ок, с Easing подловили. Это сочетание линейной и квадратной функции с мягким переходом, но какое именно в документации не пишут, а подобрать я сходу не смог. Полагаю, что сочетание возведения в степень, умножения и какой-нибудь Smooth Minimum, или вообще просто RGB Curves могут позволить настолько точнее регулировать огибающую градиента, что ради этого режима я вряд ли когда-либо вспомню о Gradient Texture. Разве что чтобы разобраться, какая за ним кроется математика, и забыть о его существовании уже навсегда.
White Noise
Просто шум - для каждого пикселя возвращает своё значение.
↑ Сам по себе используется для создания ёжиков. Шучу. Практически не используется. С его помощью иногда удобно размывать текстуры, используя его в качестве векторного шума, потому что опции Blur (размытие) в шейдерах нет и скорее всего не будет. Также его можно использовать на композитинге для подмешивания в малых объёмах к изображению "зерна", чтобы придать картинке киношности - но для этих целей лично я предпочитаю всё же использовать Noise Texture, чтобы иметь больше контроля над фактурой.
↑ В режиме 4D шум можно анимировать. Это я в Cycles быстро изменял параметр W и сделал скриншот, пока картинка не полностью успела просчитаться, чтобы было хоть какое-то отличие от предыдущей и последующей - поэтому зерно такое крупное.
↑ В режиме 1D входящий вектор не требуется, всё пространство заливается одним значением яркости, которое меняется под воздействием единственного параметра W. Это можно использовать в качестве стробоскопа, добавления мерцания или хаотичного изменения любого другого параметра в Блендер.
Если вам нравятся эти уроки, поблагодарите, пожалуйста, хотя бы мысленно, тех, кто забирает их к себе на стенки, рассказывает о них друзьям, знакомым, в сообществах, пабликах, чатах, коммьюнити. Этих людей пока очень мало, но именно благодаря их действиям вы сейчас можете видеть эти уроки.
Со своей стороны выражаю большую благодарность спонсорам. Ваша поддержка даёт мне силы продолжать.

Subscription levels

1-й уровень

$ 2,26 per month
1-й уровень

2-й уровень

$ 5,7 per month
2-й уровень

3-й уровень

$ 11,3 per month
3-й уровень

4-й уровень

$ 22,6 per month
4-й уровень

5-й уровень

$ 57 per month
5-й уровень

Максимальная поддержка

$ 113 per month
Максимальная поддержка
Go up