tartalom szam´ ´ıt og´ epes...

12
Sz´ am´ ıt´ og´ epes Grafika Valasek G´ abor [email protected] otv ¨ os Lor ´ and Tudom´ anyegyetem Informatikai Kar 2011/2012. ˝ oszi f ´ el´ ev Tartalom Anim ´ aci ´ o ´ Attekint ´ es Anim ´ aci ´ o szint ´ ezis Kamera anim ´ aci ´ o Poz´ ıci ´ es orient ´ aci ´ o eplet anim ´ aci ´ o Kulcskocka anim´ aci ´ o alya anim´ aci ´ o Hierachikus rendszerek El˝ orehalad ´ o kinematika Inverz kinematika Anim ´ aci ´ o I Sz´ ıntereink ritk ´ an statikusak, k ¨ ul¨ on¨ osen interakt´ ıv alkalmaz ´ asok eset ´ en I Anim ´ aci ´ o: k´ epek egym ´ as ut ´ ani sorozata I Ha el ´ eg gyorsan k¨ ovetik egym ´ ast, akkor folytonos mozg´ as ´ erzete alakul ki (ld. CFF kor´ abban) Hagyom ´ anyos anim´ aci ´ os m ´ odszerek I Minden egyes k´ epkock ´ at k ¨ ul¨ on megrajzolni I Mindent tudunk pontosan ir ´ any´ ıtani I Rendk´ ıv¨ ul munkaig ´ enyes (´ es dr ´ aga) I Cel animation I etegek (layerek) haszn´ alata, ´ ujrahaszn ´ alhat ´ of´ oli ´ akon a sz´ ınt ´ er egyes r´ eszei I Kulcskereteket (keyframe-eket) rajzolj´ ak a f ˝ o rajzol´ ok, az ´ atmenetek ´ ert (inbetween) a ”fiatalabbak” felel ˝ osek (a megadott utas´ ıt´ asoknak megfelel ˝ oen) I De: ha minden mozog a h´ att ´ erben ez is elk´ epeszt ˝ oen munkaig ´ enyes (´ es dr ´ aga: pl. The Wings of Honneamise)...

Upload: others

Post on 22-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Szamıtogepes Grafika

Valasek [email protected]

Eotvos Lorand TudomanyegyetemInformatikai Kar

2011/2012. oszi felev

Tartalom

AnimacioAttekintesAnimacio szintezisKamera animacioPozıcio es orientacioKeplet animacioKulcskocka animacioPalya animacioHierachikus rendszerekElorehalado kinematikaInverz kinematika

Animacio

I Szıntereink ritkan statikusak, kulonosen interaktıvalkalmazasok eseten

I Animacio: kepek egymas utani sorozataI Ha eleg gyorsan kovetik egymast, akkor folytonos mozgas

erzete alakul ki (ld. CFF korabban)

Hagyomanyos animacios modszerek

I Minden egyes kepkockat kulon megrajzolniI Mindent tudunk pontosan iranyıtaniI Rendkıvul munkaigenyes (es draga)

I Cel animationI Retegek (layerek) hasznalata, ujrahasznalhato foliakon a

szınter egyes reszeiI Kulcskereteket (keyframe-eket) rajzoljak a fo rajzolok, az

atmenetekert (inbetween) a ”fiatalabbak” felelosek (amegadott utasıtasoknak megfeleloen)

I De: ha minden mozog a hatterben ez is elkepesztoenmunkaigenyes (es draga: pl. The Wings of Honneamise)...

Page 2: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Hagyomanyos animacios modszerek

I Tovabbi erdekessegek: ”Principles of Traditional AnimationApplied to 3D Computer”, SIGGRAPH’87, pp. 35-44.

Szamıtogeppel segıtett animacio

I Kulcskeret (keyframe) alapu animacioI A koztes animacios fazisok elkeszıtesenek automatizalasa:

”csak” a kulcskeret kepkockakat kell elkepszıteni esmegadni a kıvant atmenetek parametereit

I Rugalmas, kevesbe munkaigenyes de meg mindig komolykepzettseget igenyel (ujakat is)

I Proceduralis animacioI A mozgas algoritmikus leırasaI Peldaul pattogo labda magassaga az ido (t) fuggvenyeben:

m(t) = |sin(ωt + θ0)|e−kt

Szamıtogeppel segıtett animacio

I Fizikai alapu animacioI A szınterunk elemeit fizikai jellemzokkel latjuk el (tomeg,

erok, rugalmassag stb.)I A fizikai torvenyei alapjan felırt egyenletek megoldasakent

eloall az animacioI Realisztikus (ha jol csinaljuk), de nehez iranyıtani

I Motion captureI Muszerekkel rogzıteni amint valaki/valami elvegzi a kıvant

mozgasokat majd ezt egy digitalis modellre atultetni

Mit animalhatunk?

I Lenyegeben barmit, ami befolyasolja a megjeleno kepet aszınterrol (modellek pozıcoja, orientacioja, szıne,reprezentaciohoz kotodo tulajdonsagai, BRDF stb.)

I Elsosorban a modell es kamera transzformaciokkalfoglalkozunk most csak

I A feladatunk ezeknek a parametereknek idotol fuggovetetele

Page 3: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Animacio szintezis

I Legyen minden o objetumra a modellezesi (vilag)transzformacio Mo ∈ R4×4

I Legyen a nezeti (kamera) transzformacio: V ∈ R4×4

I Megjegyzes: ha V a View matrix, akkor csak a kamerapoziciojat, orientaciojat tartalmazza; ha V a View es aProjection egyutt, akkor tudjuk vele a latoszoget is allıtani

I Legyen mindketto az ido fuggvenye!I Mo ∈ R→ R4×4

I V ∈ R→ R4×4

Altalanos animacios program vaza

whi le keep running :t = ge t t ime ( )f o r o i n ob jec ts :

Mo = Mo(t)V = V (t)render scene ( )

Animacio szintezis

I Valosideju/interaktıv:I rogton meg is jelenıtjuk a kepkockakatI a szamıtasnak eleg gyorsnak kell lennie a folytonossag

latszatahozI a felhasznaloi esemenyekre reagalni kellI ⇒ olyan reszletgazdag lehet a szınter, amit meg ıgy meg

lehet jelenıteniI ⇒ inkrementalis kepszintezist hasznalunk

Valosideju animacios program vaza

def update ( ) :# FrameUpdate ( ) / UpdateScene ( )t = ge t t ime ( )f o r o i n ob jec ts :

Mo = Mo(t)V = V (t)

def render ( ) :# Render ( ) / DrawScene ( )f o r o i n ob jec ts :

rende r ob jec t ( o )

Page 4: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Animacio szintezis

I Nem valos ideju/offline:I ”Nem szamıt”, hogy mennyi ideig tart kiszamıtani egy

kepkockatI Elkulonol a szintezis es a visszajatszas

I Eloszor elmentjuk a kepkockakatI Aztan majd videokent lehet visszanezni

I ⇒ a felhasznalo nem tud belenyulni az animaciobaI ⇒ olyan reszletes szınteret, es olyan bonyolult algoritmust

hasznalunk, amit ki tudunk varniI Azert a koltsegvetes keretet szab: Final Fantasy: Spirits

Within (2001), egy 200 fos csapat 4 eves munkaja volt (kb.120 emberev osszesıtve), aminek elkeszıtesere 960munkaallomast hasznaltak. A film 141964 frame-bol alltvegul (15TB), egy frame atlagosan 90 percig renderelotott!

Offline rendering

∆ t = 1 /FPSf o r ( t = t s t a r t ; t<t end ; t +=∆ t ) :

f o r o i n ob jec ts :Mo = Mo(t)

V = V (t)render scene to d i sk ( )

s t a r t t i m e = ge t t ime ( )f o r ( t = t s t a r t ; t<t end ; t +=∆ t ) :

draw frame ( t )wh i le ( t− t s t a r t +∆ t > ge t t ime ()− s t a r t t i m e ) :

wa i t ( )

Valosideju animacio – rosszul

I Hogyan lehet a legkonnyebben elrontani az animacioszamıtast?

I Azzal, ha nem vesszuk figyelembe, hogy mennyi ido telt elket kepkocka kozott.

I Pl.: A kozeppontja korul akarjuk forgatni az objektumotallando szogsebesseggel.model = rotation(phi, 0,1,0); phi +=phi step;

I Az objektum olyan gyorsan fog forogni, amilyengyakorisaggal ez a kod reszlet meghıvodik.

I Gyorsabb gepen tobbszor, lassabb gepen kevesebbszer -es semmi sem garantalja, hogy ugyanazon a gepen kethıvas kozott egyaltalan ugyanannyi ido telne el!

Valosideju animacio – jol

I Hogyal lehet a legkonnyebben ezt megelozni?I Sose azt taroljuk, hogy mennyivel kell valtoztatni, hanem,

hogy mi a valtozas sebessege.I Minden szamıtas elott kerjuk le, hogy mennyi ido telt el az

elozo kepkocka ota, es ezzel szorozzuk a sebesseget.I Pl.: phi += phi step; helyett phi +=get time since last frame() * phi speed;

I Gyorsabb gepen kevesebb, lassabb gepen tobb ido telik elket kepkocka kozott⇒ gyors gepen kisebbeket lepunk,lassabban nagyobbakat - es a ”lotyoges” sem szamıt(hıvasok kozott eltelt ido valtozasa)

Page 5: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Kamera animacio

I A kamera tulajdonsagai:I szempozicio (eye),I egy pont amire nez (center),I felfele iranyt megado vektor (up),I a kepernyo/ablak oldal aranya (aspect),I nyılasszog (fovy).

I Ezek mind kulon-kulon valtoztathatok az animacioletrehozasahoz.

I Peldaul a szempozıciot a mult oran latott parametrikusgorbekkel is megadhatjuk, ahol a parameter az ido lesz!Pl. a-bol b-be 5 masodperc alatt a p(t) = (1− t

5)a + t5b,

ha t masodpercekben adott es t = 0-ban indulunk a-bol

Pozıcio es orientacio

I Pozıco: ”Hol van az objektum?”I Orientacio: ”Hogy all, merrefele nez az objektum?”I Elsosorban ezt a kettot szeretnenk valtoztatni.I Mo(t) megadja mindkettot.I Normalis esetben

Mo(t) =

A11 A12 A13 pxA21 A22 A23 pyA31 A32 A33 pz0 0 0 1

,I p = (px ,py ,pz) a pozıcio.I Az A matrix tartalmazza az orientaciot.

Orientacios parameterek

I Tegyuk p-t es A-t is idofuggove!I p tagjait leırhatjuk kulun-kulon fuggvennyel.I Pl.: Valami esik, eleg py -t valtoztatni.I A tagjai osszefuggenek, es csak az orentacio erdekel

belole minket (nem erdekel: meretezes, nyıras).I Az orientacio megadhato harom tengely menti forgatassal→ harom fuggetlen fuggvennyel.

Yaw, pitch, roll

I Egy objektum fuggoleges- (yaw), kereszt- (pitch) eshossztengelye (roll) menti elfordulasait egyszerre adjukmeg.

I Mar talalkoztunk vele, 3× 3-as matrixszal megadhato,harom forgatas szorzata.

I Harom tengely menti elfordulas szogevel megadhato⇒megadja az orientaciot is.

I Tetszoleges orientacio megadhato vele, de animacionalvigyazzunk, mert...

Page 6: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

”How about sending me a fourth gimbal forChristmas?” - Mike Collins, az Apollo 11 pilotaja

Gimbal lock

Keplet animacio

I Egy adott tulajdonsag valtozasat egy megfelelofuggvennyel ırjuk le.

I Pl: Ora mutatoiI Nagymutato: yaw(t) = t/10I Kismutato: yaw(t) = t/120I Ha t-t mp-ben adjuk meg, a forgatasokat pedig fokban.

I Pl: Pattogo labdaI py (t) = |sin(ωt + θ0)| · e−kt

Kulcskocka (key frame) animacio

I Egy bonyolult mozgast nehezkes lenne keplettel megadni.I Inkabb adjuk csak bizonyos idokozonkent, hogy akkor mit

szeretnenk latni.I Ezek a kulcskockak.I Egy tulajdonsagot ket kulcskocka kozott interpolacioval

szamolunk ki.

Page 7: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Kulcskocka (key frame) animacio

I Az interpolacioval az objektum egyes parametereirefolytonos gorbet illesztunk.

I Az animacio lejatszasa/elmentese soran a programminden kepkockaban a hozza tartozo t ertekkel kiertekeliaz objektum parameter-fuggvenyeit.

I Ezekbol szamıtja a transzformacios matrixokat.I A matrixok felhasznalasval eloallıtja a kepet.

Linearis interpolacio (emlekezteto)

I Legyen a ket kulcskockank idopontja t0 es t1.I Legyen az interpolalando tulajdonsag g.I Linearis interpolacioval ∀t ∈ [t0, t1]-re kapjuk

g(t) =

(1− t − t0

t1 − t0

)g(t0) +

t − t0t1 − t0

g(t1)

Linearis es gombi linearis interpolacio Interpolacio ket kulcskocka kozott

K: Mi meg a baj a linearis interpolacioval?V: Ritkan nez ki termeszetesen. Animacio soran a sebesseg

konstans, elotte, utana nulla.I Elgurıtott labda: folyamatosan lassul.I Zuhano zongora: folyamatosan gyorsul.I Raketa a Foldrol a Marsra: gyorul, halad, lassıt.

I Ilyen interpolaciora hasznalhatunk:I Gyok fuggvenyt.I Masodfoku fuggvenyt.I ...

I Gyakorlatban: Bezier gorbe

Page 8: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Polinom interpolacio

I n kulcspontra fel tudunk ırni n − 1-ed foku polinomot.I Interpolacios polinom: minden kulcskockaban az eloırt

erteket veszi fel.I Egyutthatok szamıthatok Lagrange interpolacioval is akar

(de: nagy fokszam - nagy ”kilengesek” adatpontok kozottitt is!).

I A linearis interpolacio a Lagrange intelpolacio specialisesete n = 2-re.

Spline interpolacio

I A polinom interpolacioval kapott fv. magas fokszam esetena szomszedos pontok kozott ”hullamzik”, ıgy elrontja azanimaciot.

I Spline interpolacio: hasznaljunk tobb, egymashozkapcsolodo, alacsony fokszamu polinomot azinterpolaciohoz!

Palya animacio

I Egy objektum mozgasat megadhatjuk a bejarando palyamegadasaval is.

I A palyat egy 3D gorbevel adjuk meg.I A model ezen a gorben halad vegig.

Orientacio megadasa

I Hogyan adjuk meg az objetumunk orentaciojat?I Egy elore, es egy felfele irany egyertelmuen meghatarozza

ezt.I Megjegyzes: v.o. kamera eseten center-eye ill. up vektorokI Ha a palyagorbe differencialhato, akkor az megadja a

sebessegvektort minden idopillanatban.I A sebessegvektor mindig elore fele mutat.

Page 9: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Orientacio megadasa

I A felfele irany megadasara ket lehetosegunk is van.I Ha van egy termeszetes felfele, akkor hasznaljuk azt.

(Mindennel, ami nem dol be a kanyarban.)I Ha ez az irany is valtozik, akkor ez megegyezik a

gyorsulas iranyaval, azaz a palyagorbe masodikderivaltjanak iranyaval.

Hierachikus rendszerek

I Szınter grafoknal mar talalkoztunk ilyenekkel.I Egy gyerek objektum mozgasat a szulohoz viszonyıtva

adjuk meg.I Gyerekeknek lehetnek ujabb gyerekei stb.I Hierachikus rendszert – fat – kapunk.

Pelda: Emberi test Kenyszerek (constraints)

I Nem minden mozgast szeretnenk megengedni a szulohozkepest.

I Ezeket a megszorıtasokat ırhatjuk le kenyszerekkel.I Korlatozhatjuk a szabadsagfokokat: pl. konyok csak egy

tengely menten tud forogni, de a csuklo kettoI Vagy a tartomanyokat: kevesen bırjak, ha a fejuk 90◦-nel

tobbet fordul.

Page 10: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Elorehalado kinematika

I Vegallapotot hatarozunk meg az allapotvaltozokfuggvenyeben.

I Szimulaciokhoz jol hasznalhato.I Minden elemre megadjuk, a hozza tartozo transzformaciot.I Ezeket a hierarchiaban felulrol lefele haladva ertekeljuk ki.I Az adott elemhez tartozo transzformacio az osszes os es a

sajat transzformacio szorzata.

Pelda

I Ketszabadsagfoku, rotacios csuklokat tartalmazo rendszer.I A csuklok csak a Z tengely korul fordulnak.

Pelda – folyt.

I Allapotvaltozok: Θ1,Θ2

I A vegberendezes (X ) pozıciojat a gep szamolja.I X = (l1 cos Θ1 + l2 cos(Θ1 + Θ2), l1 sin Θ1 + l2 sin(Θ1 + Θ2))

Pelda – folyt.

I Az allapotvaltozokat megadhatjuk (pl. spline) fuggvennyel.

Page 11: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Pelda – folyt.

I Az allapotvaltozokat megadhatjuk kezdeti ertekkel essebesseggel.

Mit nem tud az elorehalado kinematika?

I Az elorehalado kinematika nem hasznalhato, ha astrukturalis osszefugges erosen nem linearis

I Hiaba interpolalunk egyenletesen az allapotterben, avegberendezes vadul kalimpalhat a kulcspontok kozott

I Probelmas esetek:I Lab mozgasa a talajonI Vegallapot jo, de menet kozben a berendezes reszei

atmehetnek egymason.

Inverz kinematika

I Az inverz kinematika a kritikus vegberendezes helyzetetinterpolalja, majd az allapotvaltozok erteketvegberendezes interpolalt helyzetebol szamıtja vissza.

I Az inverz kinematika masik neve a cel-orientalt animacio.I ”Ezt szeretnem megfogni, hogyan forgassam az

izuleteimet?”

Pelda

I A vegberendezes helyzetebol visszaszamoljuk azallapotvaltozok erteket.

Page 12: Tartalom Szam´ ´ıt og´ epes Grafika´cg.elte.hu/~bsc_cg/EA/RegiFelevek/BSc_EA_12_print.pdfSzam´ ´ıt og´ epes Grafika´ Valasek Gabor´ valasek@inf.elte.hu Eotv¨ os Lor¨

Problemak

I Nehez ”termeszetesnek latszo” mozgast leırni vele.I Az inverz fuggveny kiszamıtasa nem trivialis,I es nem is egyertelmu (redundancia).

Pelda

I Egyenletek szama: 2, ismeretlen valtozok szama: 3⇒Vegtelen sok megoldas!

I Rendszer DOF > vegberendezes DOFI Az emberi csontvaz kb 70 DOF!

Pelda

Nem egyertelmu, ill. nem letezo megoldas