Animáció Szirmay-Kalos László.

Slides:



Advertisements
Hasonló előadás
Animáció Szirmay-Kalos László. Animáció = időfüggés T1(t)T1(t) T2(t)T2(t) TV(t)TV(t) Transzformációk alak szín megjelenítési attribútumok, stb.
Advertisements

Animáció Szirmay-Kalos László.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010
1 Üveges állapot Vázlat l Hőmérsékletváltozás, átren- deződés l T g meghatározás módszerei  fajtérfogat  fajhő  mechanika l T g értékét meghatározó.
Lorem ipsum dolor sit amet, consectetur Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore Közlekedési.
A képzett szakemberekért SZMBK KERETRENDSZER 2.1. előadás.
Manhertz Gábor; Raj Levente Tanársegéd; Tanszéki mérnök Budapesti Műszaki és Gazdaságtudományi Egyetem Mechatronika, Optika és Gépészeti Informatika Tanszék.
NSZFI SZFP Programkoordinációs Iroda Minőségfejlesztési Terület Teljesítményértékelési rendszer A képzett szakemberekért Információgyűjtés.
Az erő def., jele, mértékegysége Az erő mérése Az erő kiszámítása Az erő vektormennyiség Az erő ábrázolása Támadáspont és hatásvonal Két erőhatás mikor.
NSZFI SZFP Programkoordinációs Iroda Minőségfejlesztési Terület NSZFI SZFP Programkoordinációs Iroda Minőségfejlesztési Terület Teljesítményértékelési.
In vivo mozgásvizsgáló rendszerek I.. Vizsgálómódszerek csoportosítása Vizsgálatok élő-halott szöveteken:ENGEDÉLYKÖTELES Vizsgálat módja szerint:  In.
KÉPZŐ- ÉS IPARMŰVÉSZET ISMERETEK ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA (középszintű) május-június.
Geometriai transzformációk
3. tétel.
Frekvencia függvényében változó jellemzők mérése
Becslés gyakorlat november 3.
Áramlástani alapok évfolyam
Általános célú számítások a GPU-n
Komplex természettudomány 9.évfolyam
A mozgás kinematikai jellemzői
Végeselemes modellezés matematikai alapjai
A KINOVEA mozgáselemző rendszer használata
Komplex természettudomány 9.évfolyam
Levegőtisztaság-védelem 6. előadás
 : a forgásszög az x tengelytől pozitív forgásirányában felmért szög
Kockázat és megbízhatóság
Struktúra predikció ápr. 6.
Végeselemes modellezés matematikai alapjai
Kockázat és megbízhatóság
VákuumTECHNIKAi LABORATÓRIUMI GYAKORLATOK
Komplex természettudomány 9.évfolyam
A naptevékenységi ciklus vizsgálata a zöld koronavonal alapján
Munka és Energia Műszaki fizika alapjai Dr. Giczi Ferenc
Tömör testmodellek globális kapcsolatai
2. Koordináta-rendszerek és transzformációk
Gazdaságstatisztika Korreláció- és regressziószámítás II.
Molekuladinamika 1. A klasszikus molekuladinamika alapjai
Pontrendszerek mechanikája
Legfontosabb erő-fajták
Egy test forgómozgást végez, ha minden pontja ugyanazon pont, vagy egyenes körül kering. Például az óriáskerék kabinjai nem forgómozgást végeznek, mert.
KINEMATIKA (MOZGÁSTAN).
OpenGL III.
Szerkezetek Dinamikája
Mi a káosz? Olyan mozgás, mely
? A modell illesztése a kísérleti adatokhoz
Dr. habil. Gulyás Lajos, Ph.D. főiskolai tanár
TÁMOP A pályaorientáció rendszerének tartalmi és módszertani fejlesztése – Életpálya-tanácsadás Csanádi Nikolett Hényel Anett.
Molekuladinamika 3. Alkalmazások A módszer korlátai
A talajok mechanikai tulajdonságai IV.
AVL fák.
Nem mindig az a bonyolult, ami annak látszik azaz geometria feladatok megoldása egy ritkán használt eszköz segítségével Rátz László Vándorgyűlés 2018.
Fényforrások 3. Kisülőlámpák
Tremmel Bálint Gergely ELTE-TTK, környezettudomány MSc
2. A KVANTUMMECHANIKA AXIÓMÁI
Matematikai Analízis elemei
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Játékosított keretrendszerben történő tanulás log-adatainak elemzése
Válassza ki a Blaha Lujza tér végállomásra vonatkozó helyes állítást!
Családi vállalkozások
A tehetetlenség törvénye. A tömeg.
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Az ízület. Az ízület szerkezete, összetartó tényezői, az ízületekben lehetséges mozgások.
Bevezetés Tematika Számonkérés Irodalom
Vektorok © Vidra Gábor,
A geometriai transzformációk
Várhatóérték, szórás
Algoritmusok.
„Mi a pálya?”.
Hagyományos megjelenítés
A T-spline felületreprezentáció
Előadás másolata:

Animáció Szirmay-Kalos László

Animáció = időfüggés T1(t) TV(t) T2(t) Transzformációk alak szín megjelenítési attribútumok, stb

Valós idejű animáció Óra inicializálás (tstart) do t = Óra leolvasás Legalább 15 ciklus másodpercenként Óra inicializálás (tstart) do t = Óra leolvasás for each object o: modellezési transzf TM, o = TM, o(t) Nézeti transzformáció: TV = TV(t) Képszintézis while (t < tend)

Valószerű mozgás Fizikai törvények: Fiziológiai törvények Newton törvény ütközés detektálás és válasz: impulzus megmaradás Fiziológiai törvények csontváz nem szakad szét meghatározott szabadságfokú ízületek bőr rugalmasan követi a csontokat Energiafelhasználás minimuma

Newton törvény m d2 F/m = r dt2 = rL d2 TM(t) dt2 r(t) = rL TM(t) Az erő rugalmas mechanizmuson keresztül hat, azaz folytonosan változik TM(t) C2 folytonos

TM(t): Mozgástervezés Követelmény: ált. C2 , néha (C1,C0) folytonosság Mátrixelemek nem függetlenek Tervezés független paraméterek terében pozíció: px, py, pz orientáció: , ,  skálázás: sx, sy, sz p(t) TM(t)= sx sy sz 1 cos sin -sin cos 1 cos -sin 1 sin cos 1 px, py, pz, 1 1 cos sin -sin cos

Mozgástervezés a paramétertérben p(t) elemei ált. C2 , néha (C1,C0) folytonosak p(t) elemeinek a definíciója: görbével direkt módon (spline) képlettel: script animation kulcsokból interpolációval: keyframe animation görbével indirekt módon: path animation mechanikai modellből az erők alapján: physical animation mérésekből: motion capture animation

Keyframe animáció 5.key 4.key 2.key 1. key 3.key

Keyframe animáció görbéi

Görbék megváltoztatása

Interpoláció: 3-d rendű spline ri(t) = ai t3 + bi t2 + cit 1 + di ri(ti) = ri, ri(ti+1) = ri+1 ri’(ti) = vi ri’(ti+1) = vi+1 vi vi+1 Ismeretlen vi -k meghatározása: C2 folytonosság követelményéből: spline ri’’(ti+1)= ri+1’’(ti+1) + sebesség a kezdő és végpontban Tervezési paraméterek alapján: Kohanek-Bartels, Catmull-Rom ri+1 r1 rn r0 ri t0 t1 ti ti+1 tn

Kohanek-Bartels (Catmull-Rom) „spline”  = -1 ri+1  = 0 Catmull-Rom  = 1 ri-1 rn vi r0 ri (1-) tension paraméter t0 ti-1 ti ti+1 tn ri+1 - ri ri - ri-1 1 2 vi = + =0.9 =0.1 ti+1 - ti ti - ti-1 =0.5 (1-) 

Keyframe animáció

Pálya (path) animáció t = spline paraméter vagy az ívhossz lokális modellezési transzf: y = fix z = görbe der. x = vektor  t = spline paraméter vagy az ívhossz

Pálya animáció: Transzformáció ym r(t) görbe: xm xm0(t) 0 ym0(t) 0 zm0(t) 0 r(t) 1 TM = r(t) zm Explicit up vektor Frenet keretek: zm = r’(t) zm = r’(t) xm = z  up xm = r’(t)  r’’(t) ym = z  x ym = z  x A függőleges, amerre az erő hat

Ívhossz szerinti mozgás ds ívhossz dz = dz/du ·du r(u) görbe: u s(u) =  (dx/du)2 +(dy/du)2 +(dz/du)2 du s(u) Ívhossz szerinti mozgás Megtett út-idő függvény: s(u) = f(t), például a·t u = s-1(f(t)) r = r(u) u f(t) t

Pálya animáció

Fizikai animáció Erők (gravitáció, turbulencia stb.) Tömeg, tehetetlenségi nyomaték (F = ma) Ütközés detektálás (metszéspontszámítás) Ütközés válasz rugók, ha közel vannak impulzus megmaradás alapján

Egy kis mechanika dr/dt = v dv/dt = F(r,v,t)/m -n(v·n) ÜtközésDetektál F(r,v,t) erő m sugár: r+v·t v dr/dt = v dv/dt = F(r,v,t)/m metszés: t* Ha t* < dt Collision for( t = 0; t < T; t += dt) { F = Erők számítása a = F/m v += a ·dt if ( ÜtközésDetektál ) ÜtközésVálasz r += v ·dt } ÜtközésVálasz n = CollisionNormal v’ v -n(v·n) v’ = [v - n(v·n)]-[n(v·n)·bounce]

Folytonos-Diszkrét ütközés detektálás pontra és féltérre n ·(r - r0) > 0 r(ti) sugár: r+v·t v n ·(r - r0) = 0 metszés: t* Ha t* < dt Collision r(ti+1) n ·(r - r0) < 0

Ütközés detektálás háromszög-háromszög gyorsítás: befoglalók O(n2)

Real-time fizikai animáció Konyha Zoltán (autoszimulátor)

Karakter animáció rL rw rw = rL · Rkéz·Talkar·Rkönyök·Tfelkar·Rváll·Tgerinc·Tember homogén koordináta 4-es

2D csont l  px,py x, y, 1 cos sin 0 1 0 0 0 1 0 0 l 1 -sin cos 0 1 0 0 0 1 0 0 l 1 cos sin 0 -sin cos 0 0 0 1 1 0 0 0 1 0 px py 1

Robot példa Robot T0 T1, T2, T3 T0 = robot előrehalad Head Torso Leg1 Leg2 Arm1 Arm2 T0 = robot előrehalad glTranslatef(xr, yr, zr); T1= kar elhelyése glTranslatef(xv, yv, zv); T2= forgatás glRotatef(angle, 1.0f, 0.0f, 0.0f); T3= skálázás glScalef(1.0f, 4.0f, 1.0f); T2 T1 T0 T3

Robot rajzolás + animáció void DrawRobot(float dt) { xr += vx*dt; yr += vy*dt; zr += vz*dt; glPushMatrix(); glTranslatef(xr, yr, zr); angle += av*dt; if (angle>30 || angle<-30) av*=-1; glColor3f(1, 0, 0); // red glRotatef(angle, 1, 0, 0); glScalef(1, 4, 1); // 1x4x1 cube DrawCube( ); glPopMatrix(); … Másik kéz, lábak, fej, törzs } Robot Arm1 Arm2 Head Torso

„Inverz kinematika” T0 = előrehaladás (forward, up) ??? T2 = forgatás (ang) forward up leg A láb (end effektor) földön legyen és ne csúszkáljon forward += leg * fabs(sin(angNew) - sin(angOld)); up = leg * (1 - cos(angNew));

Csontváz felépítése E = (x, y, z, , , ) end effektor Állapotvektor = egyes ízületek állapota S = (px, py, pz, , , )|i=1..n Strukturális összefüggés: E = F( S )

2 szabadságfokú rendszer 2 l1 l2 S = (1,2) E = (x, y) 1 Strukturális összefüggés: x(1,2) = l1 cos 1 + l2 cos(1 + 2) y(1,2) = l1 sin 1 + l2 sin(1 + 2)

Forward kinematika … S(t) interpolációval E(t) = F ( S(t) ) karakter állapot beállítás: S1, E1 karakter állapot beállítás: S2, E2 … karakter állapot beállítás: Sn, En S(t) interpolációval E(t) = F ( S(t) )

Forward kinematika eredmény

Inverz kinematikával … E(t) interpolációval S = F-1( E(t) ) karakter állapot beállítás: S1, E1 karakter állapot beállítás: S2, E2 … karakter állapot beállítás: Sn, En E(t) interpolációval S = F-1( E(t) )

Inverz kinematika eredmény

Inverz kinematika: S = F-1(E) Az F strukturális függvény általában nem invertálható analitikusan és az inverz nem egyértelmű: ITERATÍV MEGOLDÁS t0-ra E0 , S0 ismert ha Et , St ismert, számítsuk Et+dt = Et+dEt, St+dt = St+dS F  S1 F  Sn Et+dEt = F(St+dS ) = F(St)+ dS1 +…+ dSn F1  S1 F1  Sn dEt,1 dS1 ... Jacobi-mátrix m x n lineáris egyenletrendszer ... ... = ... ... Fm  S1 Fm  Sn dEt,m ... dSn

m x n-es egyenletrendszerek megoldása dEm = Jmxn ·dSn általában n > m Jnxm · dEm = Jnxm Jmxn ·dSn (Jnxm Jmxn)-1 Jnxm ·dEm = dSn T T T T J+ = Jnxm pseudo inverze: a lehetséges megoldásokból egyet választ, amely az állapotvektor változási sebességét minimalizálja

Inverz kinematika megoldás E = E0 , S = S0 for( t = t0; t < T; t += dt ) { S alapján a transzformációs mátrixok előállítása Képszintézis J(S) Jacobi mátrix számítása J+ = J pseudo-inverze E(t+dt) interpolációval (keyframe) dE = E(t+dt) - E(t) dS = J+ ·dE S += dS }

Példa: 2 szabadságfokú rendszer 2 x(1,2) = l1 cos 1 + l2 cos(1 + 2) y(1,2) = l1 sin 1 + l2 sin(1 + 2) l1 l2 1 E = (x, y) S = (1,2) J(1 , 2 ) Jacobi mátrix dx -l1 sin 1 - l2 sin(1 + 2) -l2 sin(1 + 2) d1 = dy l1 cos 1 + l2 cos(1 + 2) l2 cos(1 + 2) d2

Bőrözés

Merev és sima bőrőzés

Példa: sétáló mozgás

Teljes,ciklikus séta

Egyszerű karakteranimáció

Motion Capture animáció

Sztereo látás v1 X1, Y1 c2 P = vrp + X/XMAX u + Y/YMAX v c1 + (P1-c1) · t1 = [x, y, z] c2 + (P2-c2) · t2 = [x, y, z] 6 egyenlet, 5 ismeretlen (x, y, z, t1, t2) Hiba: kitérő egyenesek c1 P1 P2 u1 W = [x, y, z] vrp1 c, u, v, vrp meghatározása: kamera kalibráció

Motion capture eredmény Minden markerre: pozicióadatok x t y z M1 M2 M2 M3 x t y M3 cos=(M3-M2)0 ·(M2-M1)0 tengely: d=(M3-M2) x (M2-M1) M4 t z t

Valóságos és virtuális világok képi illesztése: kamera

Valóságos és virtuális világok képi illesztése Blaskó Gábor

Kamera kalibráció v c (X,Y) (x, y, z) f u (x, y, z)  (X,Y) vrp Ismeretlenek: vrp, f, u, v 3 + 1+2+2 = 8

Kompozitálás Blaskó Gábor