Grafika Komputerowa Podstawy animacji Aleksander Denisiuk denisjuk@pjwstk.edu.pl Polsko-Japońska Wyższa Szkoła Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk Grafika Komputerowa p. 1
Podstawy animacji Najnowsza wersja tego dokumentu dostępna jest pod adresem http://users.pjwstk.edu.pl/~denisjuk/ Grafika Komputerowa p. 2
Techniki pochodzace z Animacji tradycyjnej Klatka kluczowa (keyframming) Motion capture Grafika Komputerowa p. 3
Animacja modelowana System czastek (dym, płyn, tłum) Bryła sztywna (rigid body) Przegubowa bryła sztywna (articulated rigid body) Obiekty elastyczne Zmiana runktu widokowego kamery (camera viewpoint) Inne: oświetlenie, chmury, etc. Grafika Komputerowa p. 4
Techniki modelowania animacji Kinematyka prosta Kinematyka odwrotna Dynamika prosta Dynamika odwrotna Grafika Komputerowa p. 5
Animacja pozycji. Ease In W czasie u 0 obiekt ma pozycję p 0 i prędkość v 0. W czasie u 1 zatrzymuje się w pozycji p 1 (z prędkościa 0). Dla [0,1] rozwiazaniem jest q(u) = p 0 H 0 (u)+v 0 H 1 (u)+p 1 H 3 (u), gdzie H i (u) jest wielomianem Hermite a. ( u u Dla dowolnego [u 0,u 1 ] zamiana J i (u) = H 0 i q(u) = p 0 J 0 (u)+(u 1 u 0 )v 0 J 1 (u)+p 1 J 3 (u). u 1 u 0 ), Grafika Komputerowa p. 6
Wielomiany Hermite a H 0 (u) = (1+2u)(1 u) 2, H 1 (u) = u(1 u) 2, H 2 (u) = u 2 (1 u), H 3 (u) = u 2 (3 2u), H 0 (0) = 1 H 1 (0) = 0 H 2 (0) = 0 H 3 (0) = 0 H 0(0) = 0 H 1(0) = 1 H 2(0) = 0 H 3(0) = 0 H 0(1) = 0 H 1(1) = 0 H 2(1) = 1 H 3(1) = 0 H 0 (1) = 0 H 1 (1) = 0 H 2 (1) = 0 H 3 (1) = 1 q(u) = x 0 H 0 (u)+v 0 H 1 (u)+v 1 H 2 (u)+x 1 H 3 (u). Bézier: q(u) = p 0 H 0 (u)+3(p 1 p 0 )H 1 (u)+3(p 3 p 2 )H 2 (u)+p 3 H 3 (u). Grafika Komputerowa p. 7
Ease In. Ruchomy cel W czasie t i obiekt ma pozycję T i, kamera ma pozycję c i. W czasie t i+1 = t i +δt obiekt będzie miał pozycję T i+1. Obliczyć c i+1. Obiekt zmienia prędkość płynnie: c i+1 = (1 α)c i +αt i+1. α (0,1) Grafika Komputerowa p. 8
Z regulowaniem prędkości kamery średnia prędkość kamery: v i = c i c i 1 t, oczekiwana pozycja kamery: c i+1 = c i +v i t = c i + c i c i 1 t t = 2c i c i 1, z uwzględnieniem pozycji obiektu: c i+1 = (1 α)(2c i c i 1 )+αt i+1, α (0,1) Grafika Komputerowa p. 9
Modelowanie orientacji Kierunek Up. Kamera. Statek kosmiczny. Grafika Komputerowa p. 10
Modelowanie orientacji. Macierz obrotu 1 2 0 0 1 0 1 0 + 1 0 0 0 1 0 1 0 0 = 0 0 1 0 1 2 1 2 1 2 1 0 2 1 2 0 1 2 Grafika Komputerowa p. 11
Û Ý ÁÁº½ Û Ô Ø Ò ÖÓÐÐ Ö ÔÖ ÒØ ÖÓØ Ø ÓÒ ÖÓÙÒ Ø Ý ¹ Ü Ø ÙÖ Ò Ø Þ ¹ Ü º Á Ø Ü ÑÓÚ Û Ø Ø Ó Ø Ø Ò Ø ÖÓØ Ø ÓÒ Ü¹ Ü Ø Ü Ö Á Ü Ø Ò Ø ÖÓØ Ø ÓÒ Ö Ô Ö ÓÖÑ Ò Ø ÓÔÔÓ Ø ÓÖ Ö ÖÓÐÐ Ø Ò Ö Ø ÓÒ Ö Ø ÖÑ Ò Ý Ø Ö Ø Ò ÊÓØ Ø ÓÒ Ì Ö Ö Û ÖÒ Ø Ø Ø ÖÓØ Ø ÓÒ Ö Ø ÓÒ ÓÖ Ô Ø Ò Ý Û Ø Ø ÖÙÐ º ÓÛÒ Ò Ø ÙÖ Ö ÓÔÔÓ Ø ØÓ Ù ØÓÑ ÖÝ Ù Ò Ú Ø ÓÒº ÓÖ Ù Ö Ô Ø Ñ Ò Ø ÒÓ Ô ÓÛÒ Ò ÔÓ Ø Ú Ý Û Ø Ö ØÓ Ø Ð Øº ÔÓ Ø Ú Ú Ø ÓÒ ÓÒÚ ÒØ ÓÒ Ö Ø Ø ÔÓ Ø Ú Ô Ø Ñ Ò Ø ÒÓ ÑÓÚ ÀÓÛ Ú Ö Ò ÔÓ Ø Ú Ý Û Ñ Ò ØÙÖÒ Ò ØÓ Ø Ö Øº ÁØ Ù ØÓÑ ÖÝ ÓÖ ÔÓ Ø Ú ÙÔ ØÓ Ñ Ò Ø Ø Ø Ö Ø Û Ò Ô Û Ö Û Ø Ø ÓÙÖ ÓÒÚ ÒØ ÓÒº ÁÒ ÖÓÐÐ ÓÒÚ ÒØ ÓÒ Ø Ö Ø ÓÒ Ó Ø Ü Ò Ý Ü Ö Ö Ú Ö Û Ø Ø Ú Ø ÓÒ Yaw, Pitch, and Roll Ü È Ø Þ ÊÓÐÐ Ö Ô Ö ÓÖÑ Ò Ø ÓÖ Ö Ý Û Ø Ò Ô Ø Ò Ò ÐÐÝ ÖÓÐк Ø Ò Ô Ø Ø Ò Ý Ûº Grafika Komputerowa p. 12 ܹ Ü ÔÓ ÒØ Ò Ö ØÛ Ö Ò Ø Ý ¹ Ü ÔÓ ÒØ Ò ÓÛÒÛ Ö º
Yaw, Pitch, and Roll R = R θy,j R θp,i R θr,k s y s p s r +c y c r s y s p c r c y c p s y c p M R = c p s r c p c r s p c y s p s r s y c r c y s p c r +s y c r c y c p c p = cosθ p, etc. Grafika Komputerowa p. 13
Ewentualne problemy interpolacji Interpolacja katów, okres 360. interpolacja od 170 do 170 a interpolacja od 170 do 190 niejednoznaczna reprezentacja obrotu: θ y = θ y ±180 θ p = θ p ±180 θ r = θ r ±180 Gimbal lock interpolacja od (0,0,0 ) do (90, 90, 90 ) pozycja pośrednia (45, 45, 45 ) Grafika Komputerowa p. 14
Animacja Orientacji. Kwaterniony Obrót o kat θ dookoła osi (u 1,u 2,u 3 ). q = (cos(θ/2),sin(θ/2)u 1,sin(θ/2)u 2 sin(θ/2)u 3 ) q = (q 0,q 1,q 2,q 3 ), q 2 = qi 2 = 1: θ = 2arccosq 0, u = 1 (q 1,q 2,q 3 ) = 1 (q sinθ/2 1,q 2,q 3 ), 1 q 2 0 q = (cos(θ/2),sin(θ/2)u 1,sin(θ/2)u 2 sin(θ/2)u 3 ) R θ = R θ+360 q q Grafika Komputerowa p. 15
Ciało kwaternionów Q q = q 0 +q 1 i+q 2 j +q 3 k i 2 = 1, ij = k, ik = j, ji = k, j 2 = 1, jk = i, ki = j, kj = i, k 2 = 1. q = q 2 0 +q 2 1 +q 2 2 +q3 2, q = q 0 q 1 i q 2 j q 3 k, q 1 = 1 q 2 q, R Q, R 3 Q : (v 1,v 2,v 3 ) v 1 i+v 2 j +v 3 k. Grafika Komputerowa p. 16
Ciało kwaternionów. Przykłady q α = 2 2 + 2 2 j, q β = 2 2 + 2 2 k, q γ = 2 q α ±q β, q α ±q γ, q α q β, q β q α, q α q γ, q γ q α, q α, q β, q γ, q α, q β, q γ, q 1 α, q 1 β, q 1 γ. Grafika Komputerowa p. 17
Kwaterniony a obroty Twierdzenie 1. NiechR θ,u będzie obrotem dookoła osiu( u = 1), q = cos(θ/2)+sin(θ/2)u 1 i+sin(θ/2)u 2 j +sin(θ/2)u 3 k. Wtedy v R Rv = qvq 1 Grafika Komputerowa p. 18
Kwaternion a macierz obrotu q M R : i qiq 1, j qjq 1, k qkq 1, M R = q0 2 +q2 1 q2 2 q2 3 2q 1 q 2 2q 3 q 0 2q 1 q 3 +2q 2 q 0 2q 1 q 2 +2q 3 q 0 q0 2 q2 1 +q2 2 q2 3 2q 2 q 3 2q 1 q 0. M R q: 2q 1 q 3 2q 2 q 0 2q 2 q 3 +2q 1 q 0 q 2 0 q2 1 q2 2 +q2 3 m 2,1 +m 1,2 = 4q 1 q 2, m 1,3 +m 3,1 = 4q 1 q 3, m 3,2 +m 2,3 = 4q 2 q 3, m 2,1 m 1,2 = 4q 3 q 0, m 1,3 m 3,1 = 4q 2 q 0, m 3,2 m 2,3 = 4q 1 q 0, 2m 0,0 TrM = 4q0 2 1, 2m 1,1 TrM = 4q1 2 1, 2m 2,2 TrM = 4q2 2 1, 2m 3,3 TrM = 4q3 2 1. Grafika Komputerowa p. 19
Interpolacja kwaternionów ½ ÙÖ ÁÁº¾ Ä ÖÔ Ò ÑÓÚ ÖÓÑ ½ ØÓ Ø ÓÒ Ø ÒØ Ö Ø ÐÓÒ Ø ÒØ Ð Ò º ËÐ ÖÔ Ò ÑÓÚ ÖÓÑ ½ ØÓ Ø ÓÒ Ø ÒØ Ö Ø ÐÓÒ Ø Ö Ø ÖÐ º Ì Ö ÛÒ ÓÒ Ø ÒØ Ð Ò Ò ÓÒ Ø Ö Ø ÖÐ Ö Ó Ø Ò Ý Ð ÖÔ Ò ÔÓ ÒØ Ð ÖÔ Ò Û Ø «½ º Ì Ý Ó ÒÓØ ÓÖÖ ÔÓÒ ØÓ Ø Ñ ÖÓØ Ø ÓÒº Ò q(α) = slerp(q 1,q 2,α) = sin( (1 α)ϕ ) sinϕ q 1 + sin(αϕ) sinϕ q 2. Grafika Komputerowa p. 20