Houdini FX 16 jedynym ograniczeniem jest wyobraźnia

Houdini (pełna nazwa Houdini 3D Animation Tool) – program do animacji komputerowej, rozwijany przez Side Effects Software z siedzibą w Toronto, Kanada. Zasadniczą cechą programu, odróżniającą go od innych pakietów, jest jego czysto proceduralna natura.

Houdini obejmuje większość zagadnień związanych z produkcją grafiki trójwymiarowej:

– Modelowanie – wszystkie standardowe rodzaje geometrii włączając w to: Poligony, oraz NURBs/Bezier Curves/Patches & Trims, a także tzw. Metaballs
– Animacja – metodą klatek kluczowych oraz oparta na manipulacji próbkami (samples), a także wsparcie dla danych motion capture
– Cząsteczki – symulacje zjawisk cząsteczkowych
– Dynamika – symulacje fizyki ciał sztywnych (Rigid Body Dynamics), płynów (Komputerowa mechanika płynów), dynamiki krzywych (Wire, Curve) oraz symulacje ubrań (Cloth Simulation)
– Oświetlenie – środowisko graficznego (node-based) tworzenia shaderów, praca nad oświetleniem między innymi przy pomocy IPR (Instant Preview Renderer)
– Rendering – wsparcie dla szeregu programów renderujących; poza natywną Mantrą: Renderman (PRMan, 3delight, Air, RenderDotC), mental ray, Maxwell, Indigo, Sunflow
– Wolumetryka – generowanie/populacja/manipulacja/rendering pól skalarnych i wektorowych
– Kompozycja video – kompletny kompozytor pracujący w 32bitowej palecie na kanał oraz obsługujący formaty deepraster
– Środowisko programistyczne – Houdini Development Kit, czyli zestaw bibliotek C++ pomocnych przy tworzeniu rozszerzeń programu.

Podobnie do innych programów tego typu, Houdini jest środowiskiem otwartym, umożliwiającym używanie kilku popularnych języków skryptowych, takich jak Tcl/Tk. Houdini posiada również swój własny język, podobny do C Shell, czyli Hscript. Od wersji 9.0 Houdini obsługuje także język Python (za pomocą nowego API o nazwie HOM), który zastąpić ma Hscript w przyszłych edycjach programu.

Elementy sceny (Digital assets) tworzone są w Houdinim za pomocą serii operatorów (tzw. OPs) składanych w łańcuchy. Taki proceduralizm ma kilka zalet: pozwala konstruować wysoce skomplikowane obiekty geometryczne i organiczne w stosunkowo małej liczbie kroków, umożliwia nieliniowy rozwój sceny (w każdej chwili możemy wrócić do dowolnego etapu pracy i poprawić go); nowe operatory można także tworzyć z już istniejących. Ta możliwość jest ciekawą alternatywą dla wykorzystania języków skryptowych w aplikacjach 3D do dostosowania ich możliwości do swoich potrzeb. Houdini używa tego paradygmatu we wszystkich miejscach programu: do mapowania tekstur, tworzenia i aplikacji shaderów, poprzez symulacje cząsteczkowe i animacji, aż do procesu renderingu i kompozycji.

Operatory Houdniego dzielą się na kilka grup (tzw. kontekstów):
– SOPs – operatory powierzchni (Surface OPerators) – służą do modelowania, deformacji powierzchni oraz wielu efektów związanych z wyglądem/ zmianą wyglądu obiektów w scenie
– POPs – operatory cząsteczkowe (Particles OPerators)
– CHOPs – operatory kanałów animacji (Channel OPerators)
– COPs – operatory kompozycji (Composite OPerators)
– DOPs – operatory symulacji dynamicznych (Dynamic OPerators)
– ROPs – operatory renderowania (Render OPerators)
– VOPs – operatory języka VEX (Vex OPerators)

Operatory łączą się w łańcuchy zwane “sieciami” (networks) lub “drzewem operatorów”. INFOrmacje wewnątrz operatorów podawane są kolejnym elementom, które modyfikują i posyłają dalej. Dane te mogą przy tym reprezentować geometrię 3D, bitmapa, cząsteczki, INFOrmacji o siłach i parametrach dynamiki, zmienne reprezentujące własności powierzchni w shaderach, krzywe animacji a nawet dźwięk lub wszelkie kombinacje powyższych. Podobny schemat działania zastosowano w wielu aplikacjach graficznych takich jak kompozytor Shake lub Nuke.

Skompilowane sieci można grupować tworząc jeden meta-operator do wielokrotnego wykorzystania w tej i w następnych scenach. Proces ten umożliwia użytkownikom tworzenie własnych wysoce narzędzi bez potrzeby programowania. W istocie OPeratory nie są niczym innym jak graficznym (visual) oraz interaktywnym językiem programowania dostępnym dla artystów.

Houdini jest wyjątkowo bogatym programem a jego niezliczone narzędzia egzystują w kilku kontekstach. Nakłada to niestety większe wymagania na początkującego użytkownika. Houdini ma z tego powodu opinię wyjątkowo trudnego, ale wszechmogącego programu.

Houdiniego może pracować na różnorodnych danych wejściowych. Dostępne są między innymi: urządzenia MIDI, surowe dane ASCII albo pochodzące z protokółu TCP, urządzenia audio (włączając w to wbudowaną detekcję fenomów oraz wysokości tonu), urządzenia wskazujące (mysz) itd. Houdini potrafi także generować muzykę i dźwięk przestrzenny. Między innymi do tego służy kontekst “CHOP”, za który w roku 2002 firma Side Effects Software otrzymała “Technical Achievement Academy Award” – czyli Oscara za osiągnięcia techniczne.

VEX (Vector Expression) jest jednym z języków skryptowych Houdiniego. Jest podobny do języka RSL, czyli standardu zdefiniowanego przez firmę Pixar w specyfikacji Renderman. RSL jest językiem OPISu własności powierzchni, który służy programom zgodnym ze powyższą specyfikacją do obliczania koloru powierzchni w trakcie renderingu. VEX nie ogranicza się do tego użycia. Poza tworzeniem shaderów powierzchni, świateł i cieni, umożliwia bowiem pisanie własnych operatów SOPs, POPs, CHOPs i COPs. Obecna implementacja VEX wykorzystuje także architekturę SIMD

Historycznie Houdini wykorzystywany był głównie przy animacji efektów cząsteczkowych, natomiast za jego główną słabość uważano animację postaci. W rezultacie używano go niemal wyłącznie przy pracach nad efektami specjalnymi. Ostatnie wersje programu wprowadziły jednak wiele usprawnień w dziedzinie animacji. Houdini użyty był już w kilku filmach do pracy nad postaciami, takich jak The Wild – duża produkcja The Walt Disney Company, jak również Ant Bully.

Houdini sprzedawany jest z wysokiej klasy rendererem do zastosowań filmowych, Mantrą, który podobnie jak w przypadku języka VEX, ma wiele podobieństw do programu Pixar PhotoRealistic RenderMan. Jednym z dostępnych trybów pracy jest rendering mikro-poligonalny, umożliwiający wykonanie wysokiej jakość odkształceń powierzchni w trakcie renderingu (displacement). Mantra pracuje także w trybie scan-line oraz ray-tracing. Shadery dla Mantry powstają w VEX, lub są konstruowane graficznie za pomocą operatorów VOP. Mantra (podobnie jak sam Houdini) obsługuje również tzw. point-clouds, które umożliwiają efektywne obliczenia efektów takich jak subsurface scattering czy ambient occlusion. Mantra posiada także tryb volume rendering (renderowania gazów, chmur etc), oraz tzw. Physically Based Rendering – czyli technikę opartą na fizycznym modelu światła.

Poniżej próbka możliwości tego programu w praktyce

Największą wadą tego programu jest jednak cena
PS: Program kosztuje bagatela 4495 USD.

Tutaj można pobrać darmową wersję próbną tego programu

Share Button