KAKO radi OpenGL
Najprihvaćeniji grafički standardOpenGL je premijerno okruženje za razvoj prenosivih, interaktivnih 2D i 3D grafičkih aplikacija. Od svoje pojave 1992. godine, OpenGL je postao najčešće korišćen i najviše podržavan programski interfejs za 2D i 3D grafičke aplikacije, donoseći na hiljade aplikacija sa različite računarske platforme. OpenGL uvodi inovacije i ubrzava razvoj aplikacija tako što inkorporira širok skup funkcija renderovanja, mapiranja tekstura, specijalnih efekata i drugih funkcija vizuelizacije.
Visok vizuelni kvalitet i performanseSvaka grafička aplikacija koja zahteva maksimalne performanse – od 3D animacije do CAD aplikacija za vizelnu simulaciju – može da koriste OpenGL mogućnosti. Ove mogućnosti dopuštaju dizajnerima koji se bave različitim tržištima, poput prenosa podataka, CAD/CAM/CAE, zabave i virtuelne realnosti, da prave i prikazuju 2D i 3D grafike izuzetnog kvaliteta.
Prednosti
Industrijski standardNezavisni konzorcijum, pod nazivom OpenGL Architecture Review Board, se bavi OpenGL specifikacijama. Uz široku industrijsku podršku, OpenGL je potpuno otvoren, nezavisan od proizvođača i višeplatformski grafički standard.
StabilnostOpen GL implementacije su već više od sedam godina dostupne za razlišite platforme. Dodaci specifikacijama se dobro kontrolišu, a predložene izmene se objavljuju na vreme kako bi ih dizajneri blagovremeno prihvatili. Zahtevi za kompatibilnošću unazad osiguravaju da postojeće aplikacije neće postati zastarele.
Pouzdanost i prenosivostSve OpenGL aplikacije pružaju dosledne vizuelne rezultate na svakom hardveru saglasnom sa OpenGL API, bez obzira na operativni sistem.
RazvojZbog svog temeljnog i naprednog dizajna, OpenGL dopušta da se hardverskim inovacijama pristupa kroz API, a preko OpenGL mehanizma ekstenzija. Na taj način se inovacije pojavljuju u API blagovreno, omogućavajući dizajnerima aplikacija i proizvođačima hardvera da nove osobine inkorporiraju u sledećem proizvodnom ciklusu.
SkalabilnostAplikacije zasnovane na OpenGL API mogu da se izvršavaju na sistemima u opsegu od elektrouređaja široke potrošnje do PC-a, radnih stanica i superkompjutera. Rezultat toga je da se aplikacije mogu prilagoditi gotovo svakoj klasi uređaja koju dizajner odabere.
Jednostavna upotrebaOpenGL je dobro struktuiran, sa intuitivnim dizajnom u logičkim komandama. Efikasne Open GL rutine obično rezultiraju aplikacijama sa manjim brojem linija koda nego kod kodova koji sačinjavaju programe generisane upotrebom drugih grafičkih biblioteka ili paketa. Pored toga, OpenGL drajveri kapsuliraju informacije o osnovnom hardveru, oslobađajući dizajnere aplikacije obaveze da rade samo za hardver sa određenim osobinama.
Dobra dokumentacijaO OpenGL je objavljen veliki broj knjiga, što informacije i ovom okruženju čini lako dostupnim.
Vizuelni prikaz OpenGL programiranja
OpenGL pojednostavljuje razvoj softvera i ubrzava put do tržištaOpenGL rutine pojednostavljuju razvoj grafičkih softvera – od renderovanja prostih geometrijskih linijskih ili popunjenih višeugaonika do pravljenja kompleksnijih osvetljenih ili sa dodatkom teksture NURBS zakrivljenih površina. OpenGL pruža dizajnerima softvera pristup prostim geometrijskim elementima ili elementima slika, listama prikaza, transformacijama modelovanja, osvetljenju i teksturama, mogućnostima ublažavanja oštrih ivica i mnogim drugim osobinama.
Svaka implementacija OpenGL okruženja obuhvata sve OpenGL funkcije. OpenGL standard ima jezičke veze za C, C++, Fortran, Ada i Java programske jezike. Aplikacije koje koriste OpenGL funkcije su lako prenosive na gotovo sve platforme.
Svi elementi OpenGL okruženja – čak i sadržaj memorije tekstura i bafera okvira – se mogu dobiti pomoću jedne OpenGL aplikacije.
Dostupan svudaOpenGL je podržan na svim UNIX radnim stanicama, Windows 95/98/2000/NT računarima i Mac OS PC, što znači da nijedan drugi grafički API ne funkcioniše u širem opsegu hardverskih platformi i softverskih okruženja. OpenGL se izvršava na svakom popularnom operativnom sistemu, uključujući Mac OS, OS/2, UNIX, Windows 95/98, Windows 2000, Windows NT, Linux, OPENStep, iBeOS; takođe, može da radi sa svakim od popilarnijih sistema sa prozorima, uključujući Win32, MacOS, Presentation Manager i X-Window System. OpenGL se može pozvati iz programskih jezika Ada, C, C++, Fortran, Python, Perl i Java i nudi potpunu nezavisnost od mrežnih protokola i topologija.
Fleksibilnost i diferencijacija Mada OpenGL specifikicaja definiše određenu tzv. protočnu grafičku obradu, proizvođači platformi imaju tu slobodu da prilagode određenu OpenGL implementaciju tako da odgovara ceni i performansama sistema. Pojedinačni pozivi se mogu izvršavati na specijalizovanom hardveru, pokretati se kao softverske rutine na standardnom sistemskom CPU, ili se implementirati kao kombinacija specijalizovanog hardvera i softverskih rutina. Ova fleksibilnost implementacije znači da OpenGL hardverska akceleracija može da bude u opsegu od prostog renderovanja do potpune geometrije i dostupna je na gotovo svakom uređaju, od jeftinih personalnih računara do radnih stanica i superkompjutera. Dizajneri aplikacija mogu biti sigurni da će dobiti dosledne rezultate prikaza bez obzira na platformsku implementaciju OpenGL okruženja.
Korišćenjem OpenGL mehanizma ekstenzija, proizvođači hardvera mogu da diferenciraju svoje proizvode razvijanjem ekstenzija koje dizajnerima softvera omogućavaju da pristupe dodatnim performansama i tehnološkim inovacijama.
Mnoge OpenGL ekstenizije, kao i ekstenzije povezanih programskih interfejsa za aplikacije (API), poput GLU, GLX i WGL, su definisali proizvođači i grupe proizvođača. SGI se bavi održavanjem registra OpenGL ekstenzija, koji sadrži specifikacije za sve najpoznatije ekstenzije, napisane kao modifikacija za odgovarajuće dokumente specifikacija. Registar takođe definiše konvencije imenovanja, uputstva za pravljenje novih ekstenzija i pisanje adekvatnih specifikacija ekstenzija, kao i ostale dokumentacije.
API hijerarhija
OpenGL aplikacije koriste prozor, ulaz i mehanizam događaja u sistemu sa prozorima
GLU podržava kvadratne površine, NURBS, složene višeugaonike, matrične pomoćne module i još puno toga
Osnova za napredne APIVodeći proizvođači softvera koriste OpenGL okruženje kao 2D/3D grafičku osnovu za API viših nivoa. Dizajneri softera koriste OpenGL mogućnosti za dobijanje visoko diferenciranih i široko podržanih rešenja. Na primer, Open Inventor pruža korisnički interfejs za više platformi što pojednostavljuje pravljenje OpenGL aplikacija. IRIS Performer koristi OpenGL funkcionalnost i isporučuje dodatne osobine namenjene tržištu koje zahteva visoku učestalost kadrova, poput vizuelne simulacije. OpenGL Optimizer je skup alata za interakciju, modifikaciju i renderovanje u realnom vremenu kompleksnih modela površina, poput onih u CAD/CAM. OpenGL Volumizer je API za neposredno renderovanje i koristi se za oblast energetike, medicine i nauke. OpenGL Shader pruža interfejs koji podržava realistične vizuelne efekte, više tekstura, mape okruženja i gotovo neograničeni skup novih efekata koji koriste hardversku akceleraciju na standardnim OpenGL grafičkim karticama.
Upravljačka telaOpenGL Architecture Review Board (ARB), nezavisni konzorcijum osnovan 1992. godine, upravlja OpenGL specifikacijama. Sastavljen od članova iz brojnih vodećih proizvođača grafičkih komponenti, ARB definiše uslove testiranja i odobrava izmene u OpenGL.
OpenGL Performance Characterization Committee, još jedna nezavisna organizacija, kreira i održava OpenGL referentna testiranja i objavljuje rezultate na svom web sajtu: www. specbench. org/gpc/opc. static/index. html
Neprekidne inovacijeOpenGL standard se neprekidno razvija. Formalne revizije se odvijaju u redovnim intervalima, a ekstenzije koje omogućavaju dizajnerima softvera da pristupaju najnovijim hardverskim komponentama preko OpenGL se stalno razvijaju. Čim ekstenzije postanu opšte prihvaćene, uzimaju se u razmatranje za uključivanje u jezgro OpenGL standarda. Ovakav postupak omogućava da se OpenGL razvija na kontrolisan, a ipak inovativni način.
LicenciranjeOpenGL specifikacije koje odobri ARB i izvorni kod su dostupni licenciranim proizvođačima hardverskih platformi. Krajnji korisnici, nezavisni proizvođači softvera i ostali koji se bave pisanjem kodova na osnovu OpenGL API su oslobođeni svih zahteva za licenciranjem.
OpenGL 2. 0OpenGL v. 2. 0, predstavljena u septembru 2004. godine, je šesta revizija od pojave originalne verzije 1. 0. Verzija 2. 0 je kompatibilna sa ranijim verzijama, što znači da će se svaki program koji se izvršava pomoću verzija 1. 5, 1. 4, 1. 3, 1. 2, 1. 1 ili 1. 0 GL impementacijom neizmenjeno izvršavati i sa 2. 0 GL implementacijom.
Neke od novih osobina u OpenGL 2. 0 su programabilno senčenje, višestruko renderovanje, Point Sprites, posebne matrice i td.