Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (Александр Захаров, OSSDEVCONF-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (→Задачи, которые может решать Sverchok) |
StasFomin (обсуждение | вклад) |
||
;{{SpeakerInfo}}: {{Speaker|Александр Захаров}}
<blockquote>
* Бесплатный плагин Sverchok для Blender 3D использует визуальное программирование и язык Python для получения параметрических объектов, выполняет графические расчёты и обмен данными через файлы.
* Пример создания визуального пользовательского блока Cuboid на Python.
* Пример интеграции модуля на C++.
* Многие примеры сопровождаются ссылкой на исходники.
</blockquote>
{{VideoSection}}
{{vimeoembed||800|450}}
{{youtubelink|}}
|OCdgDPiqu9U}}
{{SlidesSection}}
[[File:Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf|left|page=-|300px]]
{{----}}
== Thesis == | |||
Версия 14:20, 29 января 2026
- Докладчик
- Александр Захаров
- Бесплатный плагин Sverchok для Blender 3D использует визуальное программирование и язык Python для получения параметрических объектов, выполняет графические расчёты и обмен данными через файлы.
- Пример создания визуального пользовательского блока Cuboid на Python.
- Пример интеграции модуля на C++.
- Многие примеры сопровождаются ссылкой на исходники.
Содержание
Видео
Презентация
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:
- Загрузка Bezier Curves из сцены.
- Соединения этих кривых в поверхность.
- Вывод результата в виде полигональной сетки с помощью нода OpenGL (Меню Viz\Viewer Draw).
Пример на Рис. 3 и по ссылке.
Основа нодной системы Sverchok
Ноды — это прямоугольные графические объекты, которые с помощью линий соединяются между собой и передают друг другу данные по этим соединениям в виде массивов или списков (см. Рис. 4).
Описание нода:
- Входные параметры.
- Выходные параметры.
- Управляющие параметры.
- Линии соединения параметров между нодами.
Пример нового нода Cuboid (Python)
В этом примере создаётся нод с названием Cuboid (параллелепипед) с параметрами Длина X, Ширина Y, Высота Z и параметр origin центральной точки, относительно которой будет построен этот параллелепипед (см. Рис. 5, 6). Пример кода и описание по ссылке.
Пример интеграции с библиотекой C++
В 3D-графике существует графический алгоритм — Straight Skeleton 2D, который вычисляет отступы от контура в 2D-плоскости (см. Рис. 7).
Алгоритм вычисляется в плоскости 2D, но результат его работы можно превратить в объёмные фигуры, которые могут быть выполнены в виде, например, ювелирных изделий, использоваться в параметрической архитектуре, в game-дизайне, в дизайне текста (этот алгоритм упрощает стилизацию):
- Ювелирное украшение см. Рис. 8.
- Полигональный объект с постобработкой модификаторами Blender см. Рис. 9.
- Стилизованный шрифт см. Рис. 10, 11.
Важной особенностью работы алгоритма является удобная топология результата для UV-mapping:
Задача расчёта offsets по алгоритму Straight Skeleton 2D решена в библиотеке CGAL и для Sverchok написана библиотека SVCGAL. Однако написать данную библиотеку было бы очень трудно без плагина в Visual Studio ImageComments2022. С его помощью можно вставлять изображения, которые видны непосредственно в комментариях исходного кода, таким образом плагин значительно упрощает поддержку кода, а файлы изображений могут быть сохранены в репозитории исходного кода, см. Рис. 12.
Затем библиотеку требуется преобразовать в модуль для PyPi, pySVCGAL, зарегистрировать пакет в Sverchok для отображения в меню настроек в разделе «Extra Nodes». Как и в случае с нодом Cuboid, требуется добавить класс этого нода в файл меню index.yaml для регистрации в меню нодов.
Дополнительно
- Возможна разработка плагинов для самого Sverchok, чтобы вынести ноды, работающие в определённой предметной области, в отдельный плагин. Например: Sverchok-Extra и Sverchok-Open3D и другие.
- Blender и Sverchok работают в системе ALT Linux.
Заключение
Благодаря Blender 3D и плагину Sverchok вы можете создавать новые пользовательские ноды и интегрировать их между собой для решения различных графических и аналитических задач с меньшими усилиями. Создание пользовательских нодов сочетает в себе удобство визуального программирования и программирования на языках Python и C++ и поэтому полезен как инженерам, так и дизайнерам.
Blender 3D может выполнять роль системы визуализации и постобработки, улучшая интерпретацию и визуальное восприятие результатов работы Sverchok.
