Professional Documents
Culture Documents
Displej Lista: Osnovni Koncepti Grafičkog Programiranja
Displej Lista: Osnovni Koncepti Grafičkog Programiranja
DISPLEJ LISTA
Displej lista je grupa komandi grafičke biblioteke koje su
pohranjene za kasnije izvršenje. Većina komandi grafičke
biblioteke mogu biti pohranjene u displej listu ili izdate u
trenutačnom modu (immediate mode), ovaj mod prouzrokuje
da se komande trenutačno izvršavaju. Time, skup komandi
grafičke biblioteke se može imenovati, organizirati i raditi sa
displej listom na pogodan i efikasan način. Naprimjer,
posmatrajmo translaciju slike kuće na monitoru. Ako slika
kuće se sastoji od nekoliko stotina linija, morali bi da pišemo
translacione komande nekoliko stotina puta- jednaput za
svaku liniju- ako linije slike postoje kao nezavisni entiteti.
Medjutim, mi treba da pišemo istu komandu samo jedanput,
ako bi grafički entiteti za sliku bili definisani kao displej lista.
1
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Displej lista OpenGL je dizajnirana da optimizira performansu,
naročito putem mreže, ali nikada na trošak performanse na
pojedinačnoj mašini.
Da bi se optimizirala performansa, displej lista kašira
komande a ne dinamičku bazu podataka. Drugim riječima,
jedanput kada je displej lista kreirana, ona se ne može
modificirati. Ako bi displej liste bile modifikabilne, performansa
bi mogla biti reducirana zbog overheda ( dodatnih aktivnosti),
koji bi bio potreban da se pretraži kroz displej listu i izvrši
menadjment memorije. Kako bi dijelovi displej liste bili
mjenjani, alokacija i dealokacija memorije bi mogla voditi ka
fragmentaciji memorije. Korištenje displej lista je isto tako brzo
kao i da se ne koriste.
2
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Jedanput kada je displej lista definisana, slijedeće operacije
se mogu primjeniti:
- Višestruko izvršenje: Ista displej lista se može izvršiti
mnogo puta.
- Hijerahijsko izvršenje: Hijerarhijska displej lista je ona koja
izvršava drugu displej listu pozivajući komandu za izvršenje
displej listu-dijete, u okviru displej liste-roditelj.
Hijerarhijska displej lista je korisna za objekat koji je
sastavljen od komponenata, naročito ako neke od ovih
komponenata se koriste više od jedanput.
Brisanje ( deletion): ovim se displej lista eliminira.
3
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
TRANSFORMACIONA MATRICA
Konverzija koordinata iz jednog koordinatnog sistema u
drugi je bitna u izračunavanju lokacija projekcija tačaka na
objekat u prostoru. Prvo, mi treba da sračunamo koordinate
tačaka na objektu za vanjski koordinatni sistem ( wcs) iz
njegovog model koordinatnog sistema ( mcs). Tekuća
pozicija objekta je obićno specificirana kao: koliko je puta
objekat bio transliran i rotiran od svoje inicijalne pozicije,
kod koje njegov modelni koordinantni sistem koincidira sa
vanjskim kooridinatnim sistemom. Time, vanjske koordinate
tačaka na objektu u tekučoj lokaciji se dobiju translacijom i
rotacijom odgovarajućih tačaka kod inicijalne pozicije, gdje
njegov model koordinatni sistem koincidira sa vanjskim
koordinatnim sistemom. Na taj način, vanjske koordinate
tačaka na objektu kod tekuče lokacije, se dobiju sa
translacijom i rotacijom odgovarajućih tačaka kod inicijalne 4
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
pozicije gdje su njegove modelne koordinate iste kao i
vanjske koordinate. Većina grafičkih biblioteka izvršava
interno ove transformacije, i grafički programer može trebati
da obezbjedi samo dio translacije i rotacije svakog objekta.
Medjutim, mi još uvjek moramo da razumijemo jasno
transformaciju da bi bili u stanju da crtamo objekte na
njihovim korektnim lokacijama bez metode probe i greške,
naročito kada se objekti kreću na komplikovan način.
Mi opisujemo transformacionu matricu koju treba primjeniti
na koordinate tačaka za ove translacije i rotacije u nastavku.
Kada smo dobili vanjske koordinate svih tačaka jednog
objekta u njegovoj tekučoj poziciji, mi treba da izvedemo
koordinate istih tačaka u odnosu na koordinatni sistem
gledanja ( vcs). Ova konverzija koordinata izmedju različitih
koordinatnih sistema se naziva mapiranje. Mapiranje 5
izmedju vanjskog koordinatnog sistema i k.s gledanja ( vcs)
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
se obićno realizuje interno od strane grafičke biblioteke
kada programer obezbjedi informaciju kao što je lokacija
tačke gledanja( viewpoint), lokacija gledanja ( viewsite), i
smjer up vektora, i to za sve u vanjskom k.s.
TRANSLACIJA
Kada se objekat translira za a,b i c u x, y i z pravcima, od
svoje početne pozicije kod koje njegov model koordinatni
sistem koincidira sa vanjskim koordinatnim sistemom ( wcs),
( vidjeti na narednoj slici), vanjske koordinate tačke ( wcs) na
objektu u novoj poziciji( Xw, Yw, Zw ) se dobiju kao:
( 3.3)
6
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
U ovoj jednačini ( 3.3), Xm, Ym i Zm su takodjer modelne
koordinate od iste tačke. Jednačina (3.3) se može izraziti u
slijedećoj formi, koristeći matrične operacije :
7
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Jednačina (3.4) se može lako verificirati da je ista kao i
jednačina (3.3) jednostavnom ekspanzijom. Dodatna operacija
u jednačini (3.3) se može izraziti kao operacija multiplikacije u
jednačini ( 3.4) korištenjem homogenih koordinata koje
predstavljaju trodimenzionalni vektor sa četiri skalara umjesto
tri . Matrica koja se koristi da transformira homogene koordinate
se naziva homogena transformaciona matrica. Zbog toga,
transformaciona matrica na desnoj strani jednačine (3.4) ,
označena kao Trans( a.b.c) je homogena transformaciona
matrica za translaciju. Ako tačka u dvije dimenzije treba da
bude transformirana, ili translirana kao u ovom slučaju,
homogena transformaciona matrica će se reducirati na 3 x 3
matricu eliminišući treči red i treču kolonu iz 4 x 4 homogene
transformacione matrice. Biće primjenjena na koordinate tačke
koja je predstavljena sa 3 x 1 vektorom kolonom, dobijenim
eliminacijom z koordinata iz 4 x 1 trodimenzionalnih homogenih8
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
koordinata.
ROTACIJA
Predpostavimo da je objekat rotiran za q oko X ose
vanjskog koordinatnog sistema( wcs) zajedno sa svojim
modelnim koordinatnim sistemom ( koji ponovno koincidira
sa vanjskim k.s kod početne pozicije, kao što je prikazano
na narednoj slici). Vanjske koordinate tačke na objektu u
novoj poziciji, ( Xw, Yw, Zw ) , se mogu dobiti iz svojih
originalnih koordinata, ( Xm, Ym, Zm) , kako slijedi: Ovdje (
Xm, Ym, Zm) su koordinate tačke u odnosu na modelni
koordinatni sistem, i time su one jednake sa svojim
vanjskim koordinatama prije rotacije.
9
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
11
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
14
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Odgovor
Koordinate ( Xw’, Yw’, Zw’) nakon translacije se mogu dobiti
sa:
16
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Primjer br 2
Objekat u prostoru je rotiran 90 stepeni oko ose koja je
paralelna sa x osom vanjskog koordinatnog sistema, i
prolazi kroz tačku koja ima vanjske koordinate ( wcs) (
0,0,1). Koje će biti vanjske koordinate ( wcs) iste tačke
nakon rotacije?
17
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Odogovor
Diskutirali smo rotacije samo oko osa koje prolaze kroz
koord. početak, tako da moramo zajedno pomjeriti i
objekat i osu rotacije. Osa rotacije mora proći kroz koord.
početak dok ista relativna pozicija se održava izmedju
objekta i ose rotacije. Dakle, objekat je transliran za ( 0,-3,-
2) zajedno sa rotacijom ose tako da rotaciona osa koincidira
sa x osom od vanjskog koordinatnog sistema ( wcs). Nakon
toga objekat se rotira oko x ose za 90 stepeni. Sada se
objekat ponovo translira, za ( 0,3,2), da se vrati na
originalnu poziciju.
Ove operacije se mogu izraziti kao:
MAPIRANJE
Mapiranje uključuje izračunavanje koordinata tačke u
odnosu na koordinatni sistem iz poznatih koordinata, od iste
tačke u odnosu na drugi koordinatni sistem.
Posmatrajmo dva koordinatna sistema prikazana na
narednoj slici. Da bi to uradili, predpostavljamo da su
koordinate ( X2, Y2 i Z2 ) tačke P u odnosu na x2, y2 i,z2
koordinatni sistem treba da budu sračunate u odnosu na
19
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
x1y1z1 koordinatni sistem.
21
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Dakle, mi možemo reći da px, py i pz su dobijene kao
koordinate početka od x1y1z1 koordinatnog sistema u
odnosu na x2y2z2 koordinatni sistem.
Mi sada zamjenjujemo vrijednosti od X1= 1, Y1= 0 i Z1= 0 u
jednačinu ( 3.13) i dobijamo:
22
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Druge transformacione matrice
Pored transformacionih matrica opisanih u prethodnom
tekstu, transformacione matrice za skaliranje i za
ogledalsku refleksiju se takodjer često koriste. Da bi se
skalirao jedan objekat prema gore ili dolje, sx puta u x
pravcu, sy u y, i sz puta u z pravcu, slijedeća
transformaciona matrica se primjenjuje:
25
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
OTKLANJANJE SKRIVENIH LINIJA I POVRŠINA
Kada je jedan objekat u prostoru projektovan na ekran,
prikazujući samo vidljive linije i površine će dovesti do
povećanja jasnoće slike. Otklanjanje skrivenih linija ( hidden
line removal) sprječava prikaz segmenata linije da postanu
loše vidljivi, otklanjanje skrivenih površina ( hidden-surface
removal), spriječava prikaz bilo kojeg dijela površine koji je
zaklonjen ( obscured). Naredne dvije slike ilustriraju slike
objekta prije i nakon otklanjanja skrivenih linija. Očito,
razumjevanje slike je mnogo lakše, sa otklonjenim
sakrivenim linijama.
Objavljeni su mnogi softverski algoritmi za otklanjanje
skrivenih linija i/ili površina. Oni pokušavaju da poboljšaju
računarsku efikasnost ili da prošire dijapazon oblika
objekata sa kojima se može manipulirati. Medjutim,
otklanjanje skrivenih linija i/ili površina ima tendenciju da se
najbolje ostvaruje kada se iskoristi prednost hardvera
grafičkog uredjaja koji se naziva z-bafer ( buffer).
26
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
30
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Odstranjivanje stražnjih lica je podržano u OpenGL. Ako ga
nadjemo nećemo ga iscrtavati niti renderisati pošto se lica
na sceni izložena različitim izvorima svjetla najčešće sjenče
radi realističnosti scene. Kako ćemo detektovati ovo
stražnje lice?
Postupak je prikazan na slijedećoj slici:
32
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Takodjer se odstranjuju i svi objekti koji su van volumena
gledanja ( viewing frustum ).
Ovo odstranjivanje se realizuje preko 3D algoritma
odsjecanja ( napr. 3D clipping algorithm Liang – Barsky)
33
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
35
Objekat čiji normalni vektor prema vani nije odredjen jednoznačno
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
38
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
40
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
z – Bafer metod
z- bafer metod je baziran na istom principu kao i algoritam
sortiranja po dubini, po tome što je bilo koji region ekrana
zaposjednut sa entitetom koji je najbliži posmatraču. Ovdje,
entiteti impliciraju tačke, krive ili površine. Ovaj metod
uključuje korištenje hardverske memorije koja se naziva z-
bafer koja pohranjuje, za svaki piksel, Zv vrijednost entiteta
čija projekcija je predstavljena sa pikselom( tako da je
potrebno u video RAM memoriji drzati i frame buffer i z-
buffer). U z-bafferu na svakoj (x,y) koordinati piksela
prijekcione ravni se pohranjuje ,z koordinata entiteta koji se
procesira.
Zv vrijednost ( tj. koordinata u koordinatnom sistemu
posmatranja (vcs) je mjera rastojanja entiteta od
posmatrača. Zbog toga, z-bafer zahtjeva odredjenu kolićinu
memorijskog prostora koja je potrebna da pohrani toliko
realnih varijabli koliko ima piksela.
41
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
42
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
46