13.07.2015 Views

Podstawy animacji - pjwstk

Podstawy animacji - pjwstk

Podstawy animacji - pjwstk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Grafika Komputerowa<strong>Podstawy</strong> <strong>animacji</strong>Aleksander Denisiukdenisjuk@<strong>pjwstk</strong>.edu.plPolsko-Japońska Wyższa Szkoła Technik KomputerowychWydział Informatyki w Gdańskuul. Brzegi 5580-045 GdańskGrafika Komputerowa – p. 1


<strong>Podstawy</strong> <strong>animacji</strong>Najnowsza wersja tego dokumentu dostępna jest podadresemhttp://users.<strong>pjwstk</strong>.edu.pl/~denisjuk/Grafika Komputerowa – p. 2


Techniki pochodzace ˛ z AnimacjitradycyjnejKlatka kluczowa (keyframming)Motion captureGrafika Komputerowa – p. 3


Animacja modelowanaSystem czastek ˛ (dym, płyn, tłum)Bryła sztywna (rigid body)Przegubowa bryła sztywna (articulated rigid body)Obiekty elastyczneZmiana runktu widokowego kamery (camera viewpoint)Inne: oświetlenie, chmury, etc.Grafika Komputerowa – p. 4


Animacja pozycji. Ease InW 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 ˛ jestq(u) = p 0 H 0 (u)+v 0 H 1 (u)+p 1 H 3 (u), gdzie H i (u) jestwielomianem Hermite’a.(u−uDla dowolnego [u 0 ,u 1 ] zamiana J i (u) = H 0iq(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’aH 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) ′ = 0H ⎪⎩ 0(1) ′ = 0 H 1(1) ′ = 0 H 2(1) ′ = 1 H 3(1) ′ = 0H 0 (1) = 0 H 1 (1) = 0 H 2 (1) = 0 H 3 (1) = 1q(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 celW czasie t i obiekt ma pozycję T i , kamera mapozycję 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


Modelowanie orientacjiKierunek „Up”.Kamera.Statek kosmiczny.Grafika Komputerowa – p. 10


Modelowanie orientacji. Macierzobrotu12⎡⎛⎞0 0 1⎣⎝0 1 0⎠+−1 0 0⎛ ⎞⎤0 −1 0⎝1 0 0⎠⎦ =0 0 1⎛⎝0 − 1 21212102− 1 2012⎞⎠Grafika Komputerowa – p. 11


Yaw, Pitch, and RollÛÝÜÈØÞÊÓÐÐÙÖ ÁÁº½ Û¸ Ôظ Ò ÖÓÐÐ ÖÔÖ×ÒØ ÖÓØØÓÒ× ÖÓÙÒ Ø Ý ¹Ü׸ ØܹÜ× Ò Ø Þ ¹Ü׺ Á Ø Ü× ÑÓÚ ÛØ Ø Óظ ØÒ Ø ÖÓØØÓÒ×Ö ÔÖÓÖÑ Ò Ø ÓÖÖ ÝÛ¸ ØÒ Ôظ Ò ¬ÒÐÐÝ ÖÓÐк Á Ø Ü× ÖØÒ × ¬Ü¸ ØÒ Ø ÖÓØØÓÒ× Ö ÔÖÓÖÑ Ò Ø ÓÔÔÓ×Ø ÓÖÖ ÖÓÐиØÒ Ôظ ØÒ ÝÛº ÊÓØØÓÒ ÖØÓÒ× Ö ØÖÑÒ Ý Ø ÖØÒÖÙк Ì ÖÖ × ÛÖÒ ØØ Ø ÖÓØØÓÒ ÖØÓÒ× ÓÖ ÔØ Ò ÝÛ ØØÖ ×ÓÛÒ Ò Ø ¬ÙÖ Ö ÓÔÔÓ×Ø ØÓ Ù×ØÓÑÖÝ Ù× Ò ÚØÓÒº ÓÖ Ù׸ ÔÓ×ØÚ ÔØ ÑÒ× Ø ÒÓ× Ô× ÓÛÒ Ò ÔÓ×ØÚ ÝÛ ×ØÖ× ØÓ Ø ÐغÀÓÛÚÖ¸ ÚØÓÒ ÓÒÚÒØÓÒ× Ö ØØ ÔÓ×ØÚ ÔØ ÑÒ× Ø ÒÓ× ÑÓÚ×ÙÔ¸ Ò ÔÓ×ØÚ ÝÛ ÑÒ× ØÙÖÒÒ ØÓ Ø Öغ ÁØ × Ù×ØÓÑÖÝ ÓÖ ÔÓ×ØÚÖÓÐÐ ØÓ ÑÒ ØØ Ø ÖØ ÛÒ Ô׸ Û Ö× ÛØ Ø ÓÙÖ ÓÒÚÒØÓÒº ÁÒÚØÓÒ ÓÒÚÒØÓÒ׸ Ø ÖØÓÒ× Ó Ø Ü Ò Ý Ü× Ö ÖÚÖ׸ ÛØ ØܹÜ× ÔÓÒØÒ ÖØÛÖ Ò Ø Ý ¹Ü× ÔÓÒØÒ ÓÛÒÛÖºGrafika Komputerowa – p. 12


Yaw, Pitch, and RollR = 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 pM 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 pc p = cosθ p , etc.Grafika Komputerowa – p. 13


Ewentualne problemy interpolacjiInterpolacja 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 lockinterpolacja od (0 ◦ ,0 ◦ ,0 ◦ ) do (90 ◦ ,−90 ◦ ,−90 ◦ )pozycja pośrednia (45 ◦ ,−45 ◦ ,−45 ◦ )Grafika Komputerowa – p. 14


Animacja Orientacji. KwaternionyObró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 0q = (cos(θ/2),sin(θ/2)u 1 ,sin(θ/2)u 2 sin(θ/2)u 3 )R θ = R θ+360 ◦ ⇒ −q ∼ qGrafika Komputerowa – p. 15


Ciało kwaternionów Qq = 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ładyq α = √ 22 + √ 22 j, q β = √ 22 + √ 22 k, q γ = 2q α ±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 obrotyTwierdzenie 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 ∈ RRv = qvq −1 Grafika Komputerowa – p. 18


Kwaternion a macierz obrotuq → M R :i ↦→ qiq −1 , j ↦→ qjq −1 , k ↦→ qkq −1 ,M R =⎛q0 2 +q2 1 −q2 2 −q2 32q 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 32q 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 = 4q 2 2 −1, 2m 3,3 −TrM = 4q 2 3 −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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!