Houdini — это программное обеспечение для 3D-анимации, разработанное компанией SideFX из Торонто , которая адаптировала его из набора программных инструментов процедурной генерации PRISMS .
Процедурные инструменты используются для создания различных эффектов, таких как сложные отражения, анимация и система частиц. [2] Некоторые из его процедурных функций существуют с 1987 года. [2]
Houdini чаще всего используется для создания визуальных эффектов в кино и на телевидении. Он используется крупными компаниями VFX, такими как Walt Disney Animation Studios , Pixar , DreamWorks Animation , Double Negative , ILM , MPC , Framestore , Sony Pictures Imageworks , Scanline VFX , Method Studios и The Mill . [3]
Он использовался во многих полнометражных анимационных фильмах, включая полнометражные фильмы Disney «Фантазия 2000» , «Холодное сердце » , «Зверополис» [4] и «Рая и последний дракон» [5] ; фильм «Рио » студии Blue Sky Studios и «Ант Булли » студии DNA Productions [6] .
SideFX также выпускает Houdini Apprentice — ограниченную версию программного обеспечения, которая предоставляется бесплатно для некоммерческого использования.
Houdini охватывает все основные области 3D-производства, включая следующие:
Houdini — это открытая среда, поддерживающая множество API для скриптов. Python все чаще становится языком скриптов для пакета и призван заменить его оригинальный язык скриптов, похожий на C Shell, HScript. Однако любые основные языки скриптов, поддерживающие связь через сокеты, могут взаимодействовать с Houdini.
Процедурная природа Houdini обнаруживается в его операторах. Цифровые активы обычно создаются путем соединения последовательностей операторов (или OP ). Этот процедурализм имеет несколько преимуществ: он позволяет пользователям создавать высокодетализированные геометрические или органические объекты за сравнительно небольшое количество шагов; он допускает и поощряет нелинейную разработку; и новые операторы могут быть созданы на основе существующих операторов, что является гибкой альтернативой непроцедурному написанию сценариев, часто используемому в других пакетах для настройки. Houdini использует эту процедурную генерацию при создании текстур , шейдеров , частиц , «данных каналов» (данных, используемых для управления анимацией), рендеринга и композитинга .
Операторная структура Houdini делится на несколько основных групп:
Операторы соединены вместе в сети. Данные проходят через них, обрабатываются каждым оператором по очереди. Эти данные могут представлять 3D- геометрию , растровые изображения, частицы, динамику , алгоритмы шейдеров , анимацию , аудио или их комбинацию. Эта архитектура графа узлов похожа на ту, которая используется в компоновщиках на основе узлов, таких как Shake или Nuke .
Сложные сети могут быть сгруппированы в один узел мета-оператора , который ведет себя как определение класса и может быть инстанцирован в других сетях как любой скомпилированный узел. Таким образом, пользователи могут создавать свои собственные сложные инструменты без необходимости программирования. Таким образом, Houdini можно рассматривать как высокоинтерактивный визуальный программный инструментарий, который делает программирование более доступным для художников.
Набор инструментов Houdini в основном реализован в виде операторов. Это привело к более высокой кривой обучения, чем у других сопоставимых инструментов. Одно дело знать, что делают все узлы, но ключ к успеху с Houdini — это понимание того, как представить желаемый творческий результат в виде сети узлов. Успешные пользователи, как правило, знакомы с большим репертуаром сетей (алгоритмов), которые достигают стандартных творческих результатов. Накладные расходы, связанные с приобретением этого репертуара алгоритмов, компенсируются художественной и алгоритмической гибкостью, предоставляемой доступом к строительным блокам более низкого уровня, с помощью которых можно настраивать процедуры создания элементов кадра. В крупных постановках разработка процедурной сети для решения конкретной задачи создания элементов делает автоматизацию тривиальной. Многие студии, которые используют Houdini для крупных художественных эффектов и проектов художественной анимации, разрабатывают библиотеки процедур, которые можно использовать для автоматизации генерации многих элементов для этого фильма практически без взаимодействия с художником.
Также уникальным для Houdini является диапазон I/O OP, доступных аниматорам, включая MIDI- устройства, необработанные файлы или TCP- соединения, аудиоустройства (включая встроенное определение фонемы и высоты тона ), положение курсора мыши и т. д. Особо следует отметить способность Houdini работать со звуком, включая синтез звука и музыки и пространственные инструменты обработки 3D-звука. Эти операторы существуют в контексте, называемом «CHOPs», за который Side Effects получил премию «Оскар» за технические достижения в 2002 году.
VEX (Vector Expression) — один из внутренних языков Houdini. Он похож на Renderman Shading Language . Используя VEX, пользователь может разрабатывать собственные SOP, POP, шейдеры и т. д. Текущая реализация VEX использует обработку в стиле SIMD .
Houdini поставляется в комплекте с рендерером производственного класса Mantra, который имел много общего с RenderMan по области применения и применению в своей первоначальной версии. Поддерживается рендеринг микрополигонов , что позволяет выполнять высококачественные операции смещения, а также традиционные режимы скан-линии и трассировки лучей. Шейдеры можно заскриптовать и составить на их языке VEX или с помощью VOP; их интерфейс на основе узлов для программирования VEX. Mantra (как и сам Houdini) также поддерживает облака точек, которые по применению могут быть похожи на кирпичные карты в Renderman. Это позволяет создавать более сложные световые взаимодействия, такие как подповерхностное рассеивание и окклюзия окружающего пространства, с меньшими вычислительными затратами. Mantra может выполнять чрезвычайно быстрый объемный рендеринг , а также физически обоснованную трассировку пути — метод, который пытается более точно моделировать физические взаимодействия света и материалов.
Derivative Inc. — это ответвление Side Effects Software, которое продаёт производную от Houdini под названием TouchDesigner . Разработанная для анимации, сгенерированной OpenGL в реальном времени, она использовалась в туре рок-группы Rush в честь 30-летия для создания динамической графики, управляемой непосредственно музыкантами. [12] TouchDesigner также использовалась Xite Labs (ранее V Squared Labs) для создания живых визуальных эффектов для инсталляционного тура ISAM Амона Тобина . [ 13]
Известные работы, в которых использовался Гудини, включают фильм «Контакт» 1997 года и более позднюю «Зверополис» 2016 года . [2] [4]
Распространенной практикой в профессиональном рабочем процессе VFX является частое версионирование файлов сцен, поскольку общеизвестно, что частое версионирование файлов приносит удовольствие.