ra cunarska gra ka prostorne strukture...

34
Raˇ cunarska grafika Prostorne strukture podataka Vesna Marinkovi´ c Vesna Marinkovi´ c Raˇ cunarska grafika Prostorne strukture podataka 1 / 34

Upload: others

Post on 09-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Racunarska grafikaProstorne strukture podataka

Vesna Marinkovic

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 1 / 34

Page 2: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Prostorne strukture podataka

Prostorne strukture podataka predstavljaju visedimenziono uopstenjeklasicnih uređenih struktura podataka

Cilj im je smanjenje vremena izvrsavanja upita po cenu povecanjaprostora, pa se nazivaju i ubrzavajuce strukture podataka

Ne postoji najbolja prostorna struktura podataka – razlicite prostornestrukture podataka su pogodne za razlicite upite i razlicite podatke

Njihova primarna primena je za potrebe renderovanja i animacije uracunarskoj grafici; međutim danas se koriste i u drugim oblastima

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 2 / 34

Page 3: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Primer modelovanja koriscenjem oktrija

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 3 / 34

Page 4: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Primer određivanja preseka u animiranoj sceni

Ispitivanje da li se sudar između lopte i kocki desio u tekucem korakusvodi se na racunanje geometrijskog preseka kapsule i kocki

U svakom koraku ispitujemo da li postoji presek ogranicavajucekapsule sa svakom od kocki

Sta ako umesto 3 kocke imamo 3 miliona kocki?

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 4 / 34

Page 5: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Konzervativne metode racunanja preseka

Preseke cak i među jednostavnim oblicima je nekada tesko tacnopredstaviti: npr. presek lopte sa skupom pravougaonika

Upiti preseka se mogu dobiti

preciznim metodama – vracaju kao odgovor tacan geometrijski presekkonzervativnim metodama – vracaju kao odgovor sve primitive kojesadrze preseke

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 5 / 34

Page 6: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Prostorne strukture podataka

BSP stabla

kd stabla

Oktri

Hijerarhija granicnih opsega

Mreza

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 6 / 34

Page 7: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Binarno stablo prostornog particionisanja

Vrsimo rekurzivno binarno particionisanje prostora na konveksnepotprostore

Unutrasnji cvorovi BSP stabla odgovaraju ravnima (ili pravama u 2D)razdvajanja, a listovi potprostorima

Iako svi listovi predstavljaju konveksne prostore, neki od njihodgovaraju prostorima beskonacne zapremine

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 7 / 34

Page 8: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Primer binarnog stabla prostornog particionisanja u 2D

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 8 / 34

Page 9: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Primer neuravnotezenog binarnog stabla prostornogparticionisanja u 2D

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 9 / 34

Page 10: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Izgradnja BSP stabla

Beskonacno mnogo mogucnosti za odabir ravni razdvajanja

Izbor ravni razdvajanja zavisi od raznih faktora:

vrsta upitaraspodela podatakada li optimizujemo najgori, najbolji ili prosecni slucaj

Razliciti ciljevi:

minimizovati vreme izvrsavanja upita (ako se stablo gradi jednom, napocetku)minimizovati ukupno vreme izgradnje stabla i izvrsavanja upita (ako sestablo gradi tokom rada programa)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 10 / 34

Page 11: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

kd stabla

Da bismo pojednostavili problem i smanjili memorijske zahteve zapredstavljanje potprostora uvodimo ogranicenja na izgled potprostora

kd stablo (kd-tree) je BSP stablo kod koga su svi potprostoriporavnati sa koordinatnim osama

Bentley, 1970.

Inicijalna ideja je bila da se zovu 2d, 3d-stabla, a danas se zovu kdstabla nivoa 2,3

Odabir ose na koju je upravna ravan razdvajanja pravi se na osnovupodataka

I sa ovim ogranicenjem postoji veliki broj mogucnosti za odabir ravnirazdvajanja

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 11 / 34

Page 12: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

kd stabla: razlicite politike podele

Podela po sredini opsega

Tokom izvrsavanja upita preseka, jednaka je verovatnoca da zrak uđeu levu i desnu stranu, ali je cena ulaska zraka u desnu stranu mnogoveca

Kako da ovo popravimo?

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 12 / 34

Page 13: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

kd stabla: razlicite politike podele

Podela prema medijani

Cena ulaska u svaku od strana je otprilike jednaka, ali je verovatnocaulaska zraka u levu stranu mnogo veca

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 13 / 34

Page 14: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

kd stabla: razlicite politike podele

Podela sa optimalnom cenom

Pokusavamo da uravnotezimo cenu ulaska u cvor sa verovatnocomulaska u taj cvor

Na ovaj nacin kreiraju se veliki prazni cvorovi koji se brzo moguodbaciti tokom obilaska

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 14 / 34

Page 15: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

kd stabla: razlicite politike podele

Podela sa optimalnom cenom (naredni korak)

Levi sin ne zahteva ponovnu podelu, desnog podelimo oko sredineopsega/prema medijani

Prednost: izolovali smo jedan geometrijski objekat nakon samo jednepodele

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 15 / 34

Page 16: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Oktri i kuodtri

Mozemo izvrsiti podelu duz svih koordinatnih osa kroz srediste opsegakoji zauzimaju primitive u tom cvoru

Na ovaj nacin dobija se skup ugnjezdenih k-kockiu 3D prostoru ovakva struktura podataka naziva se oktri (oct tree)u 2D prostoru ovakva struktura podataka naziva se kuodtri (quad tree)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 16 / 34

Page 17: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Oktri

Najcesce se predstavlja koriscenjem 8 pokazivaca ka deci

Ne moraju sve celije biti iste velicine, vec se gusci delovi scene sastojeod veceg broja kocki

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 17 / 34

Page 18: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Oktri – konstrukcija

Konstruise se odozgo nanize:

najpre nalazimo kocku koja ogranicava celu scenu – koren stablau svakoj iteraciji, particionisemo tekuci cvor na 8 oktanata i delimoprimitive u oktanterekurzivno nastavljamo sve dok oktant ne sadrzi dovoljno maloprimitiva (ili je dostignut maksimalni dozvoljeni nivo stabla)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 18 / 34

Page 19: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Upit preseka za oktri (kuodtri)

Ispitivanje preseka pocinje u korenu oktrija

Ako je cvor list, treba ispitati presek zraka sa svim primitivama u tomcvoruAko cvor nije list, iteriramo kroz sinove tog cvora i racunamo presekezraka i i celije koja odgovara sinu (granicni opseg tog sina)

Ako postoji presek zraka i te celije, nastavljamo rekurzivno na tom sinuAko presek ne postoji, zavrsili smo sa obradom podstabla sa korenom utom cvoru

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 19 / 34

Page 20: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Kuodtri

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 20 / 34

Page 21: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Oktri – diskusija

Ocekivano ponasanje oktrija je O(log n) po zraku

Međutim, za scene kod kojih su primitive vrlo neravnomernoraspodeljene, oktri ce imati jako lose performanse

Kod ovakvih scena, kd stabla imaju bolje performanse jer se kod njihizoluju delovi scene koji imaju visoku slozenost od velikih praznihprostora kroz koje se moze brzo proci

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 21 / 34

Page 22: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Granicni opseg

Ideja granicnih opsega je umetnuti slozene objekte u jednostavnije(kao sto su sfere i kocke)Ukoliko granicni opseg nije vidljiv, nece biti vidljiv nijedan objekat unjegovoj unutrasnjostiEfikasnost zavisi od verovatnoce da zrak pogodi ogranicavajuci opseg,a ne i sadrzane objekte; cene racunanja preseka sa granicnim opsegomNa ovaj nacin moze se ubrzati rej kasting algoritamPosebno je jednostavno odrediti granicne opsege poravnate sakoordinatnim osama (određujemo minimum i maksimum x , y i zkoordinata svih temena)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 22 / 34

Page 23: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

AABB

Posebno je jednostavno odrediti granicne opsege poravnate sakoordinatnim osama – AABB (Axis Aligned Bounding Boxes)

Određujemo minimum i maksimum x , y i z koordinata svih temena –cuvamo samo 6 brojeva u pokretnom zarezu

Pogodni su za objekte koji imaju tesne granicne opsege

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 23 / 34

Page 24: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Hijerarhija granicnih opsega

Hijerarhija granicnih opsega je prostorno stablo nastalo rekurzivnimugnjezdavanjem granicnih opsega

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 24 / 34

Page 25: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Hijerarhija granicnih opsega

Za granicne opsege se najcesce biraju lopte ili kocke poravnate sakoordinatnim osama

Za razliku od BSP stabala, ovaj tip stabla daje tesnje granice zaklastere primitiva i ima konacnu zapreminu

Cesto se gradi nakon izgradnje BSP stabla, rekurzivnom izgradnjomgranicnih opsega, od listova ka korenu

Grupisu se granicni opsezi susednih objekata sve dok se ne ogranicikompletna scena

Opsezi bratskih cvorova se cesto preklapaju u ovoj shemi

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 25 / 34

Page 26: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Upit preseka za hijerarhiju granicnih opsega

Ako zrak promasi tekuci granicni opseg, nema preseka ni sa jednomprimitivom iz tog opsega

Ako zrak preseca granicni opseg, rekurzivno nastavljamo sa sadrzanimopsezima i primitivima

Ukupna efikasnost zavisi od modela i konstruisane hijerarhije opsega

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 26 / 34

Page 27: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Mreza (resetka)

Prostor mozemo particionisati na celije jednake velicine i na taj nacindobijamo mrezu, odnosno resetku (grid)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 27 / 34

Page 28: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Mreza (resetka)

Za tacku sa datim koordinatama, u konstantnom vremenu se racunajuvisedimenzioni indeksi celije kojoj pripada ta tacka

Međutim, prostor potreban za skladistenje ove strukture jeproporcionalan sumi broja primitiva i zapremine mreze

Jednostavna struktura podataka, efikasno se konstruise

Pogodna je za dinamicke podatke jer operacije dodavanja novihprimitiva i brisanja nisu zahtevne ni vremenski ni prostorno

Upiti preseka se u proseku izvrsavaju u vremenu proporcionalnomzapremini oblika upita (npr. proporcionalnom duzini zraka za upitpreseka)

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 28 / 34

Page 29: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Upit preseka za mrezu

Da bi se odredio prvi presek zraka sa primitivom, celije mreze semoraju obilaziti u poretku u kom zrak ulazi u njih

Celije mreze su nalik pikselima, a putanja zraka nalik sken konverzijiduzi

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 29 / 34

Page 30: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Upit preseka za mrezu

Primitive se mogu protezati kroz vise od jedne celije mreze, te jevazno u svakoj iteraciji testirati samo preseke koji se javljaju u toj celiji

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 30 / 34

Page 31: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Slozenost upita preseka kod mreza

Intuitivno je jasno da ce se algoritam izvrsavati u vremenuproporcionalnom broju celija mreze kojima se prolazi

Cena svake iteracije je konstantna, te je algoritam od prakticne koristiu slucaju kada ne ocekujemo da zrak putuje predugo pre nego sto“udari” u nesto

Mreza sa g podela duz k dimenzija sadrzi O(gk) celija

Najduzi put zraka je dijagonala mreze duzine O(g)

U najgorem slucaju, za mrezu koja sadrzi n primitiva, sve primitive seprotezu kroz sve celije mreze duz dijagonale, a zrak ne presecanijednu od njih te je cena upita preseka O(g · n)

Mreza je pogodnija za scenu koja sadrzi priblizno ravnomernoraspodeljene primitive koje teze tome da stanu u celiju mreze

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 31 / 34

Page 32: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Odabir rezolucije mreze

Upit preseka je linearne slozenosti u funkciji duzine zraka

Upit preseka je linearne slozenosti u funkciji broja primitiva u mrezikoje se nalaze

Dva cilja:

minimizovati broj testiranja preseka sa mrezomminimizovati broj testiranja preseka sa primitivama

Puno celija ne sadrzi nijednu primitivu pa je gubljenje vremenaproveravati ih sve pojedinacno – da li koristiti vece celije?

Neke celije sadrze preveliki broj primitiva – da li koristiti manje celije?

Kako na osnovu scene odabrati pogodnu rezoluciju mreze?

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 32 / 34

Page 33: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Odabir rezolucije mreze

Ako je g veliko, kvadrati mreze su mali, te se smanjuje broj primitivakoje treba testirati u svakoj nepraznoj celiji, ali se povecava broj celijakoje treba ispitati – pogodno za guste scene

Ako je g malo, kvadrati mreze su veliki, te se zrak brzo krece krozvelike prazne prostore, ali se povecava broj primitiva u svakojnepraznoj celiji sa kojom treba vrsiti testiranje – pogodno za retkescene

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 33 / 34

Page 34: Ra cunarska gra ka Prostorne strukture podatakapoincare.matf.bg.ac.rs/~vesnap/grafika/11_prostorne...Podela prema srednjoj vrednosti u odnosu na primitive Cena ulaska u svaku od strana

Prostorne strukture podataka

Pregled prostornih struktura podataka

Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 34 / 34