Animacja komputerowa 1

Opis kursu:

Kurs obejmuje 7 jednostek wykładowo-laboratoryjnych, skupionych na metodach animacji poklatkowej, animacji punktu materialnego oraz animacji brył sztywnych. Wykład będzie skupiony wokół zagadnień fizycznych wspartych aspektami metod numerycznych. W efekcie słuchacz uzyska teoretyczne podstawy do konstrukcji oprogramowania animacyjnego, jak i nauczy się korzystać z narzędzi umożliwiających szybką produkcję scen animowanych.

Cele i zarys tematyczny kursu:

Celem kursu jest przyswojenie przez uczestników zaprezentowanego materiału teoretycznego na poziomie pozwalającym zaimplemetować dane zagadnienie w dowolnym języku programowania. W skrócie materiał kursu przedstawia się następująco:

  1. Animacja punktu materialnego: równanie różniczkowe ruchu punktu materialnego i metody jego rozwiązania (m.in. Euler i Verlet, Runge-Kutta), układy punktów materialnych
  2. Reprezentacje przekształceń i ich uwarunkowania numeryczne: przekształcenia macierzowe i błędy zaokrągleń, ortonormalizacja podmacierzy obrotu, reprezentacja położeń kątowych i punkty osobliwe (r. z ustalonymi osiami, katy Eulera, kąt i oś obrotu, kwaterniony, r. wykładnicza), interpolacja ruchu wzdłuż krzywej (całkowanie długości łuku), interpolacja położeń kątowych (interpolacja kwaternionów), interpolacja wzdłuż ścieżki (układ Freneta, wygładzanie ścieżki, wyznaczanie ścieżki na powierzchni).
  3. Animacja oparta na interpolacji: systemy oparte na ramkach kluczowych, języki animacji, interpolacja kształtów trójwymiarowych, morfing
  4. Kolizje układów punktów materialnych: zderzenia sprężyste (wyprowadzenie wzorów na prędkość po zderzeniu w przykładowej sytuacji), model animacji płótna przez układ sprężyn - czynniki tłumiące, kolizje punkt-wielokąt, układy cząstek
  5. Symulacje ruchu brył sztywnych: równania ruchu (środek masy, siła i jej moment , pęd i jego moment, tensor bezwładności), kolizje brył sztywnych (zderzenia wielościanów, twierdzenie SAT, siły występujące podczas zderzenia)

Wymagania:

  1. Analiza matematyczna
  2. Algebra liniowa
  3. Umiejętność programowania w jednym z języków: c++/c#/java/python – preferowany c++

Literatura:

  1. R. Parent, Animacja komputerowa. Algorytmy i techniki, PWN 2011.
  2. A. Watt, M. Watt, Advanced Animation and Rendering Techniques, Addison-Wesley 1992.
  3. J. Matulewski, T. Dziubak, M. Sylwestrzak, R. Płoszajczak, Grafika. Fizyka. Metody numeryczne. Symulacje fizyczne z wizualizacją 3D, PWN 2010.
  4. K. Erleben, J. Sporring, K. Henriksen and H. Dohlmann, Physics Based Animation, Charles River Media 2006
  5. D.H. Eberly, Game Physics, Second Edition, Morgan Kaufmann 2010.
  6. N. Lever, Real-time 3D Character Animation with Visual C++, Focal Press 2002.
  7. E. Lengye, Mathematics for 3D Game Programming and Computer Graphics, Third Edition, Course Technology 2012.
  8. C. Ericson, Real-Time Collision Detection, Morgan Kaufmann 2005.