Kaj je 2D OpenGL®?

Open Graphics Library® (OpenGL®) je predvsem programski vmesnik, ki omogoča programskim aplikacijam interakcijo z grafično strojno opremo in hitro in učinkovito ustvarjanje tridimenzionalnih (3D) prizorov. Z uporabo dvodimenzionalnih (2D) programskih tehnik OpenGL® lahko strojno pospeševanje, ki ga zagotavlja knjižnica, izboljša zmogljivost in včasih enostavnost programske opreme, ki ne uporablja nujno 3D modelov ali transformacij. Najpogostejša metoda uporabe 2D OpenGL® je risanje štirikotnikov ali pravokotnikov, ki so teksturirani s sliko, s čimer iz slike učinkovito ustvarite predmet v 3D prostoru. Ko so te štirikotnike enkrat vzpostavljene, je mogoče manipulirati bodisi s strogimi 2D metodami bodisi s preoblikovanjem s 3D matrikami za posebne učinke, ki bi jih sicer težko naredili samo z 2D rastrsko grafiko. Pri uporabi knjižnice 3D samo za 2D grafiko obstaja nekaj zapletov, vključno s hiper-natančnostjo, zaradi katere je lahko izolacija lokacij z enim slikovnim pikom zapletena, kot tudi zahteva nekaj podpore 3D strojne opreme za program, ki morda res ne zahteva to.

Številni razvijalci strojne in programske opreme nudijo gonilnike in vmesnike za abstraktno programiranje po meri (API), zaradi katerih so njihovi izdelki popolnoma združljivi s knjižnico OpenGL®. To široko sprejetje odprtega standarda omogoča programerjem možnost neposrednega dostopa do strojne opreme v številnih sistemih. Strojno pospeševanje, ki je na voljo pri uporabi 2D OpenGL®, lahko omogoči, da program teče bolj gladko, kot bi bilo sicer mogoče. Ta hitrost je uravnotežena z dejstvom, da se uporaba cevovoda OpenGL® za grafiko lahko zelo razlikuje od uporabe tradicionalnih metod 2D programiranja, ki na splošno ne uporabljajo modela državnega stroja, kot ga uporablja OpenGL®.

Večina 2D programov OpenGL® za prikaz grafike uporablja ravne pravokotnike, ki so narejeni v enakih razmerjih kot slika teksture. To ima prednost, ker je zelo hitro upodabljanje, pa tudi poenostavlja programiranje, tako da uporablja nekaj iste logike kot rastrska medpomnjena grafika. Nekatere učinke, kot je skaliranje slike, vrtenje slike ali obrnjeno sliko, je dejansko mogoče izvesti veliko bolj učinkovito z uporabo OpenGL®.

Nekateri dejavniki lahko povzročijo, da so programi 2D OpenGL® bolj zapleteni kot drugi 2D programi običajno. Eden od teh dejavnikov je natančnost slikovnih pik na zaslonu. OpenGL® ne enači enega dela navideznega koordinatnega sistema z enim slikovnim pikom na zaslonu, kot to počne rastrska grafika, zato je včasih treba za koordinate zaslona uporabiti številke s plavajočo vejico, da preprečimo vrzeli na zaslonu ali nenavadne umestitve slikovnih pik.

Druga težava je, da OpenGL® zahteva uporabo grafične kartice za povečanje hitrosti upodabljanja. Če aplikacija uporablja OpenGL® za prikaz vmesnika ali sistemskega okna, lahko naprave, ki nimajo grafičnega pospeševanja, izgubijo zmogljivost za grafiko, ki se končnemu uporabniku morda zdi zelo osnovna. OpenGL prav tako ne zagotavlja nobene domače podpore za prikazovanje besedila, kar pomeni, da bi lahko za prikazovanje velikih območij besedila potrebna precejšnja količina kode po meri.