2. Методическая часть
Исходный размер 2480x3500
Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

Методическая часть

В первую очередь после изучения теоретической части необходимо разобраться, через какие методы и инструменты в Houdini может быть реализована рекурсия.

Основные подходы включают использование For-Each Loop, VEX и Solver. Каждый из них отличается степенью сложности, подходом и целью.

big
Исходный размер 2480x694

Краткое сравнение 3-х методов.

В рамках данной главы создана одна и та же сцена с применением всех трёх подходов. Это позволит наглядно показать различия в реализации каждого метода и закрепить понимание принципов их работы на практике. В качестве основы использована точка, которая проходит через заданный цикл. На каждом шаге она дублируется, а новая точка подвергается трансформации. Затем все точки объединяются, формируя непрерывный путь, который впоследствии преобразуется в кривую.

big
Исходный размер 2480x804

Принцип работы цикла в будущей сцене. 1 — копирование новой точки; 2 — трансформация новой точки; 3 — объединение новой и старой точек; 4-6 — аналогичны шагам 1-3; 7 — преобразование точек в кривую.

1. For-Each Loop

Принцип работы For-Each Loop

For-Each Loop — базовый инструмент, используемый для автоматизации повторяющихся операций над геометрией.

Его задача — взять определённый набор элементов (точки, примитивы, куски геометрии, числа и т.д.) и выполнить заданную цепочку нод столько раз, сколько требуется.

post

В TAB Menu (список нод, вызываемый Tab-ом) доступно шесть типов инструментов For-Each, отличающихся тем, как именно разбивается геометрия и какие данные проходят через цикл.

For-Each Number

  • цикл, повторяющийся фиксированное количество раз.

For-Each Point For-Each Primitive For-Each Connected Piece For-Each Named Primitive

  • циклы, имеющий похожий принцип: каждая итерация цикла проходит через отдельный элемент (точку, примитив, отдельный фрагмент или именованную часть).

For-Loop with Feedback

  • особый тип цикла, при котором результат каждой итерации передаётся в следующую.
post

Инструмент For-Each Loop состоит из двух основных элементов:

Block Begin

  • входная точка цикла.
  • настройка метода цикла .

Block End

  • завершающая точка цикла.
  • сбор результатов всех итераций, настройка шагов, типа завершения цикла.

В некоторых случаях создаётся служебная нода Metadata

  • хранение данных о текущей итерации: номер шага, количество итераций, текущий элемент.
Исходный размер 2480x1080

Принцип работы инструмента For-Each Loop. Куб состоит из 6 примитивов (полигонов), цикл выполняет 6 итераций.

Таким образом, принцип работы For-Each Loop заключается в том, что в Block Begin поступает геометрия, которая затем делится согласно выбранному типу (точки, примитивы, отдельные фрагменты или именованные части), после чего внутри цикла выполняется цепочка нод, применяемая к каждому элементу. Завершает процесс нодой Block End, где результаты всех итераций объединяются в итоговую геометрию.

Всё это позволяет гибко настраивать результат, добавлять вложенные циклы и быстро вносить необходимые изменения. Кроме того, структура представлена нодами, а не кодом, что визуально и технически упрощает работу.

Практическая реализация For-Each Loop

Исходный размер 1920x809

Интерфейс Houdini. 1 — вьюпорт (viewport); 2 — панель параметров; 3 — панель нод.

В новом проекте Houdini в панели нод создаётся нода «Geometry» (пустая нода геометрии). После двойного нажатия ЛКМ по ней открывается её внутренняя структура — уровень SOP.

SOP (Surface Operators) — это уровень работы в Houdini, предназначенный для выполнения операций с геометрией.

Исходный размер 1920x809

Создание ноды Geometry в панели нод.

В первую очередь, необходимо создать точку, с которой начинается построение системы. Для этого добавляется нода «Add».

post

Нода «Add» Создание точек и их соединение в примитивы по заданными условиям.

post

В Parameters (окно настройки ноды) во вкладке Points нажимается +, в результате чего создаётся точка. Ниже отображена информация о ней: её номер и координаты. В данном случае, настройки остаются по умолчанию.

post

Затем добавляется нода «Group». Это определяет группу, на которую применяется трансформация в последующем цикле.

post

Нода «Group» Генерация группы из точек, примитивов, эджей или вершин по заданным условиям.

post

Группе присваивается имя last в Group Name (название можно изменить при необходимости). Параметр Group Type — Points, поскольку работа ведётся с точками. Остальные параметры остаются без изменений.

post

Далее создаётся нода For-Loop with Feedback. Используется именно вариант с feedback, так как он позволяет на каждом шаге цикла использовать результат предыдущей итерации, что необходимо для постепенного наращивания геометрии.

post

Внутри цикла добавляется нода «Blast», которая удаляет все точки, кроме последней, к которой применяется трансформация (то есть к точке в группе last).

post

Нода «Blast» Удаление примитивов, эджей, точек.

post

Для того, чтобы оставить только последнюю точку в Group назначается группа last, Group Type — Points, и активируется опция Delete Non-Selected.

post

Следом добавляется нода «Transform», с помощью которой последняя точка перемещается в пространстве.

post

Нода «Transform» Трансформация геометрии (перемещение, вращение, масштаб и центровку) в 3D-пространстве.

post

Параметры трансформации могут быть заданы произвольно, однако для воспроизводимости эксперимента они остаются постоянными.

Translate — позиция; Rotate — поворот; Scale — размер.

2. Методическая часть
Проект создан 01.12.2025
Глава:
1
2
3
4
5
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше