Addon для генерации материалов Cycles Blender

в 10:06, , рубрики: blender, python, shaders, Анимация и 3D графика, материалы, шейдеры, метки: , , , ,

Добрый день, уважаемые читатели. Некоторое время я сделала плагин «Shader Generator» – аддон, реализующий идею параметрического генерирования и редактирования шейдеров (материалов) встроенного рендера Cycles.

Addon для генерации материалов Cycles Blender

Зачем оно нужно

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

Addon для генерации материалов Cycles Blender

Как оно устроено

Принцип работы аддона заключается в импорте в рабочую сцену дерева всех необходимых для генерации шейдера узлов, объединенных в универсальную группу (Node Group). Дальнейшее редактирование происходит посредством традиционных элементов управления в панели свойств материала. Преимущества такого подхода заключаются в интуитивности способа для пользователя не имевшего опыта работы с узловой архитектурой шейдеров Cycles. Отличительной особенностью аддона является оригинальная система сохранения пользовательских пресетов материалов на жесткий диск, посредством JSON.

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

Как оно работает

  • Помещаем плагин в папку Addons
  • Ставим галку в UserPreferences
  • Выбираем BlenderRender/Cycles
  • Выбираем объект
  • Переходим во вкладку Materials
  • Жмем GenerateShader
  • Готово!

Addon для генерации материалов Cycles Blender

Предустановлены 5 категорий материалов: металл, стекло, полупрозрачный, камень, снег

Немного скриншотов интерфейса

Addon для генерации материалов Cycles Blender

Полученные материалы

Здесь, следует отметить, что я далеко не моделлер и как настроить рендер Cycles наилучшим образом я ПОКА не знаю.

Addon для генерации материалов Cycles Blender

Addon для генерации материалов Cycles Blender

Addon для генерации материалов Cycles Blender

Python

Структура аддона типична для Blender'a.
Есть несколько классов, реализующих операторы, вызываемые пользователем из графического интерфейса. Наследуют эти классы от bpy.types.Operator и имеют типичную структуру из свойств-описаний оператора и чаще всего одного метода execute, исполняющего заложенный функционал. В нескольких операторах так же объявлен метод invoke, вызываемый перед execute и позволяющий пользователю задать настройки оператора перед исполнением.
Графическая часть аддона реализуется с помощью класса MatGenPanel, наследующего от bpy.types.Panel. Как и в случае с операторами, вначале объявлены свойства с описанием панели для внутренних механизмов Блендера. Затем следует метод проверки контекста poll, позволяющий ограничить видимость панели при соблюдении определенных условиях. В нашем случае таким условием является режим рендеринга в Cycles.
Метод draw производит отрисовку элементов графического интерфейса.
Наконец, глобальные функции register и unregister добавляют все объявленные классы во внутренне пространство Блендера посредством вспомогательных методов API.

Спасибо, что дочитали до конца, надеюсь, данная статья не была смертельно скучной. Возможно, что кому-нибудь данный материал может принести практическую пользу.

Аддон можно скачать по ссылке: www.dropbox.com/s/96d6iod25yhmhg5/matgen_last.7z

Автор: neverver

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js