Implementacija

DELTA 3D

Delta3D je otvoreni (engl. Opensource) grafički pokretač namijenjen izradi igara i simulacija. Modularnog je dizajna stoga s lakoćom integrira druge slične projekte kao otvoreni graf Scene (engl. Open Scene Graph), Cal3D i dr.
Glavni cilj samog grafičkog pokretača je pružanje jednog fleksibilnog API-ja (engl. Application programing interface) s svim osnovnim elementima potrebnim za sve grafičke aplikacije. Primjerice STAGE (engl. simulation, training, and game editor), editor čestica, BSP kompajler itd. Integriranjem raznih modula pruža mogućnosti API-ja visoke razine u kojem je  omogućeno opcionalno korištenje raznih funkcionalnosti niže razine. Delta3D  podržava potpunu OpenGL 2.0 specifikaciju te je pod LGPL (engl. lesser gnu public license) licencom, pod-moduli mogu imati svoje licence ali su minimalno pod  Opensource licencom.

 

 

 

Osnovni pojmovi u Delti3D

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.


90
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