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