OpenGL: Razlika med redakcijama

Izbrisana vsebina Dodana vsebina
Brez povzetka urejanja
JLP (pogovor | prispevki)
Zasnova - Prevod odseka Design z angleške Wikipedije
Vrstica 20:
 
'''OpenGL''' ({{jezik-en|Open Graphics Library}}) je specifikacija [[Standardizacija|standarda]], ki določa [[programski vmesnik]] za pisanje [[Računalniški program|računalniških programov]], ki prikazujejo [[Trirazsežni prostor|3D]] in [[Dvorazsežni prostor|2D]] [[Računalniška grafika|računalniško grafiko]]. Pri [[Računalniško programiranje|programiranju]] z OpenGL lahko uporabljamo katerikoli [[programski jezik]], prav tako pa OpenGL deluje na več platformah. Vmesnik sestavlja več kot 250 funkcij, ki omogočajo izrisovanje kompleksnih 3D scen sestavljenih iz preprostih osnovnih geometričnih oblik. OpenGL so leta [[1992]] razvili pri podjetju [[Silicon Graphics|Silicon Graphics Inc.]] (SGI) in je priljubljen v industriji [[Računalniška igra|računalniških iger]]. Veliko se uporablja tudi pri [[Računalniško podprto načrtovanje|računalniško podprtem načrtovanju]], v [[Navidezna resničnost|navidezni resničnosti]], znanstvenih vizualizacijah, vizualizacijah informacij ter letalskih in drugih [[Računalniška simulacija|simulacijah]].
 
==Zasnova==
 
OpenGL služi dvema namenoma:
* Poenostavitvi dela z različnimi grafičnimi pospeševalniki, tako da programerju ponuja en sam enoten vmesnik
* Skrivanju razlik v strojni opremi, tako da od implementacij zahteva polno podporo za OpenGL (če ne gre drugače s programskim posnemanjem)
 
OpenGL v osnovi deluje tako, da sprejema osnovne elemente kot so točke, daljce in mnogokotnike, ter jih pretvarja v slikovne pike. To delo opravlja grafični cevovod, ki je znan kot avtomat OpenGL (angl. OpenGL state machine). Večina ukazov OpenGL v grafični cevovod pošilja osnovne elemente, ali pa določajo, kako cevovod obdeluje osnovne elemente. Pred izidom OpenGL 2.0 je vsaka stopnja cevovoda opravljala fiksno določeno delo in je bila nastavljiva le v zelo majhni meri. Od OpenGL 2.0 dalje je na voljo več stopenj, ki so s pomočjo jezika GLSL povsem programabilne.
 
OpenGL je nizko-novojski proceduralni programski vmesnik, ki programerju omogoča, da do potankosti nadzoruje vsak korak, ki je potreben za izris scene. Nizko-nivojska zasnova programerju daje večjo svobodo pri implementaciji novih algoritmov za izrisovanje, a zahteva dobro poznavanje grafičnega cevovoda.
 
OpenGL je v svoji zgodovini v precejšnji meri vplival na razvoj grafičnih pospeševalnikov. Promoviral je osnovno raven funkcionalnosti, ki je danes vsakdanja v strojni opremi, ki je na voljo uporabnikom:
* Osnovni elementi: rasterizirane točke, daljice in mnogokotniki
* Cevovod za preoblikovanje in osvetljevanje
* Medpomnilnik Z za globino
* Preslikovanje tekstur
* Alfa-mešanje
 
Kratek opis obdelave v grafičnem cevovodu bi lahko bil:
# Vrednostenje polinomskih funkcij, ki določajo vhode, ki so približki krivuljam in geometriji površin.
# Operacije nad oglišči (angl. vertex), ki oglišča preoblikujejo in jih osvetlijo glede na njihov material. Tudi odsek nevidnih delov scene, s čimer se dobi vidni volumen.
# Rasterizacija ali pretvorba predhodnih podatkov v slikovne pike. Mnogokotniki so s pomočjo algoritmov za interpolacijo predstavljeni z ustrezno barvo.
# Operacije nad delčki (angl. fragment), na primer posodabljanje vrednosti glede na vhodne in predhodno shranjene globinske vrednosti ali kombinacije barv.
# Na koncu so delčki vstavljeni v slikovni medpomnilnik.
 
Veliko modernih grafičnih pospeševalnikov ponuja funkcionalnost, ki je precej nad zgoraj omenjeno osnovo, vendar so te nove zmožnosti v splošnem le izboljšave osnovnega cevovoda in ga radikalno ne spreminjajo.
 
==Zunanje povezave==