Animáció és szimuláció Jeni László Attila

Slides:



Advertisements
Hasonló előadás
ÉRDEKES PONTOK KINYERÉSE DIGITÁLIS KÉPEKEN. BEVEZETÉS  ALAPPROBLÉMA  Jellemzőpontok detektálása mindkét képen  Kinyert pontok megfeleltetése  Megfeleltetések.
Advertisements

11. évfolyam Rezgések és hullámok
Stacionárius és instacionárius áramlás
Mozgások I Newton - törvényei
Testek egyenes vonalú egyenletesen változó mozgása
I S A A C N E W T O N.
A mozgások leírásával foglalkozik a mozgás okának keresése nélkül
Kalman-féle rendszer definíció
Inkrementális 3D képszintézis
Geometriai modellezé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.
Digitális Domborzat Modellek (DTM)
Regresszió számítás Mérnöki létesítmények ellenőrzése, terveknek megfelelése Geodéziai mérések – pontok helyzete, pontszerű információ Lineáris regresszió.
Előadás 51 Kormányzati politika Államkötvény nélküli eset Az egyensúlyi modellben a kormányzati változók közül 2 exogén, egy endogén, mivel a kormányzat.
Térbeli infinitezimális izometriák
Klasszikus mechanikai kéttestprobléma és merev test szabad mozgása állandó pozitív görbületű sokaságon Kómár Péter témavezető: Dr. Vattay Gábor
Transzformációk kucg.korea.ac.kr.
Ideális kontinuumok kinematikája
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
A folyamatok térben és időben zajlanak: a fizika törvényei
Mérnöki objektumok leírása és elemzése virtuális terekben c. tantárgy Budapesti Műszaki Főiskola Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek.
A GEOMETRIA MODELLEZÉSE
3. Vetületi ábrázolások számítási eljárásai
Folyadékok mozgásjelenségei általában
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
Matematika III. előadások MINB083, MILB083
Mérnöki Fizika II. 3. előadás
Mérnöki Fizika II előadás
Mérnöki Fizika II előadás
Fizika 2. Mozgások Mozgások.
Lineáris transzformáció sajátértékei és sajátvektorai
2D képszintézis és textúrák
Diplomamunka Geometriai invariánsokat interpoláló rekurzívan finomítható felületek Valasek Gábor ELTE IK, 2008.
Geometriai invariánsokat interpoláló rekurzívan finomítható felületek
Alapalakzatok Készítette: Varga Marianna Sáfrán Péter Stadler Kolos.
2. Koordináta-rendszerek és transzformációk
Bevezetés az alakmodellezésbe II. Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar A Műszaki Tervezés Rendszerei 2000/2001 tanév, I.
Turbo Pascal 11..
11. évfolyam Rezgések és hullámok
Optimalizáció modell kalibrációja Adott az M modell, és p a paraméter vektora. Hogyan állítsuk be p -t hogy a modell kimenete az x bemenő adatokon a legjobban.
Mechanika KINEMATIKA: Mozgások leírása DINAMIKA: a mozgás oka erőhatás
A differenciálszámtás alapjai Készítette : Scharle Miklósné
Mechanika KINEMATIKA: Mozgások leírása DINAMIKA: a mozgás oka erőhatás
Animáció Szirmay-Kalos László.
Szemcsés rendszerek statikája Tibély Gergely X. 26.
2.2. Az egyenes és a sík egyenlete
Adamkó Attila UML2 Adamkó Attila
Táblázatok.
Egyenes vonalú mozgások
A forgómozgás és a haladó mozgás dinamikája
Merev test egyensúlyának vizsgálata
2. előadás.
N-Body probléma Két test közötti gravitációs erő m_i, m_j : tömeg r_ij : az i testből a j testbe mutató vektor G : gravitációs állandó Eredő erő: a túlzott.
Készült a HEFOP P /1.0 projekt keretében
A mozgás egy E irányú egyenletesen gyorsuló mozgás és a B-re merőleges síkban lezajló ciklois mozgás szuperpoziciója. Ennek igazolására először a nagyobb.
A HATÁROZOTT INTEGRÁL FOGALMA
Erőhatás, erő -Az erő fogalma-.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Variációs elvek (extremális = min-max elvek) a fizikában
Hibaszámítás Gräff József 2014 MechatrSzim.
Kontinuum modellek 1.  Bevezetés a kontinuum modellekbe  Numerikus számolás alapjai.
Stacionárius és instacionárius áramlás
Stacionárius és instacionárius áramlás
11. évfolyam Rezgések és hullámok
Munkagazdaságtani feladatok
Munkagazdaságtani feladatok
Munkagazdaságtani feladatok 3
Előadás másolata:

Animáció és szimuláció Jeni László Attila

Animáció - szimuláció Animáció A színtér objektumainak módosítása az idő függvényében, a beállított mozgásoknak megfelelően. Szimuláció Annak meghatározása, hogy hogyan viselkednek az objektumok az idő függvényében a fizikai törvényeknek megfelelően.

Animáció Az animáció célja a valószerű mozgás létrehozása Akkor valószerű a mozgás, ha kielégíti a természet törvényeit (Newtoni dinamika) A mozgás a transzformációs mátrixok elemeinek időbeli változását jelenti Pozíció-orientáció mátrixok interpolációja A mozgásgörbék megadásának több lehetősége is van

Pozíció-orientáció mátrixok Tetszőleges pozíció és orientáció megadható a következő mátrixszal: A q vektor a pozíciót, az A 3x3 pedig az orientációt határozza meg A q vektor elemeit függetlenül vezérelhetjük, a mátrix elemeit viszont nem, mert azok összefüggőek Megoldás: a mátrix helyett orientációs paramétereket interpolálunk

Orientációs paraméterek Használhatjuk az orientáció jellemzéséhez a csavaró- billenő-forduló szögeket Ezeket megadhatjuk a tengelyek körüli adott szöggel történő elforgatással Így végül a mozgás függetlenül vezérelhető paraméterei: Az animáció során interpoláljuk a paramétereket és a köztes értékekből kiszámítjuk az aktuális modellezési transzformációt

Kamera animáció A kamera animáció bonyolultabb, mert több paraméter tartozik hozzá: eye: szempozíció lookat: a pont, amely felé néz a kamera up: az ablak függőleges iránya fov: a függőleges látószög aspect: az ablak szélességének-magasságának aránya f p,b p : az első és hátsó vágósíkok Ezek egymástól függetlenül vezérelhetőek, így a kamera paramétervektora: A paraméter aktuális értékeiből számítjuk a nézeti transzformációs mátrixot

Mozgásgörbék megadása Spline animáció Képletanimáció (script animation) Kulcskocka animáció (keyframe animation) Pálya animáció (path animation) Fizikai animáció Mozgáskövető animáció (motion capture)

Spline animáció Az egyes paraméter-idő függvényeket 2d-s görbékkel adjuk meg A folytonossági és a lokális vezérelhetőségi igények miatt ezeket általában spline-ok segítségével definiáljuk

Képletanimáció A paraméter-idő függvényeket közvetlenül az algebrai alakjukkal adjuk meg Akkor célszerű alkalmazni, ha a mozgás viszonylag egyszerű Például Egy óra mutatóinak mozgatása Egy pattogó labda mozgásának leírása Abs(sin(  t+  0 ))*e -kt

Kulcskocka animáció Itt a mozgástervezés a kulcspontok felvételével kezdődik A felhasználó megad egy t 1, t 2, …, t n idősorozatot és elhelyezi a mozgatandó objektumot a színtéren ezekben az időpontokban A t i időpontban beállított elrendezés az objektum paramétereire egy kulcspontot határoz meg

Kulcskocka animáció Ezeket a kulcspontokat felhasználva a program az objektum paramétereire egy-egy folytonos görbét illeszt Az animációs fázisban a program az aktuális idő szerint mintavételezi a paraméter-függvényeket A paraméterekből kiszámítja a transzformációs mátrixokat Végül a transzformációs mátrixok felhasználásával előállítja a képet

Interpolálás a kulcspontok közt Adottak a kulcspontok: Keresünk egy olyan görbét, amely az adott időpillanatokban a kulcspontok paramétereit veszi fel:

Lineáris intepolálás Egy egyszerű probléma: Az első két pont közti lineáris interpolációra: Innen adódik a teljes görbének az x koordinátája az idő függvényében: Diff-ható?

Spline interpoláció A kis fokszámú Lagrange polinomok megfelelőek, de a fokszám növelésével a kulcspontok közt egyre jobban „ugrál” a görbe 8-adfokú polinom

Spline interpoláció A spline interpoláció sokkal szebb interpolációt eredményez 8-adfokú polinomsplinespline vs. polinom

Probléma a spline-al Figyelni kell a „mellékhatásokra”! A spline interpolációnál is előfordulhat olyan eset, ami nem felel meg a fizikai valóságnak:

Spline interpolációs módszerek Hermite-interpoláció A vonal kezdő és végpontját kell megadni és hozzá két érintővektort Problémás módosítani a pontokat, mert meg kell adni újra az érintőket Catmull-Rom spline Az általános Hermit spline egy formája Érintők helyett a kezdőpont előtti és a végpont utáni pontok megadása szükséges Lokálisan vezérelhető Kochanek-Bartels spline A Catmull-Rom általános esete, ahol minden kulcsponthoz bevezetünk még három kontroll értéket: Feszültség: milyen élesen kanyarodjon a görbe Folytonosság: milyen gyors az irány és sebességváltozás Torzítás: milyen arányban számítson az illeszkedő görbeszegmensek meredeksége a kulcspont meredekségébe

Pálya animáció A mozgást most egyetlen 3d görbével adjuk meg A kiválasztott test a görbe mentén fog végighaladni A görbemodellezés egy p(u) = [ x(u), y(u), z(u) ] függvényt eredményez

Pálya animáció Eddig csak a pozíciót adtuk meg, az orientációt nem Ha differenciáljuk a pályagörbét, akkor megkapjuk a sebességvektort, amely a test eleje felé mutat (és ezzel definiáltuk az orientáció két szabadságfokát) Nincs még megkötve, hogy a haladási irány, mint tengely körül hogyan forduljon el a test. Mondhatjuk, hogy ez a harmadik szabadsági fok mindig legyen a függőleges irány (pl. autóknál) Másik lehetőség viszont, hogy azt „érezzük” függőleges iránynak, amellyel ellentétesen erők hatnak ránk (ezért dőlünk be a kanyarban) A Newton-törvény szerint a gyorsulás iránya megegyezik ezzel, ez pedig a görbe második deriváltja lesz.

Hierarchikus rendszer A valódi objektumok gyakran összetettek, több kapcsolt részből, szegmensből állnak Hierarchikus rendszer Egy objektum (gyermek) mozgását egy másikhoz objektumhoz (szülő) viszonyítva adjuk meg Egy gyermek objektum szintén lehet újabb gyermekek szülője A szülő-gyermek kapcsolatok a szegmensek hierarchikus rendszerét alakítják ki

Példa Egy példa: emberi test, mint hierarchikus rendszer A váll a törzs gyermeke, és a felkar szülője A felkar a váll gyermeke és az alkar szülője Ez a hierarchikus rendszer határozza meg az összetett rendszer által végrehajtható mozgásfajtákat

Szegmensek kapcsolódása Az összetett objektum mozgását az egyes szülő-gyermek párok relatív mozgásaival adhatjuk meg Azaz a közöttük lévő ízületek mozgásaival Az egyes ízületek különböző szabadságfokokkal rendelkezhetnek 1 DOF: térd 2 DOF: csukló 3 DOF: felkar

Karakteranimáció A karakterek a merev részekből álló csontozatukat mozgatják A mozgatásnak rendszerint valamilyen célja van, azaz a rendszer valamely pontját (kéz) szeretnénk valamilyen előírt pontig (sörösüveg) és orientációig (a kézbe belesimuljon a sörösüveg) vezérelni. Ennek két módja van: Előrehaladó kinematika Inverz kinematika

Kinematika A kinematika a mozgások leírásával foglalkozik a mozgás okának keresése nélkül. Előrehaladó Meghatározza a végállapotot az állapotváltozók függvényében Szimulációhoz ideális Inverz Kiszámítja az állapotváltozók értékét, amelyek egy adott végállapotot eredményeznek Vezérléshez megfelelő

Előrehaladó kinematika Előrehaladó kinematikánál először a hierarchia tetején álló testet állítjuk be, amely maga után húzza a többi részt is Ezután elrendezzük a felkarokat (amelyek áthelyezik az alkarokat, …) A hierarchiában felülről lefelé haladunk Egy szegmens modellezési transzformációját az összes ős transzformációinak szorzataként kapjuk meg

Példa Kétszabadságfokú, rotációs csuklókat tartalmazó rendszer A csuklók a z-tengely körüli elfordulást engedik meg végberendezés

Példa Az állapotváltozók értéke adott:  1,  2 A számítógép kiszámítja a végberendezés pozícióját végberendezés

Példa Az állapotváltozók értékeit megadhatjuk spline függvényekkel is

Példa Az állapotváltozók értékeit megadhatjuk kezdeti értékekkel és sebességekkel is.

Inverz kinematika Az előrehaladó kinematika nem használható, ha a strukturális összefüggés erősen nem lineáris Hiába interpolálunk egyenletesen az állapottérben, a végberendezés vadul kalimpálhat a kulcspontok között Például Egy karakter lábát a talaj felett előrenyújtjuk Hiába igazítjuk el a szereplőket a mozgás elején és végén úgy, hogy ne ütközzenek egymással, előfordulhat, hogy a karakter lába beleütközik a földbe Az inverz kinematika a kritikus végberendezés helyzetét interpolálja, majd az állapotváltozók értékét végberendezés interpolált helyzetéből számítja vissza. Az inverz kinematika másik neve a cél-orientált animáció

Előrehaladó és inverz kinematika Az előrehaladó és inverz kinematikát hasonlítjuk össze egy láb két kulcskocka közötti animációjával. A végberendezés a bokánál van. A boka pályája inverz kinematikánál egyenes. Az elfordulási szögek viszont az előrehaladó kinematikánál változnak egyenletesen. Inverz kinematikánál tehát a végberendezés útját tervezzük meg.

Példa Ha ismerjük a végberendezés helyzetét, akkor érdemes inverz kinematikát alkalmazni Végberendezés

Példa A végberendezés helyzetéből visszaszámoljuk az állapotváltozók értékét

Mire is használható az IK? Például a karakter meg akar nyomni egy gombot Vagy meg akar tenni egy lépést A karakter-animátor számára ez egy közelítő megoldást jelenthet egy adott fázishoz, amit később finomíthat Próbáljuk meg előrehaladó kinematika segítségével megvalósítani azt, hogy a csáp vége elérje az „A” pontot.

Problémák az IK-val Három fő probléma Nehéz „természetesnek látszó” mozgást leírni vele Az inverz függvény kiszámítása nem triviális És nem is egyértelmű (redundancia) Példa Megfogunk egy stabil tárgyat (kapaszkodó), de ettől még könyökünket, vállunkat, egész testünket mozgathatjuk

Példa Egyenletek száma: 2, ismeretlen változók száma: 3  Végtelen sok megoldás! Rendszer DOF > végberendezés DOF Az emberi csontváz kb 70 DOF!

Példa

Megoldások Analitikus megoldások Bonyolult a nagy DOF miatt Iteratív megoldások Optimalizálás Inkrementális konstrukciók Mátrix invertálás Jacobi-mátrix

Analitikus megoldás Kétcsuklós rendszer analitikus megoldása IK-val 22 11 a1a1 a2a2 O2O2 O1O1 O0O0 x1x1 x0x0 x2x2 y1y1 y2y2 y0y0   (x,y) 22

Problémák: több cél elérése alap vb2 vb1

Problémák: több cél elérése alap vb2 vb1 Cél 1

Problémák: több cél elérése alap vb2 Cél 2 vb1

Problémák: több cél elérése alap vb2 vb1 Cél 1 Cél 2

Problémák: több cél elérése alap vb2 vb1 Cél 1 Cél 2

EK – IK összefoglalás Előrehaladó Feltételeket (állapotváltozókat) specifikál Meghatározza a végállapotot az állapotváltozók függvényében Inverz Kiszámítja az állapotváltozók értékét, amelyek egy adott végállapotot eredményeznek Cél-vezérelt mozgás Nehéz a számítása!

Mozgáskövető animáció A mozgáskövető animáció mozgástervezés helyett méréssel határozza meg a mozgásgörbéket A mérési eljárásban élő karaktereket mozgatunk, amelyeken markereket helyeztünk el A mérés ezen pontok pályáját határozza meg

Példa

Kulcskocka vs Mozgáskövető

Részecske rendszerek A részecskerendszerek jó megoldást jelentenek amorf, dinamikusan változó és folyékony objektumok modellezésére Felhő, füst, víz, robbanás, tűz, …

Reprezentáció Egy objektumot egyszerű részecskék halmazaként definiálhatunk Ez inkább az objektum térfogatát, kiterjedését határozza meg (ellenben egy sokszöggel vagy vonallal) A részecskerendszer egy dinamikus rendszer A részecskék változnak és mozognak az idő függvényében Az objektumok nem determinisztikusak, alakjuk nincs teljesen definiálva

Egy részecskerendszer modellje Új részecskéket generálunk a rendszerbe Minden új részecskéhez hozzárendeljük a hozzá tartozó tulajdonságokat Azokat a részecskéket, amelyek elérték az életciklusuk végét, eltávolítjuk a rendszerből A többi részecskét mozgatjuk és transzformáljuk figyelembe véve a dinamikus tulajdonságaikat Fontos megjegyezni, hogy a részecskék nem hatnak egymásra! A részecskéket ezután kirajzoljuk a frame buffer-be, gyakran speciális algoritmust használva

A részecskék tulajdonságai Hely: a részecske helye a térben Sebesség: a részecske sebessége, amely az eltelt idővel szorozva a helyváltoztatást fejezi ki Gyorsulás: az eltelt idővel szorozva a sebességváltozást adja Tömeg: kifejezi a rendszerben működő erőtér és az adott részecske gyorsulása közti arányt (azaz milyen mértékben áll ellen az erőtér hatásainak) Tömegváltozás: a részecske tömegének változási sebessége (pl a füstrészecskék folyamatosan hűlnek, felhajtóerejük csökken, azaz növekszik a tömegük) Hátralevő élettartam: a részecske haláláig hátralevő idő (pl ezzel szimulálhatjuk azt a jelenséget, hogy a füst, tűz részecskék idővel elenyésznek) Szín: a részecske színe és átlátszósága (RGBA) Színváltozás: a részecske színének változási sebessége (egy lángrészecske születéskor fehér, de ahogy öregszik egyre vörösebb és átlátszóbb lesz) Méret: a részecske mérete (hány pixelen jelenítsük meg) Méretváltozás: a méret változási sebessége

Dinamika A részecske pozíciója egyszerűen adódik a jelenlegi pozíciója és a sebessége összegéből Ezt még módosíthatja az erőtér (pl gravitáció) Továbbá a többi tulajdonság is változhat Ezek a változások lehetnek globálisak és egyediek is

Részecskék kioltása Amikor létrehozzuk a részecskét meghatározzuk az élettartamát (képkockában) Az élettartam minden egyes képkockával csökken, ha elérte a nullát, akkor a részecske kitörölődik a rendszerből Kitörölhetjük azokat a részecskéket is, amelyek már nem befolyásolják jelentősen a képszintézist (pl az átlátszóságuk egy adott határ alatt van)

Részecskék kirajzolása A részecskék elfedhetek más objektumokat, amelyek mögöttük vannak, lehetnek átlátszóak illetve árnyékot is vethetnek Az objektumok lehetnek sokszögek, felületek vagy más részecskék is

Részecske hierarchia Az egyes részecskerendszerek (mint egy önálló részecske) is alkothatnak részecskerendszert A gyermek rendszer megörökölheti a szülő rendszer tulajdonságait Példa Star Trek II: The Wrath of Khan (következő slide) Részecskerendszerek egy tűzfal modellezésére Megváltozik a szülő rendszer, akkor vele változnak a gyermek rendszerek is Ilyen módon sokkal könnyebb a komplex fuzzy rendszerek kezelése is

Star Trek II: The Wrath of Khan

Metaballs Metaball Gömbök, amelyek összeolvadva, összekeveredve egy felületet alkotnak A részecskéket ilyen labda formában reprezentálva foltos, pacás felületeket lehet létrehozni

Metaballs

Lágy testek Részecskerendszerrel eldeformálhatjuk egy objektum felületét

Felhasználási lehetőségek

Fejlettebb „részecskerendszerek”

Vége