Android Flashcards
Rančićeva pitanja
Šta je grafički API?
Grafički API je skup grafičkih funkcija organizovanih u jednu ili više biblioteka koje predstavljaju interfejs između aplikacionog programa i grafičkog sistema. To omogućava programeru da vidi samo grafički API, dok su detalji o softverskoj i hardverskoj implementaciji sadržani u grafičkoj biblioteci. Korišćenje grafičkog API-ja omogućava da se sistem posmatra kao „crna kutija“.Kada programer koristi grafički API, on ili ona piše posebne komande koje govore kompjuteru kako da nacrta određene oblike, boje, teksture ili da izvrši druge zadatke vezane za grafiku.
slika
Funkcije GAPI-ja?
Da bi GAPI bio GAPI mora da ima sledeće grupe funkcija:
1. Funkcije za primitive – Grafičke primitive su objekti najnižeg nivoa, osnovni entiteti koje
grafički sistem može da prikaže (tačka, linija, krug, elipsa, …)
GDI primer: Rectangle(hdc, 50, 50, 200, 200); (crtanje pravougaonika)
OpenGL primer: glBegin(GL_TRIANGLES); … glEnd(); (crtanje trougla)
2. Funkcije za kontrolu atribut primitiva – Primitive definišu šta će se nacrtati, a njihovi atributi
kako će se nacrtati (boja, debljina linije, tip linije)
GDI primer: SelectObject(hdc, hBrush); (odabir četke)
OpenGL primer: glColor3f(1.0f, 0.0f, 0.0f); (postavljanje boje)
3. Funkcije pogleda – Omogućavaju formiranje 2D prikaza na osnovu 3D objekata (koji objekti
3D sveta će biti uključeni u 2D prikaz i na koji način) - ekrani su 2D i sve što modelujemo u
3D mora da se iscrta u 2D ali tako da korisnik i dalje ima osećaj 3D prostora
OpenGL primer: gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); (postavljanje kamere)
4. Funkcije za geometrijske transformacije – Omogućavaju 2D i 3D geometrijske transformacije
nad objektima (translacije, rotacije, skaliranje, smicanje, …) – svodi se na množenje
kordinata objekta nekim matricama. glTranslatef Rotatef Scalef
5. Funkcije za ulaz – Omogućavaju korisnicima da vrše unos podataka u aplikaciju putem
delova grafičkog sistema (tastatura, miš, tabela, skener)
6. Kontrolne funkcije – Omogućavaju komunikaciju sa OS pod kojim se grafička aplikacija
izvršava (inicijalizacija, kontrola prozora, otvaranje dialog box-a, postavljanje menija u
prooru, …)
CreateWindow() npr
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 device independant aplikacije koje ne
zavise od grafičkog sistema na kome se izvršavaju.
GetDeviceCaps(hdc,bitspi) ili glGetIntegerv
Princip rada GDI i šta je Device Context?
Sa jedne strane nalazi se aplikacija koju programer sam razvija, sa druge strane u
formiranju slike učestvuje sam hardver (grafička kartica) odnosno device driver koji
upravlja tom grafičkom karticom. Između njih nalazi se sloj grafičkog API-ja koji
predstavlja sponu između aplikacije i drajvera, odnosno samog grafičkog hardvera.
Osnovna stvar međusloja je GDI tj. Grafički API za 2D grafiku. Ako posmatramo
detaljnije, pre same komunikacije GDI-ja sa device driver-ima nailazimona sloj
hardverske apstrakcije koji sadrži funkcije operativnog sistema koje su te koje direktno
interaguju sa drajverima uređaja.Device context je apstrakcija koja olakšava rad sa grafičkim hardverom, to je apstraktni
(virtuelni) uređaj koji se ne odnosi ni na jedan konkretan uređaj – ni na ekran, ni na štampač, …
Kada se programira, pristupa se ovom virtuelnom uređaju i na taj način se ne vodi računa
direktno o hardveru. Svo iscrtavanje se vrši po Device Context-u, koji se kasnije, kroz funkcije
GAPI-ja, može vezati za konkretan izlazni uređaj kako bi se ono što je iscrtano u DC prikazalo na
tom konkretnom uređaju. O upravljanju samog isctavanja po izlaznom uređaju vode računa
drajveri i hardware abstraction layer.Princip rada GDI-a je da aplikacije dobiju DC za uređaj na koji žele da crtaju, zatim koriste GDI funkcije za crtanje na tom uređaju, i na kraju oslobode DC kada završe sa crtanjem. Na primer, aplikacija može dobiti DC za ekran pozivom funkcije GetDC, zatim koristiti funkcije poput Rectangle ili TextOut da bi nacrtala oblike ili tekst na ekranu, i na kraju osloboditi DC pozivom funkcije ReleaseDC.
Ovaj proces omogućava aplikacijama da crtaju grafiku na ekranu bez obzira na to koji grafički uređaj je u pitanju, jer GDI preuzima brigu o detaljima specifičnim za taj uređaj.
Objasniti strukturu OpenGL biblioteke
OpenGL je organizovan u nekoliko biblioteka:
- GL (Graphics Library) je jezgro OpenGL-a. Ona je osnovna biblioteka OpenGL-a i sadrži
imena svih OpenGL funkcija.
- GLU (Graphic Utility Library) je biblioteka koja obezbeđuje potrebnu funkcionalnost OpenGL
jezgra. Ona koristi samo GL funkcije i sadrži kod za kreiranje objekata koji se često koriste
(npr. lopta, prizme, krive, površi, …) kao i procedure koje se često koriste.
- GLUT (GL Utility Toolkit) je biblioteka koja obezbešuje minimum funkcionalnosti koja se
očekuje od modernih sistema zasnovanih na prozorima (otvaranje prozora, ulaz – miš,
tastatura, meniji, …). Obezbeđuje kontrolne funkcionalnosti GAPI-ja.
- GLX (WGL, AGL) su biblioteke koje služe za spregu sa operativnim sistemima. GLX je
biblioteka koja se koristi za Unix/Linux based operativne sisteme, WGL za Windows i AGL za
Apple/MacOS. Korišćenjem funkcija ovih biblioteka gubi se potreba da OpenGL aplikacija
poziva direktno funkcije operativnog sistema.
Čemu služe ulazni, a čemu izlazni uređaji
Ulazno/izazni uređaji su značajni za računarsku grafiku jer obezbeđuju interakciju sa spoljnim
svetom. Ulazni uređaji služe za upravljanje računarom, prihvataju podatke od korisnika i
konvertuju ih u formu koju ralunar može da razume. Izlazni uređaji služe za praćenje rada
računara kao i za prikazivanje rezultata obrade u formi razumljivoj za korisnika.
Logički tipovi U/I uređaja
- Lokatori – pokazuju poziciju i orijentaciju – grafička tabla, miš, džojstik, ekrani osetljivi na
dodir - Valuator – za unos jednog realnog broja – potenciometar
- Tastatura – za unos znakovnog niza
- Pokazivač – za izbor elemenata slike – svetlosno pero (stilus)
- Dugme – za izbor neke akcije iz skupa mogućih alternativa
- Uređaji za unos slike, videa i 3D modela – 2D skener, digitalni fotoaparati, digitalne i web
kamere i 3D skeneri - Uređaji za unos zvuka – mikrofoni, digitalni diktafoni i digitalni snimači zvuka
- VR ulazni uređaji – VR rukavice i različiti uređaji za detekciju ljudskih pokreta
Razlika između vektorskih i rasterskih podataka
Kod vektorskih podataka svi objekti koji se prikazuju se zadaju koordinatama svojih
karakterističnih tačaka koje omeđuju taj objekat. Za razliku od njih, kod rasterskih podataka se
svi objekti koji se prikazuju zadaju kao raster, odnosno matrica tj. Skup piksela. Jedini objekat
kod rasterskih podataka je piksel, odnosno tačka. Ti pikseli organizovani su u kolone i vrste i
svaki ima svoju boju. Posmatranjem rastera u celosti pojedinačni pikseli formiraju sliku.
Odabir na koji način predstaviti podatke zavisi od potreba, ukoliko kreiramo neki model,
pogodniji su nam vektorski podaci jer nam omogućavaju da zapamtimo taj model kao skup
karakterističnih tačaka koje ga opisuju. Dok npr. kada napravimo digitalnu fotografiju
fotoaparatom nama nije potreban skup objekata već prikaz slike skupom piksela različie boje
koji će na kraju formirati čitavu sliku.
Kada se koriste vektorski podaci kvalitet slike se očuvava pri zumiranju i odzumiravanju jer
postoje matematičke formule koje omogućavaju iscrtavanje objekta na osnovu karakterističnih
tačaka pod bilo kojim zumom. Kod rasterskih podataka to nije slučaj, rasterski podaci su matrica
piksela, i kada se ta matrica zumira i odzumirava postoje tehnike mešanja boja piksela koje
omogućavaju koliko-toliko glađi prelaz pri promeni nivoa zuma, ali se svakao gubi na kvalitetu
slike jer je skup piksel informacija koje imamo fiksan.
Princip rada CRT ekrana
Ekran je staklena ploča premazana fosforom. Fosfor se koristi jer ima osobinu da kada biva
pogođen elektronima i u trenutku predaje energije od elektrona fosforu on ima osobinu da
svetli. Ta svetlost vremenom slabi pa ako želimo stalno osvetljenje treba stalno da gađamo
fosfor elektronskim mlazom – 50-60 puta u sekundi da se ne bi videlo treperenje ekrana. Da bi
odgovarajuća tačka na ekranu bila pogođena potrebno je da imamo i ostatak sistema. Na
samom početku imamo jedan element koji služi za zagrevanje i on greje katodu (elektronski
top). Kada se katoda zagreje ona počinje da emituje elektrone. Iza katode nalazi se kontrolna
mreža koja kontroliše broj elektrona koji se šalju što će na kraju uticati na intenzitet
osvetljenosti piksela. Zatim sledi sistem za fokusiranje koji služi da formira tanak mlaz elektrona.
Takav tanak mlaz dolazi do dela ekrana koji sadrži kalemove za skretanje koji na bazi informacija
koje dobijaju o tome koji piksel treba biti pogođen na ekranu skreću koliko je potrebno taj mlaz
elektrona. Nakon skretanja, mlaz elektrona prolazi pored metalnih obloga sa visokim naponom
koje služe da bi dovoljno ubrzale mlaz elektrona kako bi on pogodio odgovarajući piksel i preneo
što veću količinu energije koja će na kraju izazvati da taj piksel svetli. Prethodno opisani proces važi za monohromatske CRT ekrane, međutim i kod kolor ekrana je
princip isti, s tim što za svaku komponentu boje postoji poseban elektronski top. Sam ekran
sastoji se od niza tačaka koji predstavaljaju najmanje fizičke jedinice koje se mogu kontrolisati –
dotovi. Dotovi ne moraju da se gađaju 1 na 1 sa pikselima na prikazu. Pravilo je da u
maksimalnoh rezoluciji koju ekran može da podrži imamo slikanje 1 dot = 1 piksel, dok se pri
manjim rezolucijama slika više dotova na 1 piksel. Kretanje mlaza elektrona koje emituje
elektronski top je takvo da se slika na ekranu formira linija po linija, odozgo na dole, pri čemu te
linije imaju određeni nagib i formiraju „cik-cak“ popunu ekrana. Od gornjeg levog ugla polazi
top, ka desnoj ivici ide sa nagibom, kada dođe do desne ivice vraća se na levu ivicu u istom nivou
i sve tako dok ne dođe do donjeg desnog ugla ekrana kada se top vraća na gornji levi ugao.
slika
Načini iscrtavanja ekrana
Postoje dva načina iscrtavanja ekrana:
- Bez preplitanja (non-interlaced) – Postoji 1 frejm i on se iscrtava u svakom frejm periodu.
Sve linije tog jednog frejma iscrtavaju se 50-60 puta u sekundi. Uglavnom se koristi danas.
- Sa preplitanjem (interlaced) – Postoje dva frejma, jedan sadrži parne, a jedan neparne linije.
U jednoj poluperiodi frejma se iscrtava jedan frejm a u drugoj poluperiodi se iscrtava drugi
frejm. Imamo istu frekvenciju iscrtavanja kao kod non-interlaced ali se iscrtava svaki put
samo pola slike, što je našem oku prihvatljivo, ono ne vidi da nedostaju neke linije kada se
frejmovi menjaju takvom brzinom. Ovaj metod je davao dosta dobar prikaz kod ekrana sa
manjim frekvencijama rada jer je omogućio manje treperenje slike, iako se suštinski
iscrtavala samo polovina slike, iscrtavanja su bila češća te treperenje manje
Šta su rezolucija i aspekt slike?
Rezolucija (R) predstavlja ukupan broj piksela koji mogu biti prikazani na ekranu tj. U aktivnoj
oblasti. R = AP * AL (broj aktivnih piksela * broj aktivnih linija) – ova dva broja se nikada ne
množe pa da se da rezultat nego se da upravo u ovom zapisu množenja.
Aspekt slike (Aspect ratio – AR) je odnos horizontale i vertikale i dugo u istoriji je on bio 4:3, a
sada je sve češće 16:9 (wide screen). AR = AP/AL (ukupan broj piksela u liniji sa ukupnim brojem
linija)
Šta su dobre, a šta loše strane CRT tehnologije?
Dobre strane:
- Jeftina izrada
- Slika je jednako vidljiva pod svim uglovima
- Daje mogućnost prikaza kvalitetnih slika u punom rasponu boja na visokim rezolucijama
Loše strane:
- Glomazni
- Postoji deo sa visokim naponom pa je potrošnja električne energije velika
- Štetnost elektromagnetnog zračenja katodnih cevi
- Tehnologija prikaza zamara oči
- Osetljivost na spoljašnja elektromagnetna polja – ako približimo magnet nekom delu
ekrana on može da se razmagnetiše i izgubi boje
LCD ekrani
LCD (Liquid Cristal Display) je tehnologija prikaznog uređaja koja koristi tečni kristal. Ova
tehnologija postala je popularna za prenosne računare zbog znatno manjih dimenzija, težine i
potrošnje energije od CRT uređaja. Tehnologija se bazira na šestoslojnoj strukturi:
1. Prednji sloj je vertikalna polarizacijska ploča – najbliži nama
2. Drugi sloj sadrži vertikalnu rešetku od tankih žica
3. Treći je sloj tečnog kristala debljine reda jednog mikrona – najbitniji sloj, molekuli
kristala se nameštaju tako da ili polarizuju ili ne polarizuju svetlost koja dođe kroz
horizontalnu rešetku. Ulazna svetlost je horizontalno polarizovna, a da bi izlazna svetlost
bila vidljiva mora biti vertikalno polarizovana. Tako da ukoliko ovaj sloj okrene
polarizaciju za 90 stepeni, takva svetlost će proći kroz vertikalnu rešetku i mi ćemo na
vertikalnoj ploči da vidimo piksel. Ukoliko napravimo takvo elektromagnetno polje da se
ne okrene polarizacija na mestu nekog piksela, ta svetlost neće proći kroz vertikalnu
rešetku i mi ćemo taj piksel videti kao tamni piksel na ekranu. Piksel se dobija kao presek
horizontalne i vertikalne rešetke. I ukoliko je vertikalna žica pod pozitivnim naponom, a
horizontalna pod negativnim onda se tačka neće videti.
4. Četvrti sloj je horizontalna rešetka od tankih žica.
5. Peti sloj je horizontalna polarizacijska ploča
6. Poslednji, šesti sloj je reflektor – obezbeđuje osvetljenje ekrana. Ako je to neki obični
reflektor onda je to LCD, ako koristi LED diode onda je to LED ekran itd.
slika
Tehnologije za izradu video projektora
Postoje dve tehnologije za izradu projektora:
LCD – tehnologija koja koristi tečne kristale. Slika se formaira pomoću tri odvojena TFT
displeja, pri čemu je svaki od njih zadužen za jednu od boja – crvena, zelena plava. I ti
ekrani, u kombinaciji sa optičkim elementima slažu RGB komponente slike u celinu.
Takva celina se projektuje kroz objektiv na platno.
o Dobre strane – potpuna zrelost tehnologije, vrlo kvalitetna reprodukcija boje i
jeftina tehnologija izrade
o Loše strane – veće dimenzije od projektora DLP tehnologije, nemogućnost
obezbeđivanja visokog kontrasta pri prikazu slike i gubitak na kvalitetu slike
posle 3-4 godine zbog slabljenja LCD ekrana
DLP (Difital Light Processing) – potpuno digitalna tehnologija izrade video projektora.
Njena suština je činjenica da na mestu svakog piksela ima jedno malo ogledalo koje je u
obliku romba i ono može da rotira oko svoje duže dijagonale. Menjanjem položaja
svakog od ovih ogledala kontroliše se količina svetla koja se usmerava u pravcu objektiva
čime se kontroliše osvetljenost svakog od piksela. Može precizno da se kontroliše
količina svetlosti koja će da se sprovede kroz objektiv na mestu svakog piksela. Boje se
postižu korišćenjem rotirajućeg diska koji na sebi ima obojene filtere i koji se nalazi
između čipa sa ogledalima i objektiva. Taj disk se okreće dosta brzo (50-100 puta u
sekundi) čime dobijamo stabilnu sliku bez treperenja. Rotirajuči disk uglavnom ima 3
filtera (crveni, zeleni i plavi), ali može da ima i 6 (po 2 od svake od RGB boja), dodatnim
filterima se postiže veći asortiman boja ali se blago smanjuje kontrast. Takođe postoji
mogućnost da se na disk doda i jedan beli segment, čime se malo smanjuje kvalitet
reprodukcije boja ali se povećava kontrast i kvalitet bele pozadine.
o Dobre strane – bolji kontrast (ukoliko se koristi i beli segment) i značajno manje
dimenzije
o Loše strane – za nijansu veća cena, nešto veća buka koja se javlja kao posledica
stalnog okretanja diska sa filterima
Tehnike prikazivanja i gledanja 3D videa
Naočare/kaciga sa posebnim ekranima za svako oko – po jedan LCD ekran za svako
oko. Naš mozak sam kreira 3D sliku na osnovu slika koje se serviraju svakom oku
zasebno. Ovakve naočare/kacige su izuzetno složene i skupe, sam uređaj je veće mase i
samo jedna osoba može da ih koristi u jednom trenutku.
Crveno-plave naočare – Ispred jednog oka je crvena folija, a ispred drugog plava. Sam
prikaz se sastoji od crvenih i plavih linija, pa se kroz crvenu foliju vide samo plave linije, a
kroz plavu samo crvene linije. Na taj način se omogućava (odgovarajućim načinom
iscrtavanja linija) kreiranje 3D slike. Ovaj princip je monohromatski.
Naočare sa polarizovanim staklima – Ovakve naočare su lagane, ne opterećuju,
podsećaju na bilo koje druge naočare. Stakla ovih naočara su polarizovana, ispred
jednog oka je vertikalno polarizovano staklo, a ispred drugog, stako koje je horizonralno
polarizovano. Koriste se dva projektora, jedan emituje vertikalno polarizovanu sliku, a
drugi horizontalno polarizovanu sliku koja je pomerena. Kada se gleda kroz naočare,
staklo sa vertikalnom polarizacijom propušta samo vertikalno polarizovanu sliku, a
staklo sa horizontalnom polarizacijom samo horizontalno polarizovanu svetlost. Ljudski
mozak onda sam kreira 3D sliku na osnovu slika koje dobija svako oko zasebno.
Active Shutter naočare – Aktivne naočare posebno sinhronizovane sa ekranom. Ove
naočare imaju LCD ekrane koji ne emituju sliku već naizmenično menjaju svoje stanje iz
providnog u zatamljeno i moraju biti u stalnoj sinhronizaciji sa ekranom. Kada se
prikazuje slika za levo oko naočare zatamne prikaz desnom oku i obrnuto. Ova
zatamljenja i propuštanja se dešavaju velikom brzinom pa sam gledalac ne primećuje to
dešavanje. Ove naočare su skupe, imaju LCD ekrane i dodatnu elektroniku za
sinhronizaciju sa ekranom. Takođe, naočare se mogu koristiti samo zajedno sa ekranima
koji moraju biti kvalitetni i imati mogućnost da menjaju slike velikom brzinom. Doživaljaj
3D prikaza je znatno bolji kod ovog modela nego kod polarizovanih naočara. Ali način
rada ovih naočara podrazumeva stalno teperenje što dovodi do naprezanja očnog nerva
i iako čovek ne vidi treperenje, ono mu može izazvati zdravstvene probleme –
glavobolju, nagon za povraćanjem … Takođe, ove naočare su dosta glomazne, tako da se
ne mogu staviti preko naočara za vid, dok se polarizovane naočare mogu i tako nositi.
Specijalni TV ekrani koji ne zahtevaju nikakve naočare – Ovo je najavljena tehnologija
od strane mnogih proizvođača ali joj se i dalje ne znaju detalji. 3D sliku će biti mogue
videti samo ako stojite pod određenim uglovima ispred ekrana, postoji 8 takvih uglova.
Algoritmi za skaniranje linije
Naivni, nagibni, inkrementalni, Bresenhamov (pogledaj)
Algoritmi za skaniranje kruga
Trigonometrijski, Polinomni (pogledaj)