Osnovni pojmovi u Delti3D
DtTerrain je potpuno nova arhitektura koja je kreirana za podršku širokog spektra ponašanja terena. Potekla je iz potrebe spajanjem SOARX i GENETICS tehnologija u Delta3D pokretač. Rezultat je dtTerrain, fleksibilna i skalabilna arhitektura savršena za ubacivanje terena u Delta3D grafičkog pokretača te omogućavanje njegovog daljnjeg razvijanja i usavršavanja.
Pregled osnovnih koncepata:
Prije opisa samog dtTerrain API-ja, krenimo s opisom nekih osnovnih stvari:
TEREN (engl. terrain):
Odnosi se na općeniti koncept velike površine, tipični tereni su mnogo veći od statičnih mreža poligona (static mesheva). Tereni mogu biti ogromna područja svijeta s mnogo detalja, različite veličine i kompleksnosti od jednostavnih reprezentacija gradova do detaljnih reprezentacija krajolika cijelih država. Makar je teren tipično velika mreža poligona on je konkretno jedna velika mreža poligona u kojem su vrhovi zapravo serija visinskih oznaka koji zajedno kreiraju općeniti izgled krajolika zemlje (ovo se često referencira kao visinska mapa, tj. Heightmap). Ime centralne klase dtTerrain-a je logično “terrain”.
UČITAVANJE TERENA:
Specifična klasa koja nam služi za čitanje podataka o terenu s tvrdog diska ili nekog drugog resursa je TerrainDataReader. Podaci o terenu su često vrlo veliki te ih najčešće rade organizacije koje su specijalizirane za to (postoje i besplatni alati) te trebamo način na koji možemo pročitati sve te podatke i smisleno ih protumačiti. Individualni čitač (engl. reader) je odgovoran za čitanje jednog tipa formata podataka o terenu bio on DTED, CTDB, DEM ili nešto drugo. Korisnost našeg sučelja za učitavanje terena je ta da kreira fleksibilnu arhitekturu koja nam pomaže implementirati podršku za bilo koji format podataka o terenu.
OSTVARIVANJE PRIKAZA TERENA:
Obzirom da imamo način čitanja podataka, trebamo i nešto što nam omogućava manipulaciju i iskorištavanje istih. Za to koristimo klasu renderer, ona je odgovorna za crtanje terena u Delta3D grafičkom pokretaču. No obzirom da tereni dolaze u raznim oblicima i veličinama te razni projekti imaju svoje, specifične potrebe. Jedan jedini program za ostvarivanje prikaza neće biti dovoljan, iz tog razloga dtTerrain definira sučelje (popis metoda s kojima možemo raditi) renderer. Ono nam omogućava da implementiramo iscrtavanje koje nam najbolje odgovara potrebama našeg terena. To je generička arhitektura koja nam dopušta da dodajemo optimizacije, algoritme koji omogućuju različite razine složenosti (engl. level of detail), miješanje tekstura (engl. texture blending), sjenčanje, osvjetljenje ili bilo koje druge funkcije koje nam mogu zatrebati.
PLOČICE TERENA: (engl. Terrain Tiles)
Reprezentacije individualnih komada terena, najjednostavnija analogija bi bila kada bih zamislili kartu površine zemlje podijeljenu na kvadrate. Jedna pločica terena je jedan “kvadrat”, oni su spremljeni u priručnu memoriju nakon učitavanja radi optimizacije performansi.
DEKORATORI –Slojevi koje stavljamo povrh sloja terena, služe nam za dodavanje detalja sceni, detalji variraju od objekata ili drveća do tekstura koje apliciramo na teren. Dekoratere pozivamo nakon učitavanja pločice terena, to nam omogućava jednostavno uključivanje/isključivanje vizualizacijskih slojeva u aplikaciji.
SOARX ALGORITAM ZA PRIKAZ TERENA:
Primjer programa za ostvarivanje prikaza koji je uključen u dtTerrain, zasnovan je na SOARX terenskom algoritmu razvijenom od strane Andrasa Balogha. Ovaj algoritam kombinira dinamičku razinu iscrtavanja razine detalja (engl. LOD = level-of-detail) sa automatskom visokofrekventnom generacijom detalja. Tj. algoritam, ovisno o udaljenosti kamere, dinamički prilagođava količinu detalja na poligonima. Primjerice, ako smo jako udaljeni algoritam miče vrhove iz visinske mape tako da je brže iscrta, što se više približavamo terenu to se razina detalja povećava (čak i iznad razine detalja originalne visinske mape). Također koristi Perlin funkciju radi realnijeg (pseudo-slučajnog) prikaza terena. Rezultirajući teren je zadivljujuće gladak i realističan. Potrebno je napomenuti da, unatoč svim mogućnostima, algoritam je i dalje iznenađujuće brz.
GENETICS ALGORITAM ZA GENERIRANJE PRIRODNIH OKOLIŠA:
Skraćenica od Generating enhanced natural enviroments and Terrain for interactive combat simulations, ovaj algoritam je primjer koliko moćni dekorateri zapravo mogu biti. Kreiran je od strane MOVES (engl. Modeling, Virtual Environments and Simulation Institute) kao dio projekta za NGA (engl. National Geospatial-Intelligence angency). GENETICS algoritam koristi LCC (engl. land cover classification) slike za proceduralno generiranje bujne, detaljne vegetacije u realnom vremenu. LCC slike su poput satelitskih slika zemlje koje imaju različite boje koje reprezentiraju različite tipove vegetacije, npr. zelena drvo, crvena = kuća, smeđa = cesta itd. GENETICS dekorater u Delta3D engine-u parsira podatke iz tih slika, odlučuje gdje treba staviti vegetaciju, te onda kreira drveće i razne druge objekte koje su postavlja po sceni. Većina tih podataka je napravljena prije iscrtavanja i spremljena u memoriju no i dalje može biti vrlo opterećujući proces za naš procesor.
DTED FORMAT ZAPISA PODATAKA O TERENU
Specifični format zapisa podataka (engl. Digital terrain elevation data) o terenu često korišten u vladinim i vojnim organizacijama. Najčešće ga kreira NGA ili NIMA (engl. National imagery and Mapping agency ). Ima više razina detaljnosti (0,1,2...) koje rangiraju od vrlo primitivnih do vrlo kompleksnih
Osnovni koncept rada
Dakle sada kada znamo sve važnije termine, objasnit ćemo kako to sve skupa radi.

Koncept rada
Kao što vidimo iz dijagrama, klasa “terrain” je okosnica svega, koristimo DTED čitač za čitanje podataka o željenom terenu. Podatke o terenu šaljemo dekoraterima na obradu. Nakon što su dekorateri gotovi s obradom, podaci se šalju programima za ostvarivanje prikaza koji se bave pojedinačnim iscrtavanjem svake slike.
Prethodna stranica Sljedeća stranica |