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

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

 
(не показаны 3 промежуточные версии этого же участника)
;{{SpeakerInfo}}: {{Speaker|}}|Александр Захаров}}
<blockquote>
* Бесплатный плагин Sverchok для Blender 3D использует визуальное программирование и язык Python для получения параметрических объектов, выполняет графические расчёты и обмен данными через файлы. 
* Пример создания визуального пользовательского блока Cuboid на Python. 
* Пример интеграции модуля на C++. 
* Многие примеры сопровождаются ссылкой на исходники.
</blockquote>
Плагин Sverchok для Blender  визуальное параметрическое программирование и интеграция программных библиотек (, OSSDEVCONF-2025)

{{VideoSection}}

{{vimeoembed|1159717308|800|450}}
{{youtubelink|}}
|OCdgDPiqu9U}}
{{SlidesSection}}
[[File:Плагин Sverchok для Blender — визуальное параметрическое программирование и интеграция программных библиотек (OSSDEVCONF-2025).pdf|left|page=-|300px]]

{{----}}

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

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

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

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

Множество примеров можно увидеть по поиску в Google Images по запросу «Sverchok Examples». Одна из них на Рис. 1. Дополнительные цветные иллюстрации к тезисам по ссылке[https://disk.yandex.ru/d/0Jv-NQjKy400EA?w=1 ссылке].

[[File:2025-zakharov-img001.png|center|640px|thumb|Графические полигональные объекты.]]

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

[[File:2025-zakharov-img002.png|center|640px|thumb|Стол, электрический светильник.]]

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

Текущая версия на 16:40, 29 января 2026

Докладчик
Александр Захаров.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

Примечания и ссылки[править вики-текст]