Blender — пользовательские инструменты на базе Geometry Nodes

Привет, Земляне. На днях я пощупал бета версию Blender (4.0.0 Beta), и что меня в нем заинтересовало? Разработчики добавили возможность создавать собственные операторы на базе Geometry Nodes, которые могут быть применены к мешу или кривым в режиме редактирования, до этого создавать операторы можно было при помощи Python, для чего необходимо иметь навыки программирования, но и свободы это дает гораздо больше. В целом это работает также как и модификатор, только теперь мы можем применять его в режиме редактирования и скульптинга, в этом контексте нам доступна информация о выбранной геометрии, о положении 3D курсора и т.д., отличие от модификатора заключается в том, что операции применяется к геометрии сразу, а не занимают место в стеке модификаторов.

Для того, чтобы опробовать новую фичу, нужно установить себе Blender 4.0.0, на момент написания статьи доступна бета версия, скачать его можно здесь. Чтобы создать собственный оператор (здесь он называется Tool), то в редакторе Geometry Node Editor в поле Geometry Node Type нужно выбрать пункт Tool.

Теперь GeoNodes радботают в 2х режимах

Теперь GeoNodes радботают в 2х режимах

На данный момент операторы работают со следующими типами геометрии: Mesh, Curves; в режимах: Edit и Sculpt. Отметьте нужные пункты, где и для чего будет применяться разрабатываемый оператор.

0c5360d312ac39f15365750f19655f8b.jpg

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

Исходный файл можно скачать, ссылка в конце статьи

Исходный файл можно скачать, ссылка в конце статьи

Данный алгоритм делает следующее: выделенную геометрию смещает на заданное значение (Offset) вдоль нормали и выполняет ee экструдирование (в размере значения Extrude), при условии, что значение Extrude больше нуля.

Алгоритм разделен на следующие блоки:

  1. Удаление невыделенных участков геометрии;

  2. Позиционирование элементов геометрии вдоль нормали на заданную величину;

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

Чтобы использовать собственные операторы, нужно пометить дерево нодов как ассет, для этого нужно нажать на имя инструмента правой кнопкой мыши и выбрать Mark as Asset, затем перейти в Asset Browser, создать желаемую структуру каталогов и поместить дерево нодов туда. Я сделал так

92f7ed62e20c41cf955cc4d9255fd890.jpg

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

Новые инструменты доступны в дополнительном пункте меню

Новые инструменты доступны в дополнительном пункте меню

После применения появится панель, где следует ввести значения параметров, которые перечислены в ноде Group Input.

Установите параметры выбранного оператора

Установите параметры выбранного оператора

Какие особенности работы в данном режиме?

Для создания операторов доступен почти весь функционал Geometry Nodes за исключением зоны симуляции (Simulation Zone) и вьювера (Viewer). Кроме этого, в данном контексте есть дополнительные ноды:

  • 3D Cursor — положение и вращение курсора

  • Face Set — (не документировано)

  • Selection — информации о том, какие элементы геометрии выбраны в режиме Edit Mode

  • Set Face Set — (не документировано)

  • Set Selection — установить выбранную геометрию.

Вместо заключения

Добавление системы Geometry Nodes было большим шагом в сторону процедурного моделирования и анимации без программирования, а добавление нового режима было вполне логичным продолжением. Благодаря новой функции можно будет самостоятельно расширить перечень инструментов для полигонального моделирования и моделирования волос, создав их самостоятельно или третьими лицами, для этого не нужно обладать навыками писать код, но навык работать с алгоритмами все же необходим. Единственное неудобство состоит в том, что трудно отлаживать древо нодов без наличия вьювера, но можно сначала разработать его в режиме Modifier, а затем перенести в режим Tool.

© Habrahabr.ru