Documente Academic
Documente Profesional
Documente Cultură
Facultatea de Informatic
Student:
Drjneanu Gelu-Marian
An II, I.D., Grupa 208
Pe lng faptul c este o interfa pentru aplicaiile de grafic vectorial 3D, OpenGL
este i un foarte bun motor de procesare a imaginilor folosite n aplicaiile de grafic
punctual sau raster.
OpenGL lucreaz cu dou tipuri de primitive raster:
-
Bitmap-uri, acestea folosesc cte un singur bit (0 sau 1) pentru ficare pixel. Funcia
glColor() determin noua culoare a pixelilor, care corespund valorii 1, in timp ce
Pixelii se citesc din memoria principal i sunt procesai ntr-un format pe care
OpenGL l poate utiliza, astfel nct se pot face modificri de culoare sau nlocuire de octei.
Bitmap-urile si pixelmap-urile sunt dou primitive neafectate de operaii geometrice care au
loc n fluxul operaiilor anterior rasterizrii.
Un bitmap specific un dreptunghi completat cu 0 i 1, iar fiecare valoare de 1 din
bitmap reprezinta un fragment ale crui valori asociate sunt cele ale poziiei raster curente, in
timp ce pentru valoarea 0 nu se produce nici un fragment. Comanda glBitmap() specific
offset-urile care controleaz plasarea bitmap-ului raportat la poziia raster curent.
O alta funcie importanta este glRasterPos3f(x,y,z) care reprezint poziionarea
primitivelor raster. Prin specificarea poziiei raster sunt poziionate si imaginile, iar dac o
poziie raster se pierde prin decuparea fa de vewiport, nu mai este rasterizat niciun fragment
din primitiva bitmap.
Bitmap-urile se redau cu ajutorul funciei glBitmap(width, height, xorig, zorig, xmove,
bitmap). Funcia red bitmap-ul in culoarea curent, iar dupa redarea primitivei, poziia raster
este actualizat. Bitmap-urile sunt folosite ca o masc pentru actulizarea pixelilor.
n cazul in care originea bitmap-ului este (0,0), atunci bitmap-ul va fi plasat in poziia
raster curent, iar dac difer de valorile (0,0), poziia raster va fi utilizat pentru plasarea
originii bitmap-ului. Coordonatele originii bitmap-ului se stabilesc la colul stanga-jos al
acestuia.
caracterele respective;
Construirea bitmap-urilor corespunzatoare fiecrui caracter pe baza fontului
curent din mediul de lucru;
caracterul B are codul ASCII 66 (42H), caracterul C avand codul ASCII 67 (43H), etc.
Pentru afiarea irului ABC se vor executa listele de display care au identificatorii 65,66,67,
iar pentru aceasta apelm funcia glCallLists(3, GL_UNSIGNED_BYTE, ABC).
Totui codurile ASCII nu mai reprezint o soluie convenabila, innd cont de
varietatea fonturilor, avnd corupuri diferite, iar soluia ar fi ca pentru fiecare font sa se
adauge un offset, fa de care se stabilesc identificatorii fiecrei liste de display. Pentru c
numrul maxim al carcaterelor nu depete 255, un offset de 1000 este o soluie
convenabil. Pentru stabilirea offset-ului putem folosi comanda glListBase().
Dac dorim s folosim un font cu toate cele 255 de caractere, vom apela
glGenLists(255).
Fiierele de imagini sunt interpretate diferit in OpenGL, care nu
nelege
formatele de imagini, cum ar fi JPEG, PNG, sau GIF-uri. Pentru ca OpenGL
s poat
utiliza informaiile din acest tip de fiiere, acestea trebuie s fie citite i
decodificate pentru a obine informaia de culoare i plecnd de la aceste
informaii OpenGL poate rasteriza valorile culorilor.
Fluxul de procesare al pixelilor
BIBLIOGRAFIE