Houdini (program)
Houdini (pełna nazwa Houdini 3D Animation Tool) – program do animacji komputerowej, rozwijany przez Side Effects Software z siedzibą w Toronto w Kanadzie. 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:
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):
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
Przypisy
|