sveuČilište u zagrebu fakultet elektrotehnike · pdf file2.1 Čitanje visinske mape iz...

Download SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE · PDF file2.1 Čitanje visinske mape iz datoteke Visinska mapa se može predstaviti kao slika. Oboje su u osnovi dvodimenzionalno polje

If you can't read please download the document

Upload: vohanh

Post on 08-Feb-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

  • SVEUILITE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAUNARSTVA

    ZAVRNI RAD br. 221

    GENERIRANJE I PRIKAZ TERENADario Filipovi

    Zagreb, veljaa 2008.

  • Zahvaljujem se mentorici prof. dr. sc. eljki Mihajlovi na savjetima i pruenoj pomoi prilikom pisanja ovog rada. Posebno se zahvaljujem roditeljima Gordani i Sreku na pruenoj podrci tokom dosadanjeg studija.

  • Sadraj:1. Uvod...................................................................................................................................12. Problematika generiranja terena.........................................................................................2

    2.1 itanje visinske mape iz datoteke................................................................................32.2 Generiranje visinske mape dijeljenjem........................................................................42.3 Generiranje visinske mape pukotinama.......................................................................62.4 Generiranje visinske mape krunicama.......................................................................8

    3. Dodavanje detalja.............................................................................................................103.1 Teksture terena..........................................................................................................10

    3.1.1 Proceduralno generiranje tekstura......................................................................113.1.2 Teksturiranje 3D teksturama..............................................................................133.1.3 Teksturiranje mijeanjem teksturama...............................................................16

    3.2 Sjene na terenu...........................................................................................................203.2.1 Volumeni sjena..................................................................................................203.2.2 Mape sjena.........................................................................................................22

    4. Postupci prikazivanja 3D terena.......................................................................................264.1. Optimalno prilagoavajue mree u stvarnom vremenu - ROAM...........................27

    4.1.1 Binarna stabla trokuta........................................................................................294.1.2 Dinamika kontinuirana triangulacija................................................................304.1.3 Redovi spajanja i dijeljenja................................................................................31

    4.2. Geometrijsko MIP preslikavanje..............................................................................334.2.1 Odabir razine geometrijskog isjeka terena.......................................................34

    5. Programsko rjeenje.........................................................................................................375.1. Analiza zahtjeva i izrada specifikacije....................................................................375.2 Detalji implementacije i rad programa......................................................................395.3 Analiza algoritama.....................................................................................................40

    5.3.1 Analiza fraktalnog generatora............................................................................405.3.1 Analiza ROAM algoritma..................................................................................43

    6. Zakljuak..........................................................................................................................457. Popis slika.........................................................................................................................468. Popis kratica.....................................................................................................................479. Popis tablica.....................................................................................................................4810. Literatura........................................................................................................................4911. Saetak............................................................................................................................5012. Abstract..........................................................................................................................5113. Privitak A UML dijagram programa...........................................................................52

  • 1. Uvod

    Prikaz trodimenzionalnih terena ve due vrijeme je jedno od zanimljivijih

    podruja raunalne grafike, odnosno animacije. to se ustvari eli postii je preslikavanje

    krajobraza iz naeg, stvarnog, svijeta na raunalni ekran. To nipoto nije jednostavan

    proces ako uzmemo u obzir kompleksnost svega to nas okruuje.

    Ne postoje dva identina genetska bia na ovoj planeti. Analogno tome ne

    postoje niti dva identina mjesta na Zemlji. Sve sadri odreenu koliinu nasuminosti,

    kako mi to volimo zvati. Tonije bi bilo rei da sve podlijee nekom pravilu, vidjeli mi to

    pravilo ili ne. ovjekova tenja za shvaanjem stvari oduvijek je bila motivacija za

    traenje tih pravila i njihovim koritenjem u svrhe predvianja i opisivanja stvari i

    dogaaja. Ona su obino ili prilino intuitivna i jednostavna ili izrazito kompleksna do te

    granice da se ne mogu pratiti sve varijable koje se mijenjaju u realnosti. To nas prisiljava

    na pojednostavljivanje svari.

    S terenima je ista pria. Zar bi bilo potrebno svaki atom zemlje upisati u

    memoriju i kasnije crtati? Vjerojatno bi bilo korisno za neke svrhe, no treba pogledati

    stvarnost. Prva i najvanija stvar; za to je potreban prikaz terena u prostoru?

    Trodimenzionalni prikaz terena emo esto nai u ovim aplikacijama:

    Simulacijama (esto vojne)

    Sustavima vizualizacija (npr. za prikaz topologije)

    Igre

    Virtualni turizam

    ...

    Jo jedno vano pitanje je: Koja razina detalja nam treba? Tu se treba osvrnuti

    na to za to nam je potreban teren. Ako je potrebno za scenu u filmu, u redu je odvojiti sat

    vremena za metodu praenja zrake za generiranje jednog okvira. ee je naglasak na

    animaciji terena u stvarnom vremenu (engl. realtime). U ovom radu e fokus biti na

    problematici generiranja terena i njihovo prikazivanje u stvarnom vremenu.

    1

  • 2. Problematika generiranja terena

    Za poetak bi bilo dobro spomenuti da za prikaz u stvarnom vremenu moramo

    izbaciti veliku veinu detalja iz stvarnog svijeta. Tako se stvarni krajobraz na raunalu

    esto zapisuje kao mrea pravilno rasporeenih toaka (zato je to tako biti e rijei

    prilikom opisa metoda prikaza terena). Naziv za takvu mreu je visinska mapa (engl.

    heightmap). Moe se zamisliti da kreemo od mree trokuta (engl. triangle mesh) koja

    predstavlja jednu plohu. Ta ploha je dakle predstavljena dvodimenzionalnim poljem toaka

    koje sve imaju jednu koordinatu 0. To bi izgledalo kao na slici 1. Mi elimo postii efekt

    slian onom na slici 2.

    Slika 2 prikazuje mreu trokuta koja je deformirana tako da nalikuje 3D terenu koji je

    prikazan kao mrea linija. Na slici se vidi valovit oblik koji predstavlja brda i doline

    stvarnog terena i to prilino dobro. Postoji vie metoda kojima je mogue stvoriti/uitati

    ovako deformiranu mreu trokuta.

    Osvrnuti emo se na neke od njih:

    itanje visinske mape iz datoteke

    Generiranje visinske mape dijeljenjem (metoda dijamant-kvadrat)

    Generiranje visinske mape pukotinama

    Generiranje visinske mape krunicama

    2

    Slika 1: Mrea trokuta na jednoj plohi Slika 2: Deformirana mrea trokuta

  • 2.1 itanje visinske mape iz datoteke

    Visinska mapa se moe predstaviti kao slika. Oboje su u osnovi

    dvodimenzionalno polje vrijednosti. Jedina je razlika to su slike kao datoteke zapisane

    kao cjelobrojne vrijednosti, a za prikaz u prostoru se najee koriste decimalni brojevi

    (float). Znai najvei problem je uitavanje podataka iz datoteke i skaliranje brojeva tako

    da nam odgovaraju. Na internetu se mogu pronai brojni generatori terena koji generiraju

    npr. BMP datoteku ije nijanse sive boje predstavljaju visinu te toke u prostoru. Primjer

    takvog generatora je http://nemesis.thewavelength.net/index.php?c=2.

    Visinska mapa se moe vidjeti na slici 3.

    Visinske mape su najee oblika takvog da crna boja predstavlja najnie

    razine terena, a bijela najvie razine. Razina terena je najee predstavljena Y-osi u

    prostoru, dok su X i Z osi koordinate te toke na visinskoj mapi.

    Ovo je jedina spomenuta metoda koja ne stvara visinsku mapu ve ju samo uitava.

    3

    Slika 3: Primjer visinske mape

    http://nemesis.thewavelength.net/index.php?c=2

  • 2.2 Generiranje visinske mape dijeljenjem

    Ovo je prvi od algoritama koji poinju s praznom visinskom mapom (sve

    vrijednosti visinske mape na 0), te odreenim postupcima generiranja terena odreuju

    vrijednosti za svaku toku. Za ovaj algoritam je poeljno da su visina i irina visinske

    mape jednake i djeljive sa 2. To znai da bi visinska mapa trebala biti etverokut. Osnovni

    razlog tome je to je algoritam dosta bri ako se radi s ovakvim dimenzijama.

    Prvi korak algoritma dodjeljuje krajnjim rubnim tokama nasumine

    vrijednosti visine. Slijedei korak uzima toke na polovitu svake stranice i na sredini

    tren