Как получить координаты точек рендера в композитинге

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

Получить фактор распределения координат по высоте или ширине рендера можно с помощью текстурных нод.

Читать далее «Как получить координаты точек рендера в композитинге»

Как вывести все имеющиеся ноды

Получить все доступные шейдерные ноды в виде списка можно по их типу.

Для начала, добавим в сцену любой объект, например – куб, создадим для него материал и удалим из него все ноды. Сюда, в этот материал, мы выведем все имеющиеся в Blender ноды шейдеров.

Читать далее «Как вывести все имеющиеся ноды»

Режимы прозрачности EEVEE Blend Mode – Multiply и Additive

В Blender 2.83 среди возможных режимов наложения прозрачности в рендер-движке EEVEE отсутствуют режимы “Additive” и “Multiply”, которые присутствовали в Blender 2.80.

При необходимости использования этих режимов наложения прозрачности в Blender 2.83, их можно воссоздать при помощи нодов.

Читать далее «Режимы прозрачности EEVEE Blend Mode – Multiply и Additive»

Аддон Blender: NodeTree Source

Аддон Blender для конвертации нодов материалов в исходный код на python и сохранения его в библиотеке.

Gumroad

Читать далее «Аддон Blender: NodeTree Source»

Как сделать соединения нодов в Blender 2.8 не прямыми, а изгибающимися, как раньше

В Blender 2.8 соединители нодов в окне “Shader Editor” по умолчанию сделаны прямыми, в отличие от более ранних версий, где они плавно изгибались. Вернуть привычный изгиб соединительных связей можно в настройках:

  • Откройте окно “Preferences”
  • Перейдите в раздел “Themes”
  • Разверните ветку дерева “Node Editor”
  • В поле “Node Curving” установите значение больше 0. 0 означает прямые линии, чем больше значение – тем больше будет изгиб. Значение 4 соответствует тому изгибу, который был в версиях Blender 2.7x.

Как расположить текстуру на объектах случайным образом

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

Читать далее «Как расположить текстуру на объектах случайным образом»

Random Per Island

В Blender 2.82 появилась возможность использовать в шейдерах случайный индекс отдельных островов развертки (UV Island). Случайный индекс островов можно получить из нода Geometry.

Только для рендер-движка cycles.

Базовая схема PBR-материала

Базовая схема построения PBR (физически корректного) шейдера на нодах в Blender выглядит следующим образом:

Обратите внимание, все ImageTexture ноды, кроме ноды для базового цвета (Base Color), используют NonColor цветовое пространство.

Создание компьютерной платы нодами

Стрим от Simon Thommes по созданию печатной платы шейдерными нодами в nodevermber челлендже.

 

 

Нодвембер

“Нодвембер” (Nodevember) – месячный челлендж, в ходе которого участникам предлагается каждый день создавать один процедурный объект для Blender. Это может быть материал, шейдер, объект,  все, что угодно, лишь бы оно было процедурным. “Все, что состоит из нодов, все это – нодвембер”.

Сайт-визитка: nodevember.io

Читать далее «Нодвембер»

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

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

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

Читать далее «Преобразование индекса IOR в индекс Specular отражений»

Shadow catcher в EEVEE

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

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

Читать далее «Shadow catcher в EEVEE»

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

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

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

shift+a – Mesh – UVSphere

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

Читать далее «Освещение текстурой из лампы»

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

Одиночный процедурный элемент из библиотеки 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 2.8»

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

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

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

Автор кода: Skarn

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

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

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

Автор кода: Skarn

Читать далее «Класс для создания нодов по их типу»

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

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

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

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

Читать далее «Пикселизирование текстуры»

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

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

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

BIS – тайлинг процедурной текстуры с рандомным поворотом по оси Z

Пример процедурного тайлинга процедурной текстуры с рандомным поворотом относительно оси Z.

 

 

Все ноды доступны в библиотеке материалов BIS для Blender.

Тайлинг процедурных текстур в Blender

Процесс создания отдельных элементов процедурных текстур в Blender достаточно прост – подбираем нужную формулу, воплощаем ее с помощью математических нодов, и в результате получаем нужный рисунок. Однако созданная подобным образом текстура обладает одним свойством – она не тайлится. И хотя тайлинг – циклическое повторение участка или целой текстуры, по большей части считается вредным, и хорошим тоном в 3D считается не допускать текстурного тайлинга, иногда, например при создании узоров или орнаментов, он бывает необходим.

В отличие от изображений, загружаемых из графических файлов, процедурный рисунок всегда создается в единственном экземпляре. Так происходит потому, что вся математика, образующая собственно процедурное изображение, завязана на исходных данных – координатах, которые начинаются от 0, распространяются до бесконечности и не повторяются. Однако с помощью все той же математики мы сможем решить и эту задачу.

Читать далее «Тайлинг процедурных текстур в Blender»