Массивы на Blender Geometry Nodes

В Blender Geometry Nodes мы можем создавать одно, двух и трехмерные массивы объектов, точно так же, как мы создавали их раньше при помощи модификатора Array. И даже лучше, массивы, создаваемые на Geometry Nodes не множат геометрию, что влияет на скорость работы вьюпорта, расход памяти и размер сцены.

Добавим в сцену “Сюзанну” (shift + a – Mesh – Monkey), назначим ей модификатор Geometry Nodes и инициализируем начальное дерево нод, нажатием на кнопку “New”.

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

Для того чтобы создать простой одномерный массив, нам нужно всего два нода: Grid и Instance on Points.

Добавим нод Instance on Points (shift + a – Instances – Instance on Points) в главную ветку нодового дерева. Переставим линк геометрии со входа “Points” на вход “Instances” чтобы исходная геометрия использовалась в качестве инстансов, располагаемых в нужных точках сцены.

Добавим нод Grid (shift  + a – Mesh Primitives – Grid). Соединим его выход “Mesh” со входом “Points” нода Instance on Points.

Значение в поле Vertices X поставим равное 1.

Таким образом мы создали простейший одномерный массив.

При помощи нода Grid мы создаем нужное количество точек в ряд, а при помощи нода Instance on Points мы размещаем в каждой точке инстанс исходной геометрии меша.

Расстояние между элементами массива можно регулировать изменяя значение в поле “Size X” нода Grid. А количество элементов – изменяя значение поля “Vertices X” этого же нода.

 Двумерный массив

Для того чтобы создать двумерный массив, достаточно указать в поле “Vertices Y” нода Grid число, больше чем 1. Через него мы можем регулировать количество строк массива.

Расстояние между строками мы можем регулировать изменяя значение “Size Y” в ноде Grid.

Трехмерный массив

К сожалению, в ноде Grid нет возможности создавать точки по третьему измерению Z. Однако создать трехмерный массив все же возможно.

Мы можем воспользоваться хитростью программистов, которые, если нет возможности сразу создать многомерный массив, создают “массив массивов”. То есть создают массив, каждый элемент которого является в свою очередь массивом элементов.

Возьмем одномерный массив, который мы сделали в самом начале. И соединим его с нашим двумерным массивом. Соединим выход “Instances” одномерного массива со входом “Instances” двумерного.

Теперь каждым элементом двумерного массива является одномерный массив.

Однако, направление расположения элементов обоих массивов по оси X совпадают. Развернем элементы одномерного массива по вертикали, указав в поле “Rotation – X” нода Instance on Points двумерного массива значение равное 90 градусам.

Чтобы скомпенсировать поворот самих элементов, в том же поле такого же нода у одномерного массива укажем значение равное -90 градусов.

Теперь у нас есть полностью управляемый трехмерный массив.

Вынесем управление размером массива в параметры модификатора Geometry Nodes. Слинкуем входы “Size X”  и “Size Y” с нода Grid двумерного массива с пустым выходом нода Geometry Input. Также слинкуем выход “Size X” с нода Grid одномерного массива и в панели инструментов переименуем его в “Size Z”.

То же самое проделаем для выходов “Vertices X” и “Vertices Y” двумерного массива и “Vertices X” одномерного.

Теперь мы можем удобно и легко управлять параметрами нашего трехмерного массива.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии