Houdini (program)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Houdini
Program graficzny (grafika 3D)
Logo Houdini
Logo programu
Autor Side Effects Software
System operacyjny Windows, OS X, Linux
Aktualna wersja stabilna 15.5[1]
Licencja Zamknięte oprogramowanie
Strona internetowa

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.

Historia wersji[edytuj]

Przypisy