Podręcznik
10. Wstęp do animacji
10.1. Animacja oparta na prawach fizyki
Animacja oparta na prawach fizyki należy do najbardziej zaawansowanych funkcji spotykanych w programach do animacji 3D i można by jej poświęcić niejeden wykład i niejeden podręcznik. Tutaj więc omówiona zostanie wyłącznie hasłowo.
Najpopularniejsze systemy oparte na prawach fizyki to systemy cząsteczkowe (ang. particles ). Znajdziemy je w postaci gotowych funkcji lub pluginów nie tylko w największych systemach graficznych, ale także w Blenderze. Pozwalają symulować ruch naturalnych, nieregularnych cząsteczek unoszących się w powietrzu lub w cieczy i zmieniających się w czasie. Można z ich pomocą modelować takie obiekty, jak ogień, dym czy wodospad, a także statyczne obiekty, ale o płynnej formie, np. trawę czy włosy. W trakcie animacji można dodawać obiekty, które będą wchodzić w interakcje ze strumieniem cząsteczek (np. zderzenie z obiektem spowoduje rozproszenie strumienia).
Emiter (generator cząsteczek) jest obiektem, który wyrzuca z siebie w sposób losowy (o predefiniowanych parametrach rozkładu prawdopodobieństwa) nieraz ogromne ilości cząsteczek. Cząsteczką może być obiekt o dowolnej (często bardzo prostej) geometrii, który można zamodelować w systemie. Cząsteczki generowane przez emiter mają nadawane pierwotne wartości atrybutów, takich, jak:
- położenie
- prędkość i przyspieszenie
- kształt
- rozmiar
- barwa
- przezroczystość
- itp.
i atrybuty te (stałe lub ustawiane losowo na początku) ulegają zmianom w czasie, wynikającym z praw kinematyki i dynamiki, np. z działania sił wiatru i grawitacji. Cząsteczki w momencie ich wygenerowania mają też przydzielony czas życia, po którym ulegają zanikowi. Mogą też zginąć przedwcześnie, np. spadając na ziemię.
Renderowanie tysięcy cząsteczek odbywa się z dużym uproszczeniem; zwykle nie rozpatruje się tu zagadnień widoczności, cząsteczki do renderowania zastępuje się prostszymi obiektami, a barwa piksela jest sumą barw wszystkich cząsteczek odwzorowujących się na ten piksel.
Animacja tkanin jest jedną z najbardziej zaawansowanych funkcji w systemach animacji 3D. Pierwotnie wrażenie poruszającej się tkaniny (np. łopoczącej na wietrze flagi) uzyskiwano przy użyciu deformatorów, które wprowadzały zaburzenia. Nie była to jednak dokładna symulacja - nie brano pod uwagę prędkości wiatru, siły grawitacji, własności tkaniny. Przy wykorzystaniu funkcji Cloth można już wprowadzić tego rodzaju parametry i uzyskać realistyczny efekt. Animację tkanin od strony programowej realizuje się różnymi metodami; jedna z możliwości polega na wykorzystaniu systemów cząsteczkowych, innym rozwiązaniem jest modelowanie tkanin jako systemu węzłów połączonych sprężynami.
Jeszcze do niedawna funkcja Cloth znajdowała się tylko w najdroższych pakietach, takich jak Maya, czy Softimage. Obecnie pojawia się coraz więcej plug-inów umożliwiających realistyczną animację tkanin w różnego rodzaju programach:
Rysunek 74. Animowany GIF. Symulacja ruchu tkaniny z użyciem funkcji SimCloth z nakładki MegaPOV do programu POV-Ray
Innym rodzajem zaawansowanej animacji opartej na prawach fizyki są symulacje mechaniczne - pozwalające na wizualizację zderzeń obiektów, drgań sprężyn, ruchu uwzględniającego siłę oporu w wodzie czy powietrzu. Im lepiej są w tych programach uwzględnione prawa kinematyki i dynamiki, i im lepiej użytkownik radzi sobie z ustawianiem parametrów, tym bardziej realistyczny efekt.
Rysunek 75. Animowany GIF. Symulacja zderzeń z użyciem nakładki MegaPOV do programu POV-Ray