Nodes

Преобразование индекса IOR в индекс Specular отражений

В официальной документации Blender приводится способ получения величины Specular, если известна величина IOR для отражений PBR-материалов. Для того чтобы получить значение Specular из значения IOR нужно воспользоваться формулой:

Эту формулу не сложно создать через ноды:

Shadow catcher в EEVEE

В рендер-движке Cycles есть удобная возможность отрендерить объект с тенью на прозрачном фоне с помощью материала с функцией рендера только падающих на него теней “shadow catcher”. В рендер-движке EEVEE такой функции у материалов нет. Однако в EEVEE можно собрать свой “shadow catcher” на основе нодов.

Готовый материал “EEVEE Shadow Catcher” можно скачать в библиотеке BIS.

Освещение текстурой из лампы

В Blender Cycles при использовании стандартных источников освещения типа Light можно освещать объекты, используя любую текстуру, а не только отдельный цвет.

Добавим в сцену любой объект, например сферу:

shift+a – Mesh – UVSphere

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

Как превратить одиночный элемент BIS в паттерн

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

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

Процедурные градиенты

Градиент, помимо ноды “Gradient Texture”, можно получить с помощью достаточно простых формул. Рассмотрим математику на примере сферического градиента.

  1. Равномерный градиент

Создается на основе формулы конуса, направленного вершиной вниз.

Нодовый дисплейс в Blender 2.8

В Blender 2.8 нодовый дисплейс в рендер-движке Cycles был изменен со скалярного на векторный. Если просто подсоединить черно-белую карту высот на вход Displace нода MaterialOutput, как это делалось в Blender 2.7, она не даст нужного результата.

Для того, чтобы нодовый дисплейс в Blender 2.8 рассчитывался корректно, нужно преобразовать карту высот в вектор с помощью двух нод: CombineXYZ и VectorDisplacement. Карту высот нужно подключить на вход Y нода CombineXYZ, а его выход Vector соединить со входом Vector нода VectorDisplacement. После чего соединить выход Displacement нода VectorDisplacement со входом Displacement нода MaterialOutput.

Декоратор для отложенного обновления нодового дерева

Если в панелях интерфейса аддона присутствует поле, значение которого меняет что-то в нодовом дереве, при изменении значения в этом поле нодовое дерево каждый раз перекомпилируется. Если пользователь меняет значение в таком поле зажав и двигая мышкой, слишком частая перекомпиляция нодового дерева приведет к заметным подвисаниям Blender.

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

Автор кода: Skarn

Класс для создания нодов по их типу

Класс для удобного создания нодов по их типу.

Автор кода: Skarn

Пикселизирование текстуры

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

Возьмем для примера простую процедурную текстуру градиента от красного цвета через зеленый к синему.

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

Как добавить нодовой группе вход целочисленного типа Int

Для того чтобы добавить в группу нодов целочисленный вход/выход (Int) нужно:

  1. Установить аддон BIS версии не ниже 1.5.2.
  2. Выделить нужную нодовую группу в окне Node Editor,
  3. В T-панели во вкладке “BIS” в разделе “Tools” нажать “+ Input” для создания входного узла или “+ Output” для создания выходного узла.