Houdini (program)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Houdini
Program graficzny (grafika 3D)
Houdini3D icon.png
Logo programu
Producent Side Effects Software
System operacyjny Windows, Mac OS X, Linux
Aktualna wersja stabilna 13
Licencja Zamknięte oprogramowanie
sidefx.com

Houdini (pełna nazwa Houdini 3D Animation Tool) to zaawansowany 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.

Historia wersji[edytuj | edytuj kod]

Przypisy

Linki zewnętrzne[edytuj | edytuj kod]

  • Side Effects Software - twórcy programu
  • Derivative Inc. - Pokrewna firma, założone przez jednego z twórców Side Effects Software
  • odforce - najaktywniejsze forum użytkowników programu Houdini
  • Forum3d.pl - polskie forum grafiki 3d z działem poświęconym programowi Houdini