Klár Gergely tremere@elte.hu



Hasonló dokumentumok
Tartalom. Mi az, amit változtatunk? Hajder Levente 2018/2019. I. félév

Hajder Levente 2017/2018. II. félév

Mi az, amit változtatunk?

Tartalom. Kamera animáció. Valasek Gábor Kulcskocka animáció. Hierachikus rendszerek Előrehaladó kinematika Inverz kinematika

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

2014/2015. tavaszi félév

Hajder Levente 2018/2019. II. félév

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Számítógépes geometria (mester kurzus)

Kinematika szeptember Vonatkoztatási rendszerek, koordinátarendszerek

Robotok inverz geometriája

Merev testek mechanikája. Szécsi László

Robotika. Kinematika. Magyar Attila

Diszkréten mintavételezett függvények

Tömegpontok mozgása egyenes mentén, hajítások

Denavit-Hartenberg konvenció alkalmazása térbeli 3DoF nyílt kinematikai láncú hengerkoordinátás és gömbi koordinátás robotra

Matematika III előadás

Eddig csak a polinom x-ben felvett értékét kerestük

Egyenletek, egyenlőtlenségek VII.

MÉSZÁROS JÓZSEFNÉ, NUMERIKUS MÓDSZEREK

A brachistochron probléma megoldása

Valasek Gábor Informatikai Kar. 2016/2017. tavaszi félév

VIK A1 Matematika BOSCH, Hatvan, 5. Gyakorlati anyag

Numerikus integrálás

Numerikus módszerek II. zárthelyi dolgozat, megoldások, 2014/15. I. félév, A. csoport. x 2. c = 3 5, s = 4

Mechanika. Kinematika

Számítógépes Grafika mintafeladatok

Tartalom. Nevezetes affin transzformációk. Valasek Gábor 2016/2017. tavaszi félév

Mozgásmodellezés. Lukovszki Csaba. Navigációs és helyalapú szolgáltatások és alkalmazások (VITMMA07)

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Transzformációk. Szécsi László

Görbe- és felületmodellezés. Szplájnok Felületmodellezés

MODELLEZÉS - SZIMULÁCIÓ

Valasek Gábor

rnök k informatikusoknak 1. FBNxE-1 Klasszikus mechanika

Keresztmetszet másodrendű nyomatékainak meghatározása

Legkisebb négyzetek módszere, Spline interpoláció

Vontatás III. A feladat

GPK M1 (BME) Interpoláció / 16

Lineáris algebra numerikus módszerei

LNM folytonos Az interpoláció Lagrange interpoláció. Lineáris algebra numerikus módszerei

1. ábra. 24B-19 feladat

MATLAB. 6. gyakorlat. Integrálás folytatás, gyakorlás

A bifiláris felfüggesztésű rúd mozgásáról

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Mechanika Kinematika. - Kinematikára: a testek mozgását tanulmányozza anélkül, hogy figyelembe venné a kiváltó

Geometriai modellezés. Szécsi László

A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld ábra ábra

Az ipari robotok definíciója

Egyenletek, egyenlőtlenségek V.

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

Számítógépes Grafika mintafeladatok

Differenciálegyenletek megoldása próbafüggvény-módszerrel

4. gyakorlat: interpolációs és approximációs görbék implementációja

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

A Hamilton-Jacobi-egyenlet

Hajder Levente 2018/2019. II. félév

3D koordináta-rendszerek

Mit nevezünk nehézségi erőnek?

Hajder Levente 2014/2015. tavaszi félév

Matematika II. 1 sin xdx =, 1 cos xdx =, 1 + x 2 dx =

Q 1 D Q 2 (D x) 2 (1.1)

1 Lebegőpontos számábrázolás

Felügyelt önálló tanulás - Analízis III.

1.9. B - SPLINEOK B - SPLINEOK EGZISZTENCIÁJA. numerikus analízis ii. 34. [ a, b] - n legfeljebb n darab gyöke lehet. = r (m 1) n = r m + n 1

Ipari matematika 2. gyakorlófeladatok

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Az elliptikus hengerre írt csavarvonalról

Fizika. Fizika. Nyitray Gergely (PhD) PTE PMMIK február 13.

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

A KLT (Kanade Lucas Tomasi) Feature Tracker Működése (jellegzetes pontok választása és követése)

Matematika II képletek. 1 sin xdx =, cos 2 x dx = sh 2 x dx = 1 + x 2 dx = 1 x. cos xdx =,

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Klár Gergely 2010/2011. tavaszi félév

Vektorok, mátrixok, lineáris egyenletrendszerek

BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Infobionika ROBOTIKA. XI. Előadás. Robot manipulátorok III. Differenciális kinematika. Készült a HEFOP P /1.0 projekt keretében

Példa: Tartó lehajlásfüggvényének meghatározása a Rayleigh Ritz-féle módszer segítségével

Polinomok, Lagrange interpoláció

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Matematika I. Vektorok, egyenesek, síkok

Feladatsor A differenciálgeometria alapja c. kurzus gyakorlatához

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Numerikus matematika vizsga

Matematika szigorlat június 17. Neptun kód:

Határozott integrál és alkalmazásai

Számítási feladatok a Számítógépi geometria órához

Saj at ert ek-probl em ak febru ar 26.

Matematika A2 vizsga mgeoldása június 4.

Mátrixok 2017 Mátrixok

Bevezetés az algebrába 2

Mechatronika segédlet 10. gyakorlat

1. Feladatok a dinamika tárgyköréből

Plakátok, részecskerendszerek. Szécsi László

Matematika 10 Másodfokú egyenletek. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

1. gyakorlat. Egyenletes és egyenletesen változó mozgás. 1. példa

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Átírás:

Számítógépes Grafika Klár Gergely tremere@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2010/2011. őszi félév

Tartalom Animáció 1 Animáció 2 3 4

Animáció Állókép helyett képsorozat Objektumok/kamera/világ tulajdonságait változatjuk Egy kép egy idő pillanat Képsorozat elég gyors Ñ folyamatos mozgást érzékel az emberi szem

Mi az, amit változtatunk? Lehet: pozícó, orientáció, szín, normál, BRDF, stb. Értelme van: pozíció, orientáció, kamera Animációt alkalmazunk: a modellezési transzformációra a kamera transzformációra

Animáció szintézis Legyen minden o objetumra, a modellezési trafó: M o P R 4 4 Legyen a kamera trafó: V P R 4 4 Megjegyzés: ha V a View mátrix, akkor csak a kamera pozicióját, orientációját tartalmazza; ha V a View és a Projection együtt, akkor tudjuk vele a látószöget is állítani Legyen mindkettő idő függő! M o P R Ñ R 4 4 V P R Ñ R 4 4

Általános animációs program váza while keep running : t = g e t t i m e ( ) f o r o i n o b j e c t s : M o = M o ptq V = V ptq render scene ( )

Animáció szintézis Valósidejű/interaktív: rögtön meg is jelenítjük a képkockákat a számításnak elég gyorsnak kell lennie a folytonosság látszatához a felhasználói eseményekre ragálni kell ñ olyan részletgazdag lehet a színtér, amit még így meg lehet jeleníteni ñ inkrementális képszintézist használunk

Valósidejű animációs program váza def update ( ) : # vagy i d l e, vagy onframemove t = g e t t i m e ( ) f o r o i n o b j e c t s : M o = M o ptq V = V ptq def render ( ) : # vagy display, vagy onframerender f o r o i n o b j e c t s : r e n d e r o b j e c t ( o )

Animáció szintézis Nem valós idejű/offline: Nem számít, hogy mennyi ideig tart kiszámítani egy képkockát Elkülönöl a szintézis és a visszajátszás Először elmentjük a képkockákat Aztán majd videóként lehet visszanézni ñ a felhasználó nem tud belenyúlni az animációba ñ olyan részletes színteret, és olyan bonyolult algoritmust használunk, amit ki tudunk várni

Offline rendering t = 1/FPS f o r ( t = t s t a r t ; t <t end ; t += t ) : f o r o i n o b j e c t s : M o = M o ptq V = V ptq r e n d e r s c e n e t o d i s k ( ) s t a r t t i m e = g e t t i m e ( ) f o r ( t = t s t a r t ; t <t end ; t += t ) : draw frame ( t ) while ( t t s t a r t + t > g e t t i m e () s t a r t t i m e ) : wait ( )

Valósidejű animáció rosszul Hogyal lehet a legkönnyebben elrontani az animáció számítást? Azzal, ha nem vesszük figyelembe, hogy mennyi idő telt el két képkocka között. Pl.: A középpontja körül akarjuk forgatni az objektumot állandó szögsebességgel. model = rotation(phi, 0,1,0); phi += phi step; Az objektum olyan gyorsan fog forogni, amilyen gyakorisággal ez a kód részlet meghívódik. Gyorsabb gépen többször, lasabb gépen kevesebbszer.

Valósidejű animáció jól Hogyal lehet a legkönnyebben ezt megelőzni? Sose azt tároljuk, hogy mennyivel kell változtatni, hanem, hogy mi a változás sebessége. Minden számítás előtt kérjük le, hogy mennyi idő telt el az előző képkocka óta, és ezel szorozzuk a sebességet. Pl.: phi += phi step; helyett phi += get time since last frame() * phi speed; Gyorsabb gépen kevesebb, lasabb gépen több idő telik el két képkocka között ñ gyors gépen kissebbeket lépünk, lassabban nagyobbakat.

Tartalom Animáció Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw 1 Animáció 2 Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw 3 4

Kamera animáció Animáció Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw A kamera tulajdonásgai: szempozició (eye), egy pont amire néz (center), felfele irányt megadó vektor (up), a képernyő/ablak oldal aránya (aspect), nyílásszög (fovy). Ezek mind külön-külön változtathatók az animáció létrehozásához.

Pozíció és orientáció Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw Pozícó: Hol van az objektum? Orientáció: Hogy áll, merrefele néz az objektum? Elsősorban ezt a kettőt szerenénk változtatni. M o ptq megadja mindkettőt. Normális esetben M o ptq p pp x, p y, p z q a pozíció. A 11 A 12 A 13 0 A 21 A 22 A 23 0, A 31 A 32 A 33 0 p x p y p z 1 Az A mátrix tartalmazza az orientációt.

Orientációs paraméterek Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw Tegyük p-t és A-t is időfüggővé! p tagjait leírhatjuk külün-külön függvénnyel. Pl.: Valami esik, elég p y -t változtatni. A-t tagjai összefüggenek, és csak az orentáció érdekel belőle minket (nem érdekel: méretezés, nyírás). Az orientáció megadható három tengely menti forgatással Ñ három független függvénnyel.

Yaw, pitch, roll Animáció Kamera animáció Pozíció és orientáció Roll, Pitch, Yaw Egy objektum függőleges- (yaw), kereszt- (pitch) és hossztengelye (roll) menti elfordulásait egyszerre adjuk meg. Már találkoztunk vele, 3 3-as mátrixszal megadható, három forgatás szorzata. Három tengely menti elfordulás szögével megadható ñ megadja az orientációt is.

Tartalom Animáció Képlet animáció Kulcskocka animáció Pálya animáció 1 Animáció 2 3 Képlet animáció Kulcskocka animáció Pálya animáció 4

Képlet animáció Animáció Képlet animáció Kulcskocka animáció Pálya animáció Egy adott tulajdonság változását egy megfelelő függvénnyel írjuk le. Pl: Óra mutatói Nagymutató: yawptq t{10 Kismutató: yawptq t{240 Ha t-t mp-ben adjum meg, a forgatásokat pedig fokban. Pl: Pattogó labda p y ptq sinpωt θ 0 q e kt

Képlet animáció Kulcskocka animáció Pálya animáció Kulcskocka (key frame) animáció Egy bonyolult mozgást nehézkes lenne képlettel megadni. Inkább adjuk csak bizonyos időközönként, hogy akkor mit szeretnénk látni. Ezek a kulcskockák. Egy tulajdonságot két kulcskocka között interpolációval számolunk ki.

Képlet animáció Kulcskocka animáció Pálya animáció Kulcskocka (key frame) animáció Az interpolációval az objektum egyes paramétereire folytonos görbét illesztünk. Az animáció lejátszása/elmentése során a program minden képkockában a hozzá tartozó t értékkel kiértékeli az objektum paraméter-függvényeit. Ezekből számítja a transzformációs mátrixokat. A mátrixok felhasználásval előállíja a képet.

Lineáris interpoláció Képlet animáció Kulcskocka animáció Pálya animáció Legyen a két kulcskockánk időpontja t 0 és t 1. Legyen az interpolálandó tulajdonság g. Lineráis interpolációval @t P rt 0, t 1 s-re kapjuk gptq 1 t t 0 t 1 t 0 gpt 0 q t t 0 t 1 t 0 gpt 1 q

Esettanulmány Animáció Képlet animáció Kulcskocka animáció Pálya animáció

Képlet animáció Kulcskocka animáció Pálya animáció Interpoláció két kulcskocka között K: Mi a baj a lineáris interpolációval? V: Ritkán néz ki természetesen. Animáció során a sebesség konstans, előtte, utána nulla. Elgurított labda: folyamatosan lassul. Zuhanó zongora: folyamatosan gyorsul. Rakéta a Földről a Marsra: gyorul, halad, lassít. Ilyen interpolációra használhatunk: Gyök függvényt. Másodfokú függvényt. Logisztikus függvényt/görbét. Gyakorlatban: Bézier görbe

Polinom interpoláció Képlet animáció Kulcskocka animáció Pálya animáció n kulcspontra fel tudunk írni n 1-ed fokú polinomot. Interpolációs polinom: minden kulcskockában az előírt értéket veszi fel. Együtthatók számíthatók Lagrange intelpolációval. A lineáris interpoláció a Lagrange intelpoláció speciális esete n 2-re.

Spline interpoláció Animáció Képlet animáció Kulcskocka animáció Pálya animáció A polinom interpolációval kapott fv. magas fokszám esetén a szomszédos pontok között hullámzik, így elrontja az animációt. Spline interpoláció: használjunk több, egymáshoz kapcsolódó, alacsony fokszámú polinomot az interpolációhoz!

Pálya animáció Animáció Képlet animáció Kulcskocka animáció Pálya animáció Egy objektum mozgását megadhatjuk a bejárandó pálya megadásával is. A pályát egy 3D görbével adjuk meg. A model ezen a görbén halad végig.

Orientáció megadása Képlet animáció Kulcskocka animáció Pálya animáció Hogyan adjuk meg az objetumunk orentációját? Egy előre, és egy felfele irány egyértelműen meghatározza ezt. Megjegyzés: v.ö. kamera esetén center-eye ill. up vektorok Ha a pályagörbe differenciálható, akkor az megadja a sebességvektort minden időpillanatban. A sebességvektor mindig előre fele mutat.

Orientáció megadása Képlet animáció Kulcskocka animáció Pálya animáció A felfele irány megadására két lehetőségünk is van. Ha van egy természetes felfele, akkor használjuk azt. (Mindennél, ami nem ből be a kanyarban.) Ha ez az irány is változik, akkor ez megegyezik a gyorsulás irányával, azaz a pályagörbe második deriváltjának irányával.

Képlet animáció Kulcskocka animáció Pálya animáció Ívhossz szerinti paraméterezés motiváció Nézzük meg a ez a két görbét! t g 1 ptq t sin t g 2 ptq sin t Képük ugyan az. g 1 ptq? g 2 ptq? Nem! Ha t-vel egyenletesen lépünk, akkor g 1 szerint egyenletes mozgást kapunk, de g 2 szerint hol lassabban, hol gyorsabban haladunk majd a görbén. (De mindkét esetben ugyan azon a pályán!)

Ívhossz szerinti paraméterezés Képlet animáció Kulcskocka animáció Pálya animáció A görbéket úgy kell megadnunk, hogy adott t-szerinti lépéshez mindig azonos ívhosszhoz tartozzon. A görbe hossza egy t 0 ponttól t ig: sptq» t t 0 g 1 pxq dx Ekkor g ívhossz szerinti paraméterezése: ḡprq gps 1 prqq Sajnos s ritkán számítható kényelmesen. (Még Bézier görbékre sem! Ld. püthagoraszi hodográfok)s Numerikus módszereket kell használni, ha általános görbéket meg akarunk engedni.

Állandó sebességű görbék Képlet animáció Kulcskocka animáció Pálya animáció Hogyan lehetne ellenőrizni, hogy legalább állandó sebességet ad-e meg a görbe? gptq pxptq, yptq, zptqq A sebességvektor t pillanatban: g 1 ptq. Ha g 1 ptq nagysága állandó, akkor a sebesség is állandó. Azaz g 1 ptq a px 1 ptqq 2 py 1 ptqq 2 pz 1 ptqq 2 értéke független t-től.

Tartalom Animáció Előrehaladó kinematika Inverz kinematika 1 Animáció 2 3 4 Előrehaladó kinematika Inverz kinematika

Előrehaladó kinematika Inverz kinematika Színtér gráfoknál már találkoztunk ilyenekkel. Egy gyerek objektum mozgását a szülőhöz viszonyítva adjuk meg. Gyerekeknek lehetnek újabb gyerekei, s.i.t. Hierachikus rendszert fát kapunk.

Példa: Emberi test Animáció Előrehaladó kinematika Inverz kinematika

Kényszerek (constraints) Előrehaladó kinematika Inverz kinematika Nem minden mozgást szeretnénk megengedni a szülőhöz képest. Ezeket a megszorításokat írhatjuk le kényszerekkel. Korlátozhatjuk a szabadságfokokat: pl. könyök csak egy tengely mentén tud forogni, de a csukló kettő Vagy a tartományokat: kevesen bírják, ha a fejük 90 -nél többet fordul.

Előrehaladó kinematika Előrehaladó kinematika Inverz kinematika Végállapotot határozunk meg az állapotváltozók függvényében. Szimulációkhoz jól használható. Minden elemre megadjuk, a hozzá tartozó transzformációt. Ezeket a hierarchiában felülről lefele haladva értékeljük ki. Az adott elemhez tartozó transzformáció az összes ős és a saját transzformáció szorzata.

Példa Animáció Előrehaladó kinematika Inverz kinematika Kétszabadságfokú, rotációs csuklókat tartalmazó rendszer. A csuklók csak a Z tengely körül fordulnak.

Példa folyt. Animáció Előrehaladó kinematika Inverz kinematika Állapotváltozók: Θ 1, Θ 2 A végberendezés (X) pozícióját a gép számolja. X pl 1 cos Θ 1 l 2 cospθ 1 Θ 2 q, l 1 sin Θ 1 l 2 sinpθ 1 Θ 2 qq

Példa folyt. Animáció Előrehaladó kinematika Inverz kinematika Az állapotváltozókat megadhatjuk (pl. spline) függvénnyel.

Példa folyt. Animáció Előrehaladó kinematika Inverz kinematika Az állapotváltozókat megadhatjuk kezdeti értékkel és sebességgel.

Előrehaladó kinematika Inverz kinematika Mit nem tud az előrehaladó 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 Probélmás esetek: Láb mozgása a talajon Végállapot jó, de menet közben a berendezés részei átmehetnek egymáson.

Inverz kinematika Animáció Előrehaladó kinematika Inverz kinematika 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ó. Ezt szeretném megfogni, hogyan forgassam az izületeimet?

Példa Animáció Előrehaladó kinematika Inverz kinematika A végberendezés helyzetéből visszaszámoljuk az állapotváltozók értékét.

Problémák Animáció Előrehaladó kinematika Inverz kinematika 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 Animáció Előrehaladó kinematika Inverz kinematika 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 Animáció Előrehaladó kinematika Inverz kinematika Nem egyértelmű, ill. nem létező megoldás