Houdini — профессиональный программный пакет для работы с трёхмерной графикой, разработан компанией Side Effects Software (Торонто, Канада). Главное отличие данного пакета то, что он является средой визуального программирования.
Основные возможности программы
- Моделирование
- Анимация
- основанная на ключевых кадрах анимация
- возможностью процедурного управления каналами параметров сцены с помощью HScript или с помощью операторов группы CHOPs (channel operators)
- редактор ключевых кадров — с возможностью графического представления параметра сцены, изменения типа интерполяции значения и расположения во времении ключевого кадра
- персонажная анимация — инструменты для персонажной анимации: скелеты, риг, волосы и шерсть (с просчётом физического взаимодействия), взаимодействиe персонажев (Crowd control) и т. д.
- Физическое моделирование — расчёт физического взаимодействия:
- твёрдых (Rigid Body) и мягких тел (Soft Body)
- «верёвчатых» тел (Wire)
- тканей (Cloth)
- волос и шерсти
- расчёт физического поведения и визуализации газов и жидкостей (моделирование поведения огня, дыма, большинства атмосферных явлений, растворения одной жидкости в другой, карты намокания (Wet Map) и т. д.)
- Освещение
- Материалы и шейдеры
- библиотека материалов
- возможность создания пользовательского материала путём редактирования существующего или программирования шейдера материала — SHOPs (shading operator)
- Объёмный звук — Houdini обладет набором инструментов позволяющих работать с объёмным звуком. Расположив виртуальные источники звука в сцене, с помощью специального объекта выполняющего роль микрофона (Microphone object), можно получить звуковой сигнал в конкретной точке сцены, при этом, учитывая акустические свойства объектов сцены.[1]
- Рендеринг
- Композитинг
- востроенный инструмент для Композитинга с (COPs — composite operators) с полноценной поддержкой пикселов с глубиной цвета 32 бита с плавающей точкой
- информация из COPs может быть напрямую использована в сцене проекта
Ноды (Nodes)
Возможно, слово «нода» (от англ. Node) не совсем правильное название, но оно широко встречается в немногочисленных русскоязычных источниках по Houdini и не только. Итак, нода — это основная стуктурная единица Houdini, способная в соотвествии с её типом обрабатывать определённые данные и возвращать результат. В большинсте случаев, пользователь имеет дело с графическим представлением ноды, которая отображается ввиде прямоугольника с входными и выходными соединениями. Выходное соединение одной ноды можно соединить с входным другой, тем самым, обеспечивая передачу данных между ними. Можно сказать, что моделирование в Houdini — это процесс создания и соединения нод, при этом получается, что любой операции в сцене будет соотвествовать определённая нода, что является своеобразной историей произведённых действий с возможностью свободного их изменения.
Графы (Networks)
Ноды расположенные в рабочем пространстве и их соединения, образуют графы (Networks). Такие графы могут относится к одному из ниже приведённых типов: [2]
- Objects (OBJ) — является контейнером верхнего уровня для всех геометрических объектов (источников света, камер, объектов SOPs и т д.). Позволяет определять пространственные и иерархичские зависимости между объектами сцены
- Geometry (SOP) — обладает полным функционалом для моделирования. Обычно такой граф содержит ноды-генераторы (куб, сфера, плоскость) и ноды-преобразования (трансформация, сжатие, булевые операции). Такой граф может содержать только одну активную ноду, которая будеть определять результирующую геометрию объекта SOP
- Particles (POP) — такой граф позволяет создавать источники частиц и определять их поведение с помощью соответствующих нод
- Motion and audio channel operators (CHOP) — такой граф содержит ноды для управления каналами данных (любой параметр сцены, информация из аудиофайла). Является инструментом процедурной анимации
- Compositing (COP) — содержит ноды 2D-преобразования графических изображений. Является полноценным инструментом композитинга. По сравнению с другими пакетами моделирования, инструмент композитинга Houdini — это не отдельная программа. Данные из COP могут быть напрямую задействованы в трехмерной сцене
- Dynamics (DOP) — граф для создания физических свойств объекта и расчёта их взаимодействия. Позволяет создавать реалистичное поведение объектов, к примеру, столкновение твёрдых тел с расчётом деформации или разрушения исходных объектов или поведение тканей
- Shaders (SHOP) — содержит ноды шейдеров. Параметры этих нод изменяют свойства определённого шейдера
- Render outputs (ROP) — содержит ноды рендеринга. Каждая такая нода обладает определённым набором параметров визуализации, к примеру: диапазон кадров для просчёта, активная камера, имя фаила для сохранения результатов рендеринга и т д. Такие ноды могут соединятся между собой, создавая зависимости
- VEX Builder (VOP) — граф для визуального программирования Houdini. Приемущественно используется для программирования шейдеров.
Граф каждого из типов обладает своим собственным, уникальным набором нод, при этом, почти в любом графе можно создать подграф другого типа, а также существуют механизмы обмена информацией между графами различных типов. К примеру, при создании источника частиц в графе POP может быть использована информация из объекта SOP, которая будет определять геометрическую форму источника.
Пользовательские ноды (Digital assets)
Графы могут быть объеденены в самостоятельную структуру — «пользовательскую ноду» (Digital asset) со своим названием и набором регулируемых параметров. Существуют примеры создания очень сложных процедурных моделей с большим числом регулировок, к примеру: процедурная дорога, которая в зависимости от перепадов высот сама встраивает сложные мосты или тунели, пользователю лишь нужно указать путь по которому эта доргога будет проходить или процедурная книга где пользователь указывает количество страниц, размеры и путь папки с текстурами, изменяя параметр отвечающий за номер открытой страницы можно создавать анимацию перелистывания книги или журнала.
Типы данных
Ноды в Houdini могут обрабатывать большое число типов данных:
- Геометрические данные — точки, примитивы, нормали, проекции, кривые и т. д.
- Графические данные — графические файлы, данные из COPs и т. д.
- Частицы — структуры данных для POPs
- Физические данные — DOPs
- Строчные данные — текстовые объекты, файловые пути, команды HScript и т. д
- Числовые данные — параметры операторов, атрибуты, векторы, большинство данных для программирования шейдеров и т. д
А для CHOPs ещё и:
- Информация с устройств ввода — мыши, клавиатуры, графического планшета, MIDI-порта, микрофона
- RAW данные из файла
- Данные из TCP/IP-соединения
- Аудио-поток из файла или виртуального микрофона расположенного в пространстве сцены.
Программирование в Houdini
Каждый оператор имеет свой адрес в проекте схожий по структуре с Unix-подобными операционными системами
Достижения
За использование Houdini для имитации природных явлений с помощью частиц и сложных процедурных трёхмерных моделей, компания Side Effects Software в 2002 году, получила премию «Оскар» за технические достижения (Scientific and Engineering Award) [3], а по мнению англоязычной википедии и за возможности трёхмерной обработки звука с помощью CHOPs.
Версии Houdini
Houdini относительно дорогой продукт, но существует и бесплатная версия Houdini Apprentice — которую можно использовать для некоммерческого использования, а так же свободно загрузить с официального сайта программы.
Примечания
- Spatial audio. Проверено 4 октября 2010. (англ.)
- Network types. Проверено 4 октября 2010. (англ.)
- 75th Annual Academy Awards (2002). Проверено 3 октября 2010. (англ.)
Ссылки
- Форум по Houdini на cgtalk.ru (рус.)
- HoudiniClub (рус.)