Gå til innhold

Anbefalte innlegg

Skal straks i gang med å utvikle en applikasjon for visualisering av en 3D-terrengmodell (ikke så ulik google earth). I den forbindelse trenger jeg litt input på hvilke teknikker og algoritmer som er aktuelle. Google gir meg halvannen million treff, så derfor spør jeg her mens jeg prøver å finne frem i informasjonsmengden.

 

Hvis noen har linker til artikler om konkrete teknikker som er relevant for dette, så blir jeg veldig glad for å få vite om dem.

 

Eventuelt, hvis noen har gjort noe lignende selv, så er jeg veldig interessert i å høre om deres ideer og erfaringer.

 

I den grad språk/API i det hele tatt spiller noen rolle, kan jeg si at jeg tar sikte på å programmere i C++/OpenGL for Win32.

 

På forhånd takk! :)

Lenke til kommentar
Videoannonse
Annonse
Skal straks i gang med å utvikle en applikasjon for visualisering av en 3D-terrengmodell (ikke så ulik google earth). I den forbindelse trenger jeg litt input på hvilke teknikker og algoritmer som er aktuelle. Google gir meg halvannen million treff, så derfor spør jeg her mens jeg prøver å finne frem i informasjonsmengden.

9044971[/snapback]

 

For å velge den riktig metode må du spesifisere mye mer enn det du gjøre.

Skal du ha en jordklode? (du nevner google earth)

Skal du ha med huler/overheng?

Skal du ha huser og lignende?

Skal du bruke ekte kart?

Skal det være dynamiske kart (kunne forandre seg under kjøring)

 

Hvis du ikke skal ha huler og lignende så er heightmap tingen.

Med heightmaping får du høyde på kartet og du kan lett implementere enkle LOD teknikker ved å øke oppløsningen på heighmappingen og/eller antall vertekser.

 

Men for å slippe å rendere alt på en gang ville jeg anbefale og bruke quadtree som jeg syntes passer perfekt til enkle heighmapping, men det er jo litt avhengig av bruken.

 

Wikipedia: Quadtree

Wikipedia: Heightmap

 

Hvis noen har linker til artikler om konkrete teknikker som er relevant for dette, så blir jeg veldig glad for å få vite om dem.

9044971[/snapback]

 

Hva med disse?

GameDev.net - How To Render Landscapes

NeHe - Beautiful Landscapes By Means Of Height Mapping

 

I den grad språk/API i det hele tatt spiller noen rolle, kan jeg si at jeg tar sikte på å programmere i C++/OpenGL for Win32.

9044971[/snapback]

 

Det spiller ikke så store rollen hvis du ikke skal bruke det på andre OSer nei.

 

Og lykke til, det hadde vært interessant å vite hvilke løsninger du velger å bruke og hvilke erfaringer du gjøre deg ettersom jeg har lyst til å lage noe lignende etter hvert.

Lenke til kommentar

Takker for svarene så langt!

For å svare på forrige innskrivers spørsmål:

 

Skal du ha en jordklode? (du nevner google earth)

- Det tviler jeg på at jeg trenger, uten at jeg er helt sikker i skrivende stund

 

Skal du ha med huler/overheng?

- Nei, det vil ikke være nødvendig

 

Skal du ha huser og lignende?

- Ikke i første omgang, men det skal kanskje komme inn etter hvert

 

Skal du bruke ekte kart?

- Jepp

 

Skal det være dynamiske kart (kunne forandre seg under kjøring)

- Nei, det er ikke nødvendig

 

 

Å implementere dynamisk LOD ved hjelp av quadtree er en "foreldet" teknikk, da det belaster CPU mer enn det som strengt tatt er nødvendig. Quadtrees er finfint det, men du kommer ikke bort fra at du må kalkulere en ny mesh på cpu hele tida. Antar at valget heller kommer til å falle på geometry clipmapping.

 

Men uansett, dette er mindre relevant. Jeg trenger ikke nødvendigvis hjelp til å velge den riktige metoden; jeg er i første omgang bare ute etter å skaffe meg oversikt over hvilke metoder som eksisterer og har vært brukt tidligere.

Lenke til kommentar

På min enginge, har jeg bare delt opp terrenget i en matrise, og deler av terrenget blir generert etterhvert som terrenget skal rendres, man merker ikke at dette skjer fordi partisjonene er såpass små, i forhold til å generere alt når programmet starter.

Ulempen jeg kan se med quadtree eller octree, er at det tar såpass lang tid å generere store terreng, særlig siden terreng er veldig forutsigbare, mens en generell implementering av quadtree eller octree går utifra at objektet er uforutsigbart (dette er selvsagt ganske implementasjonsspesifikt)

 

Jeg laget en demo med et verdenskart, men siden jeg ikke har rettigheter til kartene, kan jeg ikke legge det ut her.

 

Selv har jeg helt falt bortifra tanken om at C++ faktisk egner seg til grafikkprogrammering, så jeg bruker C#(fordi C# støtter pekere) og OpenGL(fordi OpenGL er best)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...