Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (Александр Захаров, OSSDEVCONF-2025)

Материал из 0x1.tv

Версия от 16:40, 29 января 2026; StasFomin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Докладчик
Александр Захаров.jpg
Александр Захаров
  • Бесплатный плагин Sverchok для Blender 3D использует визуальное программирование и язык Python для получения параметрических объектов, выполняет графические расчёты и обмен данными через файлы.
  • Пример создания визуального пользовательского блока Cuboid на Python.
  • Пример интеграции модуля на C++.
  • Многие примеры сопровождаются ссылкой на исходники.

Видео

on youtube

Презентация

Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf

Thesis

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

Визуальное программирование, Blender и Sverchok

В расчётах разной степени сложности, в том числе и научных, наибольшую популярность занимают языки программирования C++ и Python. В случае с библиотеками C++, Python выступает как способ интеграции библиотек. Интеграцию библиотек можно упростить с помощью визуального программирования, применяя плагин Sverchok в Blender 3D. Sverchok можно дополнить пользовательскими нодами с помощью Python, с возможностью интеграции библиотек, написанных на C++. При создании пользовательских нодов можно можно использовать существующие ноды в качестве шаблонов.

Задачи, которые может решать Sverchok

Множество примеров можно увидеть по поиску в Google Images по запросу «Sverchok Examples». Одна из них на Рис. 1. Дополнительные цветные иллюстрации к тезисам по ссылке.

Графические полигональные объекты.

С помощью Sverchok можно создавать реальные параметрические объекты (Рис. 2):

Стол, электрический светильник.

Пример создания формы из кривых Bezier Curve

Для получения произвольной формы Sverchok позволяет использовать исходные объекты из сцены Blender:

  1. Загрузка Bezier Curves из сцены.
  2. Соединения этих кривых в поверхность.
  3. Вывод результата в виде полигональной сетки с помощью нода OpenGL (Меню Viz\Viewer Draw).

Пример на Рис. 3 и по ссылке.

Создание поверхности последовательным соединением Bezier Curve.

Основа нодной системы Sverchok

Ноды — это прямоугольные графические объекты, которые с помощью линий соединяются между собой и передают друг другу данные по этим соединениям в виде массивов или списков (см. Рис. 4).

Описание нода:

  1. Входные параметры.
  2. Выходные параметры.
  3. Управляющие параметры.
  4. Линии соединения параметров между нодами.
Структура нодов.

Пример нового нода Cuboid (Python)

В этом примере создаётся нод с названием Cuboid (параллелепипед) с параметрами Длина X, Ширина Y, Высота Z и параметр origin центральной точки, относительно которой будет построен этот параллелепипед (см. Рис. 5, 6). Пример кода и описание по ссылке.

Описание параметров нода Cuboid (параллелепипед).
Пример применения Cuboid.

Пример интеграции с библиотекой C++

В 3D-графике существует графический алгоритм — Straight Skeleton 2D, который вычисляет отступы от контура в 2D-плоскости (см. Рис. 7).

Straight Skeleton 2D.

Алгоритм вычисляется в плоскости 2D, но результат его работы можно превратить в объёмные фигуры, которые могут быть выполнены в виде, например, ювелирных изделий, использоваться в параметрической архитектуре, в game-дизайне, в дизайне текста (этот алгоритм упрощает стилизацию):

  1. Ювелирное украшение см. Рис. 8.
  2. Полигональный объект с постобработкой модификаторами Blender см. Рис. 9.
  3. Стилизованный шрифт см. Рис. 10, 11.
Пример ювелирного украшения.
Постобработка в Blender.
Стилизованный шрифт.

Важной особенностью работы алгоритма является удобная топология результата для UV-mapping:

Прямоугольная топология результата Straight Skeleton 2D Offset для UV-mapping.

Задача расчёта offsets по алгоритму Straight Skeleton 2D решена в библиотеке CGAL и для Sverchok написана библиотека SVCGAL. Однако написать данную библиотеку было бы очень трудно без плагина в Visual Studio ImageComments2022. С его помощью можно вставлять изображения, которые видны непосредственно в комментариях исходного кода, таким образом плагин значительно упрощает поддержку кода, а файлы изображений могут быть сохранены в репозитории исходного кода, см. Рис. 12.

Пример изображений в комментариях.

Затем библиотеку требуется преобразовать в модуль для PyPi, pySVCGAL, зарегистрировать пакет в Sverchok для отображения в меню настроек в разделе «Extra Nodes». Как и в случае с нодом Cuboid, требуется добавить класс этого нода в файл меню index.yaml для регистрации в меню нодов.

Дополнительно

  1. Возможна разработка плагинов для самого Sverchok, чтобы вынести ноды, работающие в определённой предметной области, в отдельный плагин. Например: Sverchok-Extra и Sverchok-Open3D и другие.
  2. Blender и Sverchok работают в системе ALT Linux.

Заключение

Благодаря Blender 3D и плагину Sverchok вы можете создавать новые пользовательские ноды и интегрировать их между собой для решения различных графических и аналитических задач с меньшими усилиями. Создание пользовательских нодов сочетает в себе удобство визуального программирования и программирования на языках Python и C++ и поэтому полезен как инженерам, так и дизайнерам.

Blender 3D может выполнять роль системы визуализации и постобработки, улучшая интерпретацию и визуальное восприятие результатов работы Sverchok.


Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025)!.jpg

Примечания и ссылки