Процедурно генерируемые текстуры в Blender

Разбираемся с основами создания процедурных текстур в программе Blender.

Шейдер

Шейдер - это программа, используемая в 3D-графике, которая описывает взаимодействие освещения с поверхностью или объемом.

В программе трехмерного моделирования Blender, процедурные материалы создаются в "Редакторе шейдеров" (Shader editor), где используется система узлов(нод) для задания алгоритма отображения материала.


Ноды

Blender позволяет создавать материал путем пропускания базового материала, через систему узлов(нод), где каждая нода выполняет операцию над материалом изменяя его свойства. Таким образом можно создавать сложные и реалистичные материалы.

Ноды обладают набором сокетов на входе и выходе. Сокеты отмечены кружками на ноде. Слева сокеты которые принимают данные на вход, справа сокеты которые отдают преобразованные нодой данные.

Есть ноды, у которых отсутствуют сокеты входа или выхода, например нода "Вывод материала" (Material Output).

Эта нода является "завершающей", ее задача получить данные и применить материал к объекту. Она не занимается ни каким алгоритмом изменения материала. На входе ноды "Вывод материала" три сокета: Поверхность, Объем и Смещения. На вход любого сокета можно подать цепочку узлов.

Также в ноде "Вывод материала" присутствует выпадающий список, который позволяет выбрать рендер для отрисовки материала. По умолчанию установлено значение "Все", то есть Blender будет пытаться отрисовать материал на всех рендер-движках.

Программа Blender работает с тремя встроенными рендер-движками: Eevee, Workbench и Cycles.

В этом уроке мы будем работать с сокетами "Поверхность" и "Смещения" ноды "Вывод материала", а для отрисовки понадобиться выбрать рендер-движок Cycles.


Подготовка сцены

На сцене нужно разместить любой меш объект, например Куб(Cube) или UV-Сферу(UV Sphere). Добавить в рабочее пространство Blender окно редактор шейдеров.

При выделении объекта на сцене в объектном режиме вы должны увидеть в редакторе шейдеров две ноды: Принципиальный BSDF и Вывод материала. Выход принципиального BSDF, сокет BSDF будет соединен с входом Поверхность ноды вывод материала.

Если у вас этих нод нет, то кликнете кнопку "Создать" в заголовке окна редактора шейдеров.

Теперь в заголовке окна редактора шейдеров можно задать имя для вашего материала.


Принципиальный BSDF

Принципиальный BSDF - композитный шейдер, который объединяет настройки нескольких шейдеров в одной ноде.

Просмотрим настройки, которыми оперирует Принципиальный BSDF:

Базовый цвет(Base color) - определяет цвет поверхности.

Подповерхностное Рассеивание(Subsurface) - параметр определяет на сколько свет проникает в объект.

Радиус подповерхностного рассеивания(Subsurface Radius) - расстояние на которое свет рассеивается под поверхностью.

Металличность(Metallic) - создание металлического эффекта.

Блик(Specular) - позволяет настроить отражение поверхности объекта.

Цветной блик(Specular Tint) - использует основной цвет для окрашивания блика.

Шероховатость(Roughness) - эффект шероховатости.

Анизотропность(Anisotropic) - кольцевой блик на металлических поверхностях.

Поворот анизотропии(Anisotropic Rotation) - поворот кольцевого блика.

Блеск ткани(Sheen) - эффект "бархата", позволяет придавать поверхности имитацию ткани.

Оттенок блеска ткани(Sheen Tint) - окрашивает блеск ткани, смешивая белый цвет с базовым цветом.

Лак(Clearcoat) - придает поверхности эффект лакировки., при помощи дополнительного белого зеркального слоя над поверхностью.

Шероховатость лака(Clearcoat Roughness) - добавляет эффект шероховатости к настройке лак.

Показатель преломления(IOR) - индекс преломления цвета, дополняет материалы с прозрачностью, таких как стекло и вода. Контролирует проходимость света через поверхность материала.

Показатель преломления(Transmission) - при 1 поверхность станет полностью прозрачной,

Излучение(Emission) - назначает цвет излучения света от материала.

Интенсивность свечения(Emission Strength) - настройка отвечает за силу излучаемого света выбранного в настройки "Излучение"

Альфа(Alpha) - прозрачность поверхности. При 1.0 материал становиться полностью не прозрачным.


Упражнение №1. Смешение материалов

Добавим на сцену шейдеров "Диффузный BSDF". Диффузный BSDF - это алгоритм при котором появляется вероятность того, что свет отразится от поверхности или пройдёт через поверхность.

В программе Blender, для добавления объекта пользуйтесь клавиатурным сочетание Shift+A.

Посмотрите на параметры ноды "Диффузный BSDF". Измените цвет и шероховатость.

Добавьте на сцену шейдеров еще один "Диффузный BSDF" и "Микс-шейдер". Микс-шейдер позволяет объединять два шейдера.

Задайте разные цвета в нодах "Диффузный BSDF" и измените значение параметра коэффициент в ноде "Микс-шейдер". Коэффициент позволяет смешивать шейдеры с преобладанием одного из двух.


Упражнение №2

Теперь к прошлому упражнению добавим "Градиентная карта" и "Текстура шума".


Упражнение №4. Плитка/Кирпич

Задача: Получить текстуру плитки, кирпича.

В редакторе шейдеров добавляем Текстура плитки (Brick Texture)

Вывод Цвет Текстуры плитки соединяем с Основной цвет Принципиальный BSDF.

Параметры Текстуры плитки:

Смещение – позволяет сдвигать ряды относительно друг друга. Повторение сдвигаемого ряда определяется в параметре Частота.

Толчок (Squash) - «Выталкивает» ряд плиток, а Частота определяет, так же как и в смещении, повторение изменяемого ряда.

Задание: Измените настройки так, чтобы получить оригинальную текстуру. Измените не только цвета, но и «поиграйтесь» с параметрами высота, ширина, масштаб.

Добавим еще две ноды. Отображение (Mapping) и Текстурные координаты (Texture Coordinate).

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

Соединив Отображение выход Вектор с входом Вектор Текстуры Плитки а выход Текстурные координаты Объект с входом Отображение Вектор.

Теперь у нас есть возможность изменять параметры положения текстуры с помощью ноды отображение.

Задача: изменить параметры и получить интересный результат.

Использование параметров Цвет1, Цвет2, Цемент. Нужно подать на вход этих параметров, более сложные текстуры, что бы добиться реалистичности кирпичной стены.


Упражнение №5. Вода

1. Добавляем на сцену Плоскость.

2. Создаем материал в.

3. Нам понадобятся следующие ноды: Bump, Musgrave Texture, Mapping, Texture Coordinate.

3. Выход Bump "Normal" соединяем с выходом Принципиальный BSDF "Normal".

4. Выход Musgrave Texture "Height" соединяем с выходом Bump "Height".

5. Выход Mapping "Vector" соединяем с выходом Musgrave Texture "Vector".

6. Выход Texture Coordinate "Generated" соединяем с выходом Mapping "Vector".

7. Чтобы добиться такого результата, можно поиграться со значениями.

Автор: студент 4 курса Матвеева Валерия.


Упражнение №6. Светлый камень

Добавим на сцену две ноды «Диффузный BSDF» и "Микс-шейдер".

Соединяем первый "Диффузный BSDF" с «Градиентной картой» (соединить вход цвет с выходом цвет). Затем добавляем «Текстуру шума», которую соединяем с "градиентной картой".

Автор: студент 4 курса Гордейчук Валентина.


Упражнение №7 Темный камень - Автор студен 4 курса Черницов Алексей

1. Добавить на сцену Сферу

2. Создаём материал в Редакторе шейдеров.

3. Перед тем как добавлять ноды необходимо переключиться на движок-рендера Cycles. Удаляем нод Принципиальный BSDF и добавляем ноду BSDF бархата.

4. Далее добавляем ноды Градиентная карта и Карта неровностей. Выход Цвет ноды Градиентная карта соединяем с входом Цвет ноды BSDF бархата, а сокет выхода Нормаль из ноды Карта неровностей с сокетом входа Нормаль ноды BSDF бархата.

5. Для создание неоднородной поверхности добавляем ноду Текстура шума. Выход Цвет Текстуры шума соединяем с входом Высота ноды Карта неровностей.

6.

6. Итог


7112