simulacija fizickih interakcija u 2d prostoru...centara bude manja od zbira njihovih poluprecnikaˇ...

33
Simulacija fiziˇ ckih interakcija u 2D prostoru David Davidovi´ c Matematiˇ cka gimnazija NEDELJA 4 INFORMATIKE 29. mart 2018. Simulacija fiziˇ ckih interakcija u 2D prostoru David Davidovi´ c

Upload: others

Post on 27-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Simulacija fizickih interakcija u 2D prostoru

David Davidovic

Matematicka gimnazijaNEDELJA4

INFORMATIKE

29. mart 2018.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 2: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Ukratko o simulaciji fizike

I Simulacija fizickih zakona racunarski je izuzetno velikaoblast

I U grubim crtama, ove simulacije se dele naI Naucne, u kojima je numericka tacnost najbitnija, i koje se

koriste u prakticnoj fizici, iI Interaktivne, u kojima je najvažnije održati interaktivnost

simulacije, i koje se najcešce koriste u video igramaI Tokom ovog predavanja proci cemo kroz osnovne korake

koji su neophodni za kreiranje interaktivne simulacije fizikeu 2D prostoru

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 3: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Cilj: Sistem kuglica

I Želimo da napravimo simulaciju sudarajucih, identicnihloptica na koje deluje gravitacija, ignorišuci ugaonokretanje

I Loptice su predstavljene kao krugovi u ravni identicnihpoluprecnika

I Želimo da omogucimo lopticama da se sudaraju i odbijajumedusobno

I Želimo da na loptice deluje gravitacijaI Ne želimo da implementiramo ugaono kretanje (spin)

loptica, pa cemo taj fenomen ignorisati

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 4: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Moguca upotreba

I Ovako simuliran sistem loptica se sam po sebi možekoristiti kao aproksimacija fluida

I Uz ispravno iscrtavanje rezultati mogu biti vrlo realniI Generalnije: uz dodatke nekih bitnih elemenata (kao npr.

drugih oblika sem krugova, podrška za momente impulsa iugaono kretanje), ovaj sistem se može koristiti kaojednostavan fizicki engine za 2D video igru

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 5: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Šta je stanje naše simulacije?

I Pre nego što pocnemo diskusiju o algoritmima koje cemokoristiti, moramo se složiti oko toga šta definiše stanjenaše simulacije

I S obzirom na to da ovu simulaciju možemo izvesti bezpojma impulsa, ignorisacemo ga sada

I Neka imamo n loptica. Tada, svaka loptica posedujesledece parametre:

I ~pi – pozicija. Poziciju predstavljamo kao vektor ~pi = (x, y)gde su x i y koordinate loptice.

I ~vi – brzina.I ~ai – ubrzanje.I mi – masa.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 6: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Šta je stanje naše simulacije?

I U našem slucaju, ~ai je uvek konstantno i usmereno je kadole (gravitacija); nemamo drugog ubrzanog kretanja semtoga

I Celokupno stanje naše simulacije je, onda, skup stanjasvih loptica

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 7: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Šta je korak naše simulacije?

I Pošto je naša simulacija interaktivna, ona ce se izvršavatiu diskretnim koracima (frejmovima)

I U svakom frejmu, cilj je da na osnovu trenutnog stanja utrenutku t i nekog datog vremena ∆t izracunamo stanje utrenutku t+ ∆t — ovo se zove “korak” simulacije

I Podkoraci koji su nam neophodni za jedan “korak” su:I Integracija. Na osnovu ubrzanja, racunamo novu brzinu, a

na osnovu brzine, racunamo novu pozicijuI Detekcija sudara. Pronalazimo sve parove loptica koje se

preklapaju (odnosno, sudarile su se).I Simulacija sudara. Racunamo nove vrednosti za stanje

svih loptica koje su se sudarile.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 8: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Iscrtavanje i interaktivnost

I Simulacija ne vredi mnogo ukoliko ne možemo da jevidimo!

I Uz interaktivnu simulaciju fizike uvek postoji i interaktivnoiscrtavanje trenutnog stanja, uz mogucnost uticanja nascenu pomocu nekog ulaza

I Moramo obezbediti harmonican odnos izmedu iscrtavanjascene i simulacije, pa cemo se ukratko pozabaviti i time

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 9: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Integracija: šta želimo da postignemo?

I Potrebna nam je procedura kojom cemo, na osnovuparametara ~vt, ~at i ~pt i datog ∆t izracunati parametre~vt+∆t, ~at+∆t, i ~pt+∆t

I Iako ovo deluje jednostavno, postoje odredeni problemikojih moramo da budemo svesni

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 10: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Naivni pristup: Ojlerova integracija

I Ojlerova integracija je intuitivna metoda koja odmah padana pamet kada je u pitanju ovaj problem:

I loptica.x += loptica.v * dtI loptica.v += loptica.a * dtI Ovo se zove eksplicitna Ojlerova integracija.

I Bolja tacnost bi se dobila kada bi se novoizracunata brzinakoristila za izracunavanje nove pozicije:

I loptica.v += loptica.a * dtI loptica.x += loptica.v * dtI Ovo se zove polu-implicitna ili simplekticka Ojlerova

integracija.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 11: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Problem sa Ojlerovom integracijom

I Tokom jednog ∆t, brzina nije konstantna, jer ubrzanje uticena nju!

I Uprkos tome, prilikom Ojlerove integracije, mi je tretiramokao da jeste, jer za ceo korak dužine ∆t koristimo jednuvrednost za brzinu

I Zbog ovakvog pristupa, naša simulacija vremenomodstupa od idealnih vrednosti

I Ovo može, ali ne mora biti problem — sve zavisi od dužinetipicnog ∆t i reda velicine vrednosti sa kojima radimo

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 12: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Bolji pristup: RK4

I RK4, skraceno od Runge–Kutta metod cetvrtog reda, jemetod integracije koji uzima u obzir vrednost izvodafunkcije u razlicitim trenucima tokom jednog koraka

I U našem slucaju, izvod funkcije pozicije je funkcija brzineI Predstavimo stanje loptice kao S i definišemo funkcijua(t, S) kao ubrzanje u trenutku t za stanje S.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 13: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

RK4 integracija

I Izracunajmo, sada, sledece koeficijente:

k1 = a(t, S) (1)

k2 = a(t+∆t

2, S + ∆t

k1

2) (2)

k3 = a(t+∆t

2, S + ∆t

k2

2) (3)

k4 = a(t+ ∆t, S + ∆tk3) (4)

I Tada preciznu vrednost stanja nakon koraka, S′, možemodobiti kao:

S′ = S +∆t

6(k1 + 2k2 + 2k3 + k4)

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 14: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Zašto je važna efikasna detekcija sudara?

I U ovako simuliranom fizickom sistemu se može dogoditiveliki broj sudara u jednom frejmu

I Ukupan broj sudara je, u najgorem slucaju, O(n2)

I Ipak, u vecini slucajeva, broj sudara u svakom frejmu cebiti dosta niži od teoretskog maksimuma

I Kako sistem mora biti interaktivan, ne sme se previševremena utrošiti na utvrdivanje koji se objekti medusobnosudaraju

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 15: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Preklapanje dva kruga

I Kako bismo proverili bilo kojisudar, moramo da znamo nacinda proverimo da li se dva krugaseku

I Na slici možemo videti da jepotreban i dovoljan uslov za ovoda razdaljina izmedu njihovihcentara bude manja od zbiranjihovih poluprecnika

I Formalno, za loptice sapozicijama ~p1 i ~p2 ipoluprecnicima r1 i r2

respektivno, presek postoji ako isamo ako važi |~p1 − ~p2| < r1 + r2

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 16: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Prvi pokušaj: svaki-sa-svakim

I Logicna ideja je da prodemo kroz sve moguce paroveloptica i proverimo seku li se

I Složenost ovog pristupa je O(n2)

I U vecini slucajeva, ovo je više nego zadovoljavajuce vremeI Ipak, ukoliko postoji mnogo loptica (n je veliko), potrebno je

iskoristiti malo prefinjeniji pristup kako bismo dobilizaodovoljavajuce performanse

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 17: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Bolji pristup: Quadtree

I Quadtree je struktura podataka, korisna za podatke uprostoru (baš kao što su naši), koja omogucava efikasnoubacivanje i brisanje, kao i odgovore na upit “sa kojimobjektima se dati objekat može seci?”

I Quadtree radi tako što rekurzivno particioniše ravan u 4kvadranta, sve dok kvadranti ne budu dovoljno mali (manjiod neke predefinisane, konfigurabilne velicine)

I Ovako dobijena struktura je stablo — loptice se moguubaciti u cvorove ovog stabla u zavisnosti od toga gde seprostorno nalaze

I Tada, loptica A ce moci da se sudara samo sa lopticamakoje se nalaze u cvorovima za kvadrante unutar kojih se Analazi

I Visina ovakvog stabla raste logaritamski sa prostorom uravni koji obuhvata

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 18: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Bolji pristup: Quadtree

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 19: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Quadtree: Insert

I Operaciju ubacivanja loptice A u stablo možemo definisatirekurzivno

I Neka svaki cvor quadtree-a sadrži B, pravougaonik oblasti,i L, listu loptica koje su pridružene njemu

I Kada se ubacuje loptica u cvor, proveravaju se B vrednostiza sva 4 deteta cvora. (Ukoliko cvor nema dece, u pitanjuje list, pa se u njegovo L samo ubacuje A i algoritam jegotov.) Razlikujemo dva disjunktna slucaja:

I Loptica je u potpunosti sadržana u nekom od dece.Pozivamo funkciju rekurzivno za to dete.

I Loptica sece neku od pravih koje dele cvor na 4 dela.Loptica se dodaje u L trenutnog cvora i algoritam je gotov.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 20: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Quadtree: Query

I Operaciju dobijanja skupa kandidata za sudar za lopticu Aiz stabla takode možemo definisati rekurzivno

I Kada se proveravaju kandidati za cvor i lopticu A,razlikujemo dva disjunktna slucaja:

I Ako je cvor list, rezultat je prazan skup u slucaju da A nedodiruje B tog cvora, ili L tog cvora u suprotnom.

I Ako cvor ima decu, rezultat je unija L tog cvora i vrednostifunkcije za sve cvorove decu cije B pravougaonike dodirujeA.

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 21: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Detekcija sudara pomocu quadtree-a

I Kako bismo detektovali sudare, prosto prolazimo kroz sveloptice i za svaku od njih vršimo query operaciju dadobijemo listu kandidata

I Kada imamo listu kandidata trenutnu lopticu Ai, izvršimotest secenja izmedu Ai i svih kandidata

I Kada neka loptica promeni poziciju, obrišemo je izquadtree-a i dodamo ponovo sa novom pozicijom

I Pod uslovom da je scena dinamicna, u proseku sve oveoperacije ce biti linearne u odnosu na visinu stabla

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 22: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Šta se dešava tokom sudara?

I Sa fizicke strane, ovo je veoma kompleksna interakcijaI ...ali, u svrhu jednostavnosti, pretpostavicemo da se

dešavaju samo elasticni sudari izmedu lopticaI Ovo nam omogucava da ne brinemo o raznim detaljima

neelasticnih sudara, i cini lakšim da ignorišemo ugaonokretanje

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 23: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Elasticni sudar u jednoj dimenziji

I Ukoliko se prisetimo zakona održanja impulsa i zakonaodržanja energije, možemo to iskoristiti za izvodenjeformuli koje diktiraju kako se brzine menjaju nakonelasticnog sudara

I Posmatrajmo dve loptice u jednoj dimenziji, masa m1 i m2

respektivno, koje su pre sudara imali brzine ~v1 i ~v2.Oznacimo sa ~v′1 i ~v′2 brzine ovih loptica nakon sudara

I Na osnovu istovetnosti ukupnog impulsa, imamo:

m1 ~v1 +m2 ~v2 = m1~v′1 +m2

~v′2

I Na osnovu istovetnosti ukupne kineticke enrgije, imamo:

m1v21

2+m2v

22

2=m1v

′21

2+m2v

′22

2

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 24: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Elasticni sudar u jednoj dimenziji

I Rešavanjem ovog sistema dobijamo jedino netrivijalnorešenje:

v′1 =v1(m1 −m2) + 2m2v2

m1 +m2(5)

v′2 =v2(m1 −m2) + 2m1v1

m1 +m2(6)

I Primetimo da se samo smerovi brzina menjaju, dok pravciostaju isti (zbog toga što posmatramo jednu dimenziju)

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 25: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Elasticni sudar u dve dimenzije

I Mozemo izracunati normalu itangentu na tacku preseka dvejuloptica (zahvaljujuci kružnomobliku koji smo odabrali, ovo jelako izvesti)

I Kada imamo normalu i tangentu,projektujemo brzine ~v1 i ~v2 nanjih, da dobijemo tangencijalne inormalne komponente za obe

I Nakon toga, samo simuliramojednodimenzionalni elasticnisudar po te dve ose!

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 26: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Zašto je stabilnost važna?

I Stabilnost se odnosi na otpor naše fizicke simulacije nagreške koje poticu od nesavršenih metoda simulacije, ilipredvidivost na globalnom nivou

I Postoje razne metode kojima možemo integrisati fizickikorak i iscrtavanje na ekranu, i svaka ima razlicitekarakteristike stabilnosti

I Stabilnost je bitna, na primer, kod multiplayer igara gde sefizika mora izvršavati lokalno, na racunarima igraca, alimora i ostati ažurna sa fizikom koju racuna server

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 27: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Prvi pokušaj: promenljiv korak

I Ovo je najjednostavniji pristup za sinhronizaciju iscrtanogstanja i fizickog stanja

I Sastoji se u tome da merimo koliko je vremena prošlo odprethodnog frejma i to koristimo kao ∆t za simulaciju:

t1 = current_time_seconds()while true:

t2 = current_time_seconds()dt = t2 - t1t1 = t2

step(state, dt)render(state)

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 28: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Problemi sa promenljivim korakom

I Simulacija je nepredvidiva — rezultati mogu da se izuzetnorazlikuju u zavisnosti od dužine koraka

I Na bržim mašinama, manje ∆t vrednosti ce biti korišceneeI Zbog ovoga, simulacija može da ima razlicit “osecaj” u

zavisnosti od brzine racunara na kome se pokreceI Ozbiljniji problem: ako su ∆t vrednosti dovoljno velike,

možemo imati, na primer, tela koja prolaze kroz druga telaili “eksplodiranje u beskonacnost”

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 29: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Bolji pristup: odvajanje fizike i iscrtavanja

I Glavni problem našeg prethodnog pokušaja je što naše ∆tzavisi od brzine iscrtavanja

I Novi pristup se sastoji u tome da fiksiramo ∆t kako bismoimali predvidivu simulaciju, i konzumiramo vreme ukomadima te velicine:

dt = 1.0 / 60.0a = 0.0t1 = current_time_seconds()while true:

t2 = current_time_seconds()a += t2 - t1t1 = t2

while a >= dt:step(state, dt)a -= dt

render(state)

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 30: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Bolji pristup: odvajanje fizike i iscrtavanja

I Ovaj pristup omogucava da imamo simulaciju koja je uvekista (deterministicka)

I Takode, zbog fiksiranog ∆t, simulacija je predvidivija ilakše se testira

I Jedini problem: šta da radimo sa vremenom koje namostaje u akumulatoru a?

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 31: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Interpolacija

I Ukoliko vreme koje je potrebno da se iscrta frejm nije tacnodeljivo ∆t (a prakticno nikada nije), ostaje nam neko“nesimulirano” vreme na kraju svakog frejma

I Zbog ovoga, na ekranu možemo ponekad videtimilisekundske “zastoje” zbog razlike u broju ∆t koraka kojise svakog frejma izvršavaju

I Rešenje: interpolacija!

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 32: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Interpolacija

I Interpolacija, u ovom kontekstu, se odnosi nakombinovanje dva stanja, S i S′, na osnovu nekeinterpolacione konstante α ∈ [0, 1]

I Definišemo to kao funkciju f(S, S′, α)

I Ideja je da je vrednost funkcije za α = 0 jednaka S, zaα = 1 jednaka S′, a za ostale vrednosti je “kombinacija” tadva stanja

I Generalno, za pozicije loptica na ekranu, možemo koristitilinearnu interpolaciju: f(~p, ~p′, α) = α~p′ + (1− α)~p

Simulacija fizickih interakcija u 2D prostoru David Davidovic

Page 33: Simulacija fizickih interakcija u 2D prostoru...centara bude manja od zbira njihovih poluprecnikaˇ I Formalno, za loptice sa pozicijama p~ 1 i p~ 2 i poluprecnicimaˇ r 1 i r 2 respektivno,

Uvod Intergacija Detekcija sudara Sudari Iscrtavanje i interaktivnost

Interpolacija

I Na osnovu preostalog vremena u akumulatoru, možemointerpolirati izmedu prethodnog i trenutnog fizickog stanja

I Ako definišemo α = a∆t i interpoliramo izmedu prethodnog i

sledeceg stanja sa tim koeficijentom pre iscrtavanja,sredicemo diskontinuitet i “zastoje”:

dt = 1.0 / 60.0a = 0.0t1 = current_time_seconds()

while true:t2 = current_time_seconds()a += t2 - t1t1 = t2

while a >= dt:prevState = statestep(state, dt)a -= dt

alpha = a / dtrender(interpolate(prevState, state, alpha))

Simulacija fizickih interakcija u 2D prostoru David Davidovic