Upload
milan-randjelovic
View
67
Download
0
Embed Size (px)
DESCRIPTION
Racunarska grafika graficki api predavanje
Citation preview
Računarska grafikaŠifra: 5130 (5535)
Elektronski fakultet Niš
Grafički API
Elektronski fakultet u Nišu
Definicija
Grafički API (Application Programming Interface) je skup grafičkih funkcija organizovanih u jednu ili više grafičkih biblioteka koje predstavljaju interfejs između aplikacionog programa i grafičkog sistema.
Elektronski fakultet u Nišu
GAPI
Programer “vidi” samo GAPI dok su detalji o hardverskoj i softverskoj implementaciji sadržani u grafičkoj biblioteci
Aplikacioni
program
GAPI Grafički sistem (HW)
Elektronski fakultet u Nišu
GAPI
Korišćenje GAPI-ja omogućava da se grafički sistem posmatra kao “crna kutija”
Aplikacioni
program
Grafički sistem (HW)
Pozivi funkcija
Podaci
Elektronski fakultet u Nišu
Istorijski pregled
Prvi GAPI je nastao 1973 godine. IFIPS (InternationalFederation of Information Processing System) jeformirao dve komisije koje su realizovale GKS(Graphical Kernel System).
Ovaj sistem je standardizovan najpre kao ISO a zatimkao ANSI standard (1980).
Kasniji pokušaj da se proširi na 3D je bio neuspešan.
Elektronski fakultet u Nišu
Istorijski pregled
PHIGS (Programmers Hierarchycal GraphicsSystem) – ovaj standardni GAPI je nastao poduticajem CAD programera i korisnika.
X Windows - sistem razvijen od DEC-a / MIT-a(prvi je imao client-server arhitekturu u radu sagrafikom).
PEX - jedan od neuspelih pokušaja da se spojiPHIGS i X Windows (pretežak je zakorišćenje).
Elektronski fakultet u Nišu
Istorijski pregled
1982 godine Silicon Graphics (SGI) po prvi putimplementira protočnu obradu podataka(pipeline) kod hardvera, što je predstavljalorevoluciju u oblasti razvoja grafičkih radnihstanica. Za pristup hardveru je korišćena GLbiblioteka. Ona je omogućila relativnojednostavno programiranje 3D interaktivnihaplikacija.
Elektronski fakultet u Nišu
Istorijski pregled
1992. godine nastaje OpenGL kao GAPI koji jenezavisan od platforme. Ovo je bila revolucija u sveturačunarske grafike.
Evoluciju OpenGL-a kontroliše ARB (ArchitecturalReview Board) grupa. Ova grupa je sastavljena odvodećih kompanija u oblasti računarstva i računarskegrafike: Microsoft, Silicon Graphics, NVidia, HP, IBM...
Trenutna verzija OpenGL-a je 4.2.
Elektronski fakultet u Nišu
Funkcije GAPI-ja
Svaki dobar GAPI mora da ima sledeće grupe funkcija:
1.Funkcije za primitive - Grafičke primitive su objektinajnižeg nivoa. To su osnovni entiteti koje grafičkisistem može da prikaže (tačka, linija, poligon, piksel,tekst,...)
2.Funkcije za kontrolu atributa primitiva - Primitivedefinišu šta će se nacrtati, a njihovi atributi kako će senacrtati (boja i debljina linije, tip linije,...).
Elektronski fakultet u Nišu
Funkcije GAPI-ja
3. Funkcije pogleda - omogućavaju formiranje 2D prikaza na osnovu 3D objekta (koji objekti iz realnog 3D sveta će biti uključeni u 2D prikaz i na koji način).
4. Funkcije za geometrijske transformacije -Omogućavaju 2D i 3D geometrijske transformacije nad objektima (translacija, rotacija, skaliranje,...).
5. Funkcije za ulaz - Omogućavaju korisnicima da vrše unos podataka u aplikaciju putem delova grafičkog sistema (tastatura, miš, tabla, skener,...).
Elektronski fakultet u Nišu
Funkcije GAPI-ja
6. Kontrolne funkcije - Omogućavaju komunikaciju sa operativnim sistemom pod kojim se grafička aplikacija izvršava (inicijalizacija, kontrola prozora,...).
7. Ispitivačke funkcije - Omogućavaju dobijanje informacija o karakteristikama pojedinih komponenata grafičkog sistema (broj boja koje monitor može da prikaže, rezolucija,...). Na ovaj način programeri dobijaju mogućnost da pišu takozvane device independent aplikacije koji ne zavise od grafičkogsistema na kome se izvršavaju.
Elektronski fakultet u Nišu
GAPI Standardi
GKS (ANSI X3.124) PHIGS Java 2D Java 3D GDI OpenGL DirectX
Elektronski fakultet u Nišu
Windows GDI
GDI (Graphics Device Interface) je 2D GAPI koji koristi Microsoft u svojim operativnim sistemima.
Elektronski fakultet u Nišu
Windows GDI
Princip rada
Elektronski fakultet u Nišu
Device Context
Device Context je apstraktni (virtuelni) uređaj. Kada se programira, pristupa se ovom virtuelnom uređaju i na taj način se ne vodi računa direktno o hardveru (koji je tip, kakve su karakteristike,...). O hardveru vode računa drajveri (device drivers).
Elektronski fakultet u Nišu
Enkapsulacija GDI funkcija u MFC klase
CDC – Device Context CPen – Olovka CBrush – Četka CBitmap – Rasterska slika CPalette – Paleta ...
Elektronski fakultet u Nišu
OpenGL
OpenGL (Open Graphics Library) je organizovan u nekoliko biblioteka:– GL je jezgro OpenGL-a. Ona je osnovna biblioteka
OpenGL-a. Ona sadrži imena svih OpenGL funkcija.– GLU (graphic utility library) je biblioteka koja
obezbeđuje potrebnu funkcionalnost OpenGLjezgra. Ova biblioteka koristi samo GL funkcije isadrži kod za kreiranje objekata koji se često koristekao i procedure koje se često koriste.
Elektronski fakultet u Nišu
OpenGL
– GLUT (GL Utility Toolkit) je biblioteka kojaobezbeđuje minimum funkcionalnosti koja seočekuje od modernih sistema zasnovanih naprozorima (otvaranje prozora, ulaz - miš, tastatura,meniji,...).
– GLX (WGL, AGL). Služe za spregu sa operativnimsistemima. Korišćenjem ovih funkcija se gubipotreba da OpenGL aplikacija poziva direktnofunkcije operativnog sistema. GLX je sprega sa XWindows-om, WGL sa Microsoft Windows-om, AGLsa Apple Mac O/S-om.
Elektronski fakultet u Nišu
Organizacija OpenGL biblioteka
Elektronski fakultet u Nišu
Softverska organizacija OpenGL programa
Elektronski fakultet u Nišu
OpenGL protočna obrada