Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Racunarska grafikaProstorne strukture podataka
Vesna Marinkovic
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 1 / 34
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
Prostorne strukture podataka
Primer modelovanja koriscenjem oktrija
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 3 / 34
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
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
Prostorne strukture podataka
Prostorne strukture podataka
BSP stabla
kd stabla
Oktri
Hijerarhija granicnih opsega
Mreza
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 6 / 34
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
Prostorne strukture podataka
Primer binarnog stabla prostornog particionisanja u 2D
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 8 / 34
Prostorne strukture podataka
Primer neuravnotezenog binarnog stabla prostornogparticionisanja u 2D
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 9 / 34
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
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
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
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
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
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
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
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
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
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
Prostorne strukture podataka
Kuodtri
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 20 / 34
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
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
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
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
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
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
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
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
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
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
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
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
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
Prostorne strukture podataka
Pregled prostornih struktura podataka
Vesna Marinkovic Racunarska grafika Prostorne strukture podataka 34 / 34