Professional Documents
Culture Documents
Oblasti primene:
- Korisniki interfejs
- Vizuelizacija podataka (naunih, medicinskih, geografskih...)
- Elektronsko izdavatvo
- Projektovanje i crtanje (CAD, CAM) (Computer Added Design)
- Zabava( Igre, Film)
Klasifikacija aplikacija:
Kriterijumi:
- dimenzionalnost (2D, 3D)
- tip interakcije
Offline crtanje (crta se iz baze podataka).
Interaktivno crtanje (korisnik utie na parametre).
Real-time animacija.
Interaktivno projektovanje.
- uloga slike u aplikaciji
Slika je krajnji cilj.
Slika je samo deo jedne faze projektovanja.
- veza izmeu objekta i njegovih slika
Formira se samo jedna slika.
Formira se vie povezanih slika.
Radi se sa hijerarhijskom strukturom objekata.
Modeliranje aplikacije i definicija slike:
Model je konceptualni pojam tj. ideja o nekom predmetu, a slika je samo jedan od naina da se taj
model otelotvori.
Alternativni nain bi bio da reima opiemo na model umesto da ga crtamo. Slika je bolji nain!!!
Konceptualni model interaktivne raunarske grafike
Model aplikacije:
Obuhvata sve podatke, objekte i njihove meusobne relacije relevantne za prikaz, interakciju i
negrafike postprocesirajue module.
- Ovo je najvii i najoptiji (najapstraktniji) nivo.
- Model podataka moe biti rudimentaran (niz taaka u datoteci) ili kompleksan (mrena linkovana
struktura, ili relaciona baza podataka).
Aplikacioni program:
- Obezbeuje implementaciju modela aplikacije. On formira i aurira aplikacionu bazu podataka i to na
osnovu podataka dobijenih od korisnika. Takoe, nakon kreiranja ovaj program uzima iz memorije
podatke, kada doe vreme za njihovo slanje u narednu komponentu modela.
- Aplikaciona baza podataka, obezbeuje vane informacije, kao to su geometrijski i vizuelni opis
objekta, znanje o objektu, njegovim elemenitima i njihovim meusobnim relacijama.
Grafiki sistem:
Predstavlja sponu izmeu grafike opreme i aplikativnog programa.
- Grafiki sistem je bilo koji skup hardverskih i softverskih entiteta, takvih da programerima
pojednostavljuju upotrebu grafikih ulaza i izlaza.
- Grafiki sistem je skup hardverskih i softverskih elemenata i njihovih veza, projektovan tako da
zadovolji potrebe odreene aplikacije za grafikom komunikacijom.
Funkcije grafikog sistema:
- Grafiki sistem mora obezbediti rad sa podacima, njihovo uvanje i prikazivanje u obliku teksta i slike.
- Takoe mora omoguiti korisniku da na prihvatljiv nain prepozna i interpretira grafiki prikazane
podatke i da ih po potrebi menja i utie na njihovo pojavljivanje.
- Grafiki sistem se obino sastoji od skupa procedura koje odgovaraju razliitim primitivama, atributima
i ostalim elementima. Najee su sve te procedure organizovane u grafike biblioteke, takozvane
grafike API-je.
3. Grafiki API
Definicija:
Grafiki API (Application Programming Interface) je skup grafikih funkcija organizovanih u jednu ili
vie grafikih biblioteka koje predstavljaju interfejs izmeu aplikacionog programa i grafikog sistema.
- Programer vidi samo GAPI dok su detalji o hardverskoj i softverskoj implementaciji sadrani u
grafikoj biblioteci
Istorijski pregled:
- Prvi GAPI je nastao 1973 godine. IFIPS (International Federation of Information Processing System) je
formirao dve komisije koje su realizovale GKS (Graphical Kernel System).
- Ovaj sistem je standardizovan najpre kao ISO a zatim kao ANSI standard (1980).
- Kasniji pokuaj da se proiri na 3D je bio neuspean.
- PHIGS (Programmers Hierarchycal Graphics System) ovaj standardni GAPI je nastao pod uticajem
CAD programera i korisnika.
- X Windows - sistem razvijen od DEC-a / MIT-a (prvi je imao client-server arhitekturu u radu sa
grafikom).
- PEX - jedan od neuspelih pokuaja da se spoji PHIGS i X Windows (preteak je za korienje).
-1982 godine Silicon Graphics (SGI) po prvi put implementira protonu obradu podataka (pipeline) kod
hardvera, to je predstavljalo revoluciju u oblasti razvoja grafikih radnih stanica. Za pristup hardveru je
koriena GL biblioteka. Ona je omoguila relativno jednostavno programiranje 3D interaktivnih
aplikacija.
- 1992 godine nastaje OpenGL kao GAPI koji je nezavisan od platforme. Ovo je bila revolucija u svetu
raunarske grafike.
- Evoluciju OpenGL-a kontrolie ARB (Architectural Review Board) grupa. Ova grupa je sastavljena od
vodeih kompanija u oblasti raunarstva i raunarske grafike: Microsoft, Silicon Graphics, NVidia, HP,
IBM...
- Trenutna verzija OpenGL-a je 1.4
Funkcije GAPI-ja:
1. Funkcije za primitive - Grafike primitive su objekti najnieg nivoa. To su osnovni entiteti koje grafiki
sistem moe da prikae (taka, linija, poligon, piksel, tekst,...)
2. Funkcije za kontrolu atributa primitiva Primitive definiu ta e se nacrtati, a njihovi atributi kako e
se nacrtati (boja i debljina linije, tip linije,...).
3. Funkcije pogleda - omoguavaju formiranje 2D prikaza na osnovu 3D objekta (koji objekti iz realnog
3D sveta e biti ukljueni u 2D prikaz i na koji nain).
4. Funkcije za geometrijske transformacije - Omoguavaju 2D i 3D geometrijske transformacije nad
objektima (translacija, rotacija, skaliranje,...).
5. Funkcije za ulaz - Omoguavaju korisnicima da vre unos podataka u aplikaciju putem delova
grafikog sistema (tastatura, mi, tabla, skener,...).
6. Kontrolne funkcije - Omoguavaju komunikaciju sa operativnim sistemom pod kojim se grafika
aplikacija izvrava (inicijalizacija, kontrola prozora,...).
7. Ispitivake funkcije - Omoguavaju dobijanje informacija o karakteristikama pojedinih komponenata
grafikog sistema (broj boja koje monitor moe da prikae, rezolucija,...). Na ovaj nain programeri
dobijaju mogunost da piu takozvane device independent aplikacije koji ne zavise od grafikog
sistema na kome se izvravaju.
GAPI Standardi:
- GKS (ANSI X3.124)
- PHIGS
- Java 2D
- Java 3D
- GDI
- OpenGL
- DirectX
Windows GDI:
GDI (Graphics Device Interface) je 2D GAPI koji koristi Microsoft u svojim operativnim sistemima.
Princip rada:
Device Context:
-Device Context je apstraktni (virtuelni) ureaj. Kada se programira, pristupa se ovom virtuelnom
ureaju i na taj nain se ne vodi rauna direktno o hardveru (koji je tip, kakve su karakteristike,...). O
hardveru vode rauna drajveri (device drivers).
Enkapsulacija GDI funkcija u MFC klase:
- CDC Device Context
- CPen Olovka
- CBrush etka
- CBitmap Rasterska slika
- CPalette Paleta
- ...
OpenGL:
- OpenGL (Open Graphics Library) je organizovan u nekoliko biblioteka:
GL je jezgro OpenGL-a. Ona je osnovna biblioteka openGL-a. Ona sadri imena svih openGL
funkcija.
GLU (graphic utility library) je biblioteka koja obezbeuje potrebnu funkcionalnost OpenGL jezgra.
Ova biblioteka koristi samo GL funkcije i sadri kod za kreiranje objekata koji se esto koriste kao i
procedure koje se esto koriste.
GLUT (GL Utility Toolkit) je biblioteka koja obezbeuje minimum funkcionalnosti koja se oekuje od
modernih sistema zasnovanih na prozorima (otvaranje prozora, ulaz - mi, tastatura, meniji,...).
GLX (WGL, AGL). Slue za spregu sa operativnim sistemima. Korienjem ovih funkcija se gubi
potreba da OpenGL aplikacija poziva direktno funkcije operativnog sistema. GLX je sprega sa X
Windows-om, WGL sa Microsoft Windows-om, AGL sa Apple Mac O/S-om.
Organizacija OpenGL biblioteka:
Ulazni ureaji:
- Analogni (Dojstik, Mi, Trackbal)
- Digitalni (Svetlosno pero, Ekrani osetljivi na dodir, Digitalne kamere, Skeneri)
- Svi ulazni ureaji se mogu svrstati u pet logikih tipova
(prema njihovoj ulozi u sistemu):
Lokator (pokazuje poziciju i orijentaciju) - Grafika tabla, mi, dojstik
Valuator (za unos jednog realnog broja) - Potenciometar
Tastatura (za unos znakovnog niza)
Pokaziva (za izbor elemenata slike) - Svetlosno pero
Dugme (za izbor neke akcije iz skupa moguih alternativa)
Izlazni ureaji:
- Vektorski ureaji
- Rasterski ureaji
Vektorski ureaji:
- Bafer slui da memorie listu komandi za iscrtavanje take ili linije sa zadatom poetnom i krajnjom
takom, karaktera ili znaka.
- Linije se mogu zadavati i u 2D i u 3D koordinatnom sistemu. Displej procesor interpretira te komande I
alje digitalne koordinate take generisanjem vektora koji se konvertuje u odgovarajui analogni signal.
Ovaj signal predstavlja napon koji je potreban da bi se osvetlile take na ekranu.
- Sutina je da zrak prati taku po taku specificiranim redosledom iz displej-programa, odnosno, mlaz
se kree u onom redosledu i smeru, kako mu to diktiraju komande iz bafera.
- Tehnika prikaza na vektorskim ureajima se naziva sluajnim skaniranjem (random-scan) jer je svaka
taka na ekranu adresibilna. Poto svetlosni izlaz fosfora opada u desetinama ili najvie stotinama
mikrosekundi, displej-kontroler mora kruiti kroz listu za prikaz da bi osveio fosfor barem 30 puta u
sekundi (30Hz).
- Bafer koji sadri listu za prikaz se esto naziva baferom za osveavanje (refresh buffer).
- Instrukcija JMP na kraju programa formira petlju da obezbedi ciklino osveavanje.
Rasterski ureaji:
- Rasterska grafika je bazirana na tehnologiji televizije (tehnika prikazivanja poznata kao raster-scan).
- Smatra se da je rasterska grafika doprinela razvoju raunarske grafike vie nego bilo koja druga
tehnologija.
- Rasterski prikazivai (raster display) smetaju primitive za prikaz u bafer za osveavanje. Primitive su
linije (prave i lukovi), karakteri i popunjene (ravnomerno ili teksturom) povrine. Primitive su razloene
na piksele - najmanje komponente od kojih su obrazovane.
- Kompletna slika na rasterskom prikazivau se formira iz rastera. Raster predstavlja niz horizontalnih
rasterskih linija od kojih je svaka red individualnih piksela. Raster se uva kao matrica piksela koja
reprezentuje celu povrinu ekrana.
- Cela slika se skenira sekvencijalno od strane video kontrolera i to linija po linija od vrha prema dnu i
zatim ponovo od vrha.
- Za svaki piksel, intenzitet mlaza se postavlja tako da reflektuje intenzitet piksela.
Rasterski displej CRT(Cathode Ray Tube):
- CRT je katodna cev poput one kod najobinijeg televizora
CRT princip rada:
- Elektronski top emituje mlaz elektrona.
- Tanak mlaz elektrona se postie sistemom za fokusiranje.
6
- Usmeravanje mlaza elektrona se postie pomou kalemova za skretanje prema odreenoj taki na
fosfornoj ploi. Poto su elektroni dosta ubrzani, oni udaraju u fosfor ogromnom brzinom, a fosfor svetli.
Poto intenzitet svetlosti fosfora opada sa vremenom taku je potrebno pogaati vie puta u sekundi,
da bi se izbegao efekat treperenja. Osveavanje cele slike je neophodno vriti vie puta u sekundi. Taj
broj odreuje period osveavanja slike (refresh rate). Uobiajeno je da ova frekvencija bude oko 60
ekrana (frejma) u sekundi.
- Kontrolni grid (mrea) u katodnoj cevi slui da odredi broj elektrona u mlazu. to je negativniji napon
kontrolnog grida, to je broj elektrona u mlazu manji. Na taj nain se kontrolie intenzitet osvetljenja.
- Ekran se sastoji od niza taaka koje predstavljaju najmanje fizike jedinice (dot-ovi) koje se mogu
kontrolisati. Njihova veliina ne mora biti jednaka veliini piksela. Jedan piksel je obino veliine
nekoliko dot-ova.
Kolor CRT:
Kako se formira slika?
- Linije imaju odreeni nagib (downhill) i formiraju cikcak popunu ekrana.
- Poto je mlaz
vrlo teko kontrolisati, na krajevima ekrana se
obino
ne
prikazuje slika tj. taj deo ostaje neiskorien. Taj
vremenski
period, koji bi inae bio potreban da se iscrtaju delovi ekrana na
ivicama
se
koristi za povratak mlaza na poetak nove linije, ili novog frejma. Ovaj
period se naziva
period zatamnjenja (blanking-time).
Oblasti na ekranu:
TL Ukupna linija
BL Blanko linija
7
AL Aktivna linija
HB Horizontalni period zamraenja
HFP Prednja stepenica (front porch)
HBP Zadnja stepenica (back porch)
HS Sinhronizacioni impuls
Napomena: Isto vai i za vertikalne linije samo su oznake: VB,
VFP,VS, VBP
Naini iscrtavanja:
- Bez preplitanja (non-interlaced). Postoji samo jedan frejm i on se iscrtava u svakom frejm periodu.
- Sa preplitanjem (interlaced). Postoje dva frejma. U jednom su parne, a u drugom neparne linije. U
jednoj poluperiodi frejma se iscrtava jedan frejm, a u drugoj poluperiodi se iscrtava drugi frejm. Ovaj
metod daje dobre rezultate sa monitorima koji rade na niim frekvencijama.
Definicije:
- fh . horizontalna uestanost (broj iscrtanih horizontalnih linija u sekundi)
- fv - veritkalna uestanost ili refresh rate (broj iscrtanih ekrana u sekundi). Ona je gornji limit za periodu
osveavanja. Ova karakteristika se zove i frekvencija osveavanja.
- fp - uestanost taktnog signala za iscrtavanje piksela (dot clock). To je maksimalan broj taaka u
sekundi
koji moe biti iscrtan.
VB
.
Propusni opseg (video bandwith najvia frekvencija koju monitor
moe
da
izdri). Na primer, za rezoluciju 640*480 -> VB=25Mhz, za 800*600 ->
VB=36Mhz, za 1024*768 -> VB=65Mhz.
Bandwidth odslikava brzinu kojom elektronski top moe da se ukljui
ili iskljui.
- Ako je veliina scan linije n taaka (tj. Horizontalna rezolucija je n), onda za jednu liniju moda mora
da se elektronski top ukljui i iskljui po n/2 puta.
- Vei bandwidth obezbeuje da pikseli imaju otrije ivice i da ne budu (horizontalno) ,,razmazani.
- R . rezolucija. Jednaka je ukupnom broju piksela koji mogu biti prikazani na ekranu tj. aktivnoj oblasti.
R= AP * AL
- AR - Aspect ratio. To je odnos horizontale i vertikale, i
obino iznosi 4:3.
AR = AP/AL
Refresh rate:
- Poto je fp konstanta (odreuje je video adapter), iz formule se vidi da ukoliko elimo da poveamo
refresh rate (fv), onda moramo da smanjimo rezoluciju i obrnuto.
- Ukoliko je refresh rate previe mali dolazi do treperenja slike (treba ga drati iznad 60 Hz).
- VESA standart propisuje da refresh rate bude minimalno 72Hz.
- 120Hz je frekvencija fluorescentnih osvetljenja.
Druge tehnologije za prikaz:
- DVST (direct-view storage tube) ne zahteva veliku frekvenciju osveavanja (jer je slika reprezentovana
raspodelom naelektrisanja na unutranjoj povrini ekrana), ali je nepraktian jer prilikom izmene i
najmanjeg detalja na slici, kompletna slika (raspodela naelektrisanja) mora ponovo biti kreirana.
- LCD (liquid-crystal display). Oni su zasnovani na korienju dugakih molekula kristala, koji
zahvaljujui specifinom korienju elektriciteta i polarizacije svetlosti stvaraju osvetljene ili tamne
delove ekrana.
- TFT (Thin Film Transistor). Ovo je jedan od podtipova Active matrix panels ekrana. To su LCD ekrani
kod kojih je u svaki piksel udraen po jedan tranzistor (koji opisuje taj piksel), te kod njih nema
treperenja.
Naivni algoritam:
10
11
13
Polinomni algoritam:
14
- Pretpostavimo da je krunica prola kroz taku P(x,y) i da treba odluiti da li e proi kroz A(x-1, y+1)
ili B(x, y+1).
- Uvodi se pojam kvadradtne greke (odstupanja u odnosu na geometrijski tanu krunicu) u taki K:
15
Trigonometrijski algoritam:
Pretpostavka je da se crta elipsa sa centrom u koordinatnom poetku, sa osama koje se poklapaju sa
koordinatnim osama. Trigonometrijski algoritam radi na osnovu parametarskih jednaina elipse,
odnosno na osnovu trigonometrijskih funkcija.
17
}
Polinomni algoritam nedostaci:
- Operacije sa realnim brojevima.
- Lo rezultat
Bresenham-ov algoritam - implementacija:
void BresenhamEllipse(int a, int b, COLORREF value)
{
int x,y,a2,b2, s, t;
x = 0; y = b;
s = a2*(1-2*b) + 2*b2;
t = b2 - 2*a2*(2*b-1);
WritePixel4(x,y,value);
while (y>0){
if (s<0){
s += 2*b2*(2*x+3);
t += 4*b2*(x+1);
x++;
}
else if (t<0){
s += 2*b2*(2*x+3) - 4*a2*(y-1);
t += 4*b2*(x+1) - 2*a2*(2*y-3);
x++;
y--;
}
else {
s -= 4*a2*(y-1);
t -= 2*a2*(2*y-3);
y--;
}
WritePixel4(x,y);
}
}
Diferencijalni algoritam I reda:
19
20
- Algoritmi koji rade nad ovakvim oblastima treba da postave sve njihove piksele na vrednost
new_value
- Ovi algoritmi se nazivaju algoritmima popunjavanja oiviene oblasti (boundary-fill)
Tipovi oblasti prema povezanosti piksela:
- 4-susedne oblasti (4-connected)
- 8-susedne oblasti (8-connected)
4-susedne oblasti:
- Od proizvoljnog piksela u oblasti do svih drugih u oblasti moe se stii sekvencom horizontalnih i
vertikalnih pomeraja za 1 piksel.
8-susedne oblasti:
- Od proizvoljnog piksela u oblasti do svih drugih u oblasti moe se stii sekvencom horizontalnih,
vertikalnih i dijagonalnih pomeraja za 1 piksel
Algoritmi za popunu:
- Flood-fill algoritmi.
- Algoritmi za popunu oivienih oblasti.
Rekurzivni Flood-fill algoritam za 4- susedne oblasti:
void Flood_Fill4(int x, int y, COLORREF
old_value, COLORREF new_value)
{
if (ReadPixel(x,y)==old_value){
WritePixel(x,y,new_value);
Flood_Fill4(x,y-1,old_value,new_value);
Flood_Fill4(x,y+1,old_value,new_value);
Flood_Fill4(x+1,y,old_value,new_value);
Flood_Fill4(x-1,y,old_value,new_value);
}
}
COLORREF ReadPixel(int x, int y)
{
CClientDC dc(this);
return dc.GetPixel(x,y);
}
Rekurzivni Flood-fill algoritam za 8 - susedne oblasti:
void Flood_Fill8(int x, int y, COLORREF old_value, COLORREF new_value)
{
if (ReadPixel(x,y)==old_value){
WritePixel(x,y,new_value);
Flood_Fill8(x,y-1,old_value,new_value);
Flood_Fill8(x,y+1,old_value,new_value);
Flood_Fill8(x+1,y,old_value,new_value);
Flood_Fill8(x-1,y,old_value,new_value);
Flood_Fill8(x-1,y-1, old_value,new_value);
Flood_fill8(x-1,y+1, old_value,new_value);
Flood_fill8(x+1,y-1, old_value,new_value);
Flood_fill8(x+1,y+1, old_value,new_value);
}
}
Rekurzivni algoritam za popunu oiviene 4-susedne oblasti:
void Boundary_Fill4(int x, int y, COLORREF
boundary_value, COLORREF new_value)
{
COLORREF temp_value=ReadPixel(x,y);
if (temp_value!=boundary_value)&&(temp_value !=
new_value)){
Writepixel(x,y,new_value);
22
Boundary_Fill4(x,y-1,boundary_value,new_value);
Boundary_Fill4(x,y+1,boundary_value,new_value);
Boundary_Fill4(x+1,y, boundary_value,new_value);
Boundary_Fill4(x-1,y, boundary_value,new_value);
}
}
Nedostaci rekurzivnih algoritama za popunu oblasti
- Brza popuna steka!!!
- Zbog toga se koriste iterativni algoritmi.
Iterativni algoritam:
23
Treba uzeti oba principa ali treba razlikovati ova dva sluaja:
Ako se dvostruki presek nalazi na lokalnom minimumu ili maksimumu, treba uzeti presek kao dve take.
U ostalim sluajevima treba uzimati presek kao jednu taku.
n nagib linije
Popuna poligona zadatog listom temena-algoritam Koriste se dve tabele:
- Tabela ivica ET (Edge Table) tabela pointera na sken linije
- Tabela aktivnih ivica AET (Active Edge Table)
24
Algoritam:
25
- Obzirom da znamo da svaka sken linija moe 2 puta da presee krunicu ili elipsu, nema potrebe za
AET.
- Obzirom da je re o simetrinim figurama, moemo to da iskoristimo u algoritmu.
Popuna kruga i elipse-algoritam:
7.
26
Implementacija:
void SelSetPixel(CRect w, CPoint p, COLORREF v)
{
if ((w.left <= p.x) && (p.x <= w.right)
&& (w.top >= p.y) && (p.y >= w.bottom))
WritePixel(p.x,p.y,v)
}
Isecanje take nedostaci:
- Ovaj metod nije efikasan jer koristi dosta if naredbi.
- Bolje reenje je posmatrati cele objekte, a ne njegove sastavne take (piksele).
Odsecanje linija:
Cohen-Sutherland algoritam:
27
28
29
Cyrus-Beck algoritam:
- Optimizuje se postupak nalaenja preseka
- Nai PE sa najveim t
30
- Nai PL sa najmanjim t
- Nacrtati liniju izmeu ove dve take
Poreenje:
- Cohen-Sutherland
Neefikasan je kada se radi o ponavljanju odsecanja.
Najbolje rezultate daje kada se najvei broj linija moe trivijalno prihvatiti ili odbaciti.
- Cyrus-Beck
Efikasno izraunavanje t-preseka.
Izraunavanje (x,y) taaka za kliping se vri samo jedanput.
Algoritam ne razmatra trivijalno prihvatanje i odbacivanje.
Najbolji je kada postoji dosta linija za kliping.
- Postoji i Liang-Barsky algoritam: on predstavlja optimizovani Cyrus - Beck algoritam...
Odsecanje poligona:
- Mnogo je sloenije od odsecanja linija
Ulaz: poligon
Izlaz: originalni poligon, novi poligon, ili nita...
Odsecanje trougla:
- Ulaz/izlaz za algoritam:
Ulazna lista: ureena lista temena poligona
Izlazna lista: lista temena novog poligona koja se sastoji od nekih starih i nekih novih temena
(najee)
- Oznake:
p - taka za koju se trenutno proverava da li treba da ide u izlaznu listu.
s - taka iz prethodne iteracije.
- etiri sluaja:
s i p su unutra
- Dodati p u izlaznu listu
- s je ve u listi
s je unutra a p spolja
- Nai taku preseka i
- Dodati i u izlaznu listu
s i p su spolja
- Nita se ne dodaje u izlaznu listu
s je spolja a p je unutra
- Nai taku preseka i
- Dodati i i p u izlaznu listu
32
33
34
35
Weiler-Atherton algoritam:
- Osnovna ideja:
Algoritam reava problem odsecanja proizvoljnog poligona
izvan prozora, koji je proizvoljan poligon. Praktino, odreuje se presek dva proizvoljna poligona. Oba
poligona mogu biti i konkavna, a takoe, mogu sadrati i rupe. Algoritam kree od proizvoljnog temena
zadatog poligona koji se odseca, u pravcu kazaljke asovnika (temena su ureena na ovaj nain). Prati
se ivica poligona koji se odseca sve do preseka sa ivicom poligona-prozora. Ako ivica "ulazi" u prozor,
nastavlja se praenje ivice poligona koji se odseca. Ako ivica "izlazi" iz prozora, skree se "udesno" i
nastavlja ivicom prozora, na nain kao da je on sada poligon za odsecanje, a originalni poligon za
odsecanje sada prozor. Take preseka se pamte da bi se obezbedilo da se svi putevi preu tano
jednom.
2. Deli se krug (elipsa) na kvadrante i vri se trivijalno prihvatanje ili odbacivanje kvadranata.
3. Nalaze se presene take kruga (elipse) sa regionom za odsecanje i vri se iscrtavanje dela kruga
(elipse).
8. Geometrijske transformacije
- Geometrijske transformacije preslikavajuoriginalnu taku u njenu sliku.
Podela geometrijskih transformacija:
- Dvodimenzionalne transformacije (2D).
- Trodimenzionalne transformacije (3D).
2D desni pravougli koordinatni sistem je definisan na sledei nain:
koordinatna osa prve koordinate (X) se prevodi u osu drugu koordinate (Y) rotacijom oko
koordinatnog poetka za 90 u smeru suprotnom od kretanja kazaljke na asovniku.
Elementarne 2D transformacije:
- Translacija
- Skaliranje
- Rotacija
- Refleksija
- Smicanje
Translacija:
Skaliranje:
Refleksija:
- Refleksija je skaliranje sa negativnim faktorom skaliranja.
Refleksija prema proizvoljnoj osi:
- Translacijom se dovede koordinatni poetak na datu osu.
- Rotacijom se X-osa poklopi sa datom osom.
- Primeni se refleksija prema X-osi.
- Inverzna rotacija.
- Inverzna translacija.
Smicanje (Shear):
Homogene koordinate:
Kako bi se postigla uniformnost transformacija, uvode se homogene koordinate:
- Jedna taka moe da ima vie homogenih koordinata. Na primer, (2,3,6) i (4,6,12) predstavljaju jednu
istu taku.
- (0,0,0) nije dozvoljena. To je taka u beskonanosti.
- (x,y,w) i (x,y,w) predstavljaju jednu istu taku ukoliko su jedne koordinate umnoak druge.
- U raunarskoj grafici se koristi sledei oblik homogenih koordinata: (x,y,1)
Translacije homogene koordinate:
Inverzne transformacije:
Komponovanje transformacija:
Vaee relacije:
39
3D transformacije:
- Postoji formalna slinost sa transformacijama u 2D grafici:
dodaje se jedan lan jednaina (za koordinatu z),
dodaje se jedna jednaina (za z' )
posledica je da matrica transformacije postaje 4x4
Translacije homogene koordinate:
40
9. Geometrijske projekcije
-Projekcije preslikavaju taku iz n-dimenzionalnog koordinatnog sistema (prostora) u koordinatni sistem
(prostor) koji ima manje
od n dimenzija.
-U raunarskoj grafici se obino radi sa projekcijama koje
preslikavaju objekte iz 3D prostora u 2D prostor.
-Ukoliko se radi o projekciji na ravan onda se radi o planarnoj projekciji.
-U raunarskoj grafici se uglavnom radi sa planarnim projekcijama.
Osnovni parametri projekcije:
- Centar projekcije (COP).
- Projekcijski zraci.
- Projekciona ravan.
Paralelne projekcije:
- Svi projekcioni zraci polaze iz jedne take koja predstavlja centar projekcije (COP) i ta taka se nalazi
u beskonanosti.
- Posledica ovoga je da su svi projekcioni zraci paralelni.
- Karakterie se projekcionom ravni i pravcem projekcije (DOP)
Podela paralelnih projekcija:
- Normalna (ortogonalna): Projekcioni zraci su normalni na projekcionu ravan.
- Kosa (klinogalna): Projekcioni zraci su kosi u odnosu na projekcionu ravan.
Normalna projekcija:
- Ortografska: Projekciona ravan je normalna na neku od koordinatnih osa.
- Aksonometrijska: Projekciona ravan zaklapa proizvoljni ugao sa koordinatnim osama.
Ortografska projekcija:
Postoje tri ovakve projekcije:
Pogled odozgo
Pogled spreda
Pogled sa strane
Aksonometrijska projekcija:
Postoje tri ovakve projekcije:
Izometrijska (projekciona ravan zaklapa isti ugao sa svim koordinatnim osama)
Dijametrijska (projekciona ravan zaklapa isti ugao sa dve koordinatne ose)
41
Ortografska projekcija:
Perspektivna projekcija:
42
Kosa projekcija:
- Za = 45 i L1 = 1 Kavaljerska projekcija
- Za = arctg(2) i L1 Kabinetska projekcija
Transformacije koordinatnih sistema:
- Isti efekti koji se postiu translacijom, skaliranjem i rotacijom objekata, mogu se ostvariti i ako se
objekat ne pomera, ve se pomera i menja koordinatni sistem, odnosno mesto posmatranja objekta.
- U tom sluaju se menja znak parametrima dx, dy, dz, , odnosno, uzima se reciprona vrednost za Sx,
Sy, Sz.
Transformacija levog u desni koordinatni sistem:
10. 2D i 3D pogled
2D pogled:
- 2D pogled predstavlja proces raunarskog predstavljanja objekata iz 2D sveta na nekom od izlaznih
grafikih ureaja (tampa, ekran, ploter,...)
Lokalne koordinate:
- Lokalne koordinate su koordinate objekta
(modela).
Svetski koordinatni sistem:
- Lokalne koordinate treba transformisati u svetske (prirodne) koordinate. Svetski (prirodni) koordinatni
sistem opisuje relativnu poziciju i orijentaciju svih objekata na sceni.
43
44
Aspekt:
- Aspekt definie odnos irine i visine slike.
Implementacija 2D pogleda:
45
3D pogled:
- 3D pogled predstavlja proces raunarskog predstavljanja objekata iz 3D sveta na nekom od izlaznih
grafikih ureaja (tampa, ekran, ploter,...)
3D pogled analogijasa fotografisanjem:
- Osnovni elementi i kod klasinog i kod kompjuterskog pristupa posmatranju objekata u principu su isti.
Tako postoje objekti, posmatra, projektori i ravan projekcije.
- Postoji analogija izmeu raunarskog posmatranja objekata i fotografisanja.
Implementacija 3D pogleda:
46
Standardna soiva:
- 48.24 mm ekvivalent ljudskog vida
- irokougaona soiva (obuhvataju veu scenu umanjuju prikaz) <50mm
35 mm i 28 mm standardna irokougaona soiva
10-15 mm riblje oko (sferno soivo), velika distorzija
- telefoto soiva (uveavaju prikaz, pribliavaju udaljene objekte) >50mm
- Koristiti FOV u opsegu: 30-60, za realne scene, da ne bi dolo do distorzije.
Proirenje Cohen-Sutherland-ovog algoritma za isecanje u kanonikom volumenu:
- Da bi slika na ekranu bila realna, potrebno je da se izbace svi sakriveni objekti i sve sakrivene povri.
- Da bi se reio ovaj problem potrebno je da se izrauna dubina (depth) i vidljivost (visibility) svih povri
slike.
Uporeivanje dubine:
- Problem vidljivosti se svodi na utvrivanje da li dve take zaklanjaju jedna drugu. To se moe utvrditi
sledeim postupkom:
1. Utvrditi da li take P1 i P2 lee na istom projekcionom zraku.
2. Ako take P1 i P2 ne lee na istom projekcionom zraku, onda se one ne zaklanjaju. Meutim, ako se
nalaze na istom projekcionom zraku, onda je potrebno utvrditi koja se nalazi blie posmatrau.
- Poreenje dubina se obino vri posle normalizacije. Tada su projekcioni zraci kod paralelne projekcije
paralelni sa Z osom, a kod perspektivne projekcije polaze iz koordinatnog poetka.
- Kod paralelne projekcije, take su na istom projekcionom zraku ako je x1=x2 i y1=y2, a kod
perspektivne projekcije, take su na istom projekcionom zraku ako je x1/z1 = x2/z2 i y1/z1 =
y2/z2.
Algoritmi za uklanjanje sakrivenih ivica i povri:
- Do sada je razvijen veliki broj algoritama za reavanje ovog problema. Ni za jedan od ovih algoritama
se ne moe rei da je najbolji. Svaki od njih ispunjava neke od zahteva za reavanje problema
sakrivenih povri. Shodno tome ih treba birati u konkretnoj aplikaciji.
- Postoje dva prilaza:
Algoritmi prostora slike
Algoritmi prostora objekata
Algoritmi prostora slike:
- Prvi pristup za svaki piksel slike dimenzija n x m odreuje koji od k objekata je vidljiv.
- Sloenost algoritma je O(nmk)
- Algoritam:
1. Za svaki piksel slike uraditi:
2. Odrediti objekat najblii posmatrau (du prave
odreene projekcijom).
3. Obojiti piksel odgovarajuom bojom.
- Ovaj pristup se obino zove image-precision.
- Najpre je korien u ranim sistemima sa rasterskom grafikom (koji mogu da adresiraju relativno mali
broj taaka, ali mogu da prikazuju veliki broj objekata).
-Algoritmi iz ove grupe su:
Z-buffer algoritam (Catmull 1974).
Warnock-ov algoritam (Warnock 1969).
Scan-line algoritam (Watkinson-ov algoritam).
Ray-tracing algoritam (algoritam praenja zraka - Appel
(1968), Goldstein i Nagel (1968, 1971)).
Z-buffer algoritam:
- Algoritam sa Z baferom koristi pored bafera ureaja za prikazivanje slike (frame buffer) i poseban
bafer gde se u poziciji (x,y) pamti najmanja Z koordinata (dubina) taaka koje se vide iz piksela (x,y).
- Ovaj bafer se zove Z-buffer. Dakle, najmanja dubina svih taaka koje se vide iz piksela (x,y) se pamti
u Zbaferu na poziciji (x,y).
- koristi se u OpenGL-u
48
Z-buffer prednosti:
- Jednostavno se implementira i softverski i hardverski.
- Nije potrebno sortiranje objekata pre primene algoritma.
- Poligoni se pojavljuju na slici redom kojim se obrauju.
- Mogue su optimizacije raunanja (izbegavanje mnoenja i sl. na bazi prirode scan-conversion
algoritma).
- Z-bafer algoritam ne zahteva nuno da primitivne povri budu poligoni.
- Z-bafer podaci mogu da budu uvani zajedno sa generisanom slikom i da se toj sceni naknadno doda
novi objekat.
Z-buffer nedostaci:
- Zahteva postojanje memorijskog prostora ne samo za vrednost boje za svaki piksel (frejm bafer F),
ve i memorijskog prostora za z-vrednosti (tj. z-koordinate) za svaki piksel (z-bafer).
Warnock-ov algoritam:
1. Analiziramo sadraj ispitnog prostora koji je u poetku jednak
zaslonu. Mogui sluajevi:
- prozor je prazan
- scena u prozoru je jednostavna i mogue ju je prikazati
- scena u prozoru je sloena, rekurzivno delimo dalje
2. Podela prostora (quad tree).
3. Podela poligona u tri grupe, u zavisnosti od
relacije sa prozorom:
- poligon je izvan prozora (uklonimo ga iz liste)
- poligon see prozor ili je u prozoru
- poligon prekriva prozor
Scan-line algoritam (Watkinson-ov algoritam):
1. U projekcionoj ravni se postavi ispitna linija.
2. Odreuju se rasponi uzorka. Raspon uzorka je deo linije na kome se ne moe dogoditi promena
vidljivosti. To je deo linije koji ispunjava sledee uslove:
- Broj segmenata u rasponu uzorka je konstantan i >= 1.
- Projekcije preseka za y=yi unutar raspona uzorka u ravni xz se ne seku unutar raspona uzorka (svaki
presek u projekciji oznaava novi raspon uzorka).
3. Odreivanje vidljivosti. Raspon uzorka se testira u odnosu na vidljivost:
- Ako je broj segmenata na tekuoj ispitnoj liniji razliit od broja segmenata na prethodnoj ispitnoj liniji ili
- Ako se krajnje take dva segmenata zamene, po veliini koordinate z (na primer: take A i C , B i D )
kad prelazimo iz tekue u susednu ispitnu liniju (tada se obe povrine seku u prostoru izmeu dve
ispitne ravni).
4. Ispitivanjem z-koordinate moemo odrediti koji segment u rasponu uzorka prekriva druge segmente.
Ray-tracing algoritam (algoritam praenja zraka):
- Ovaj algoritam se jo zove i Ray-casting algoritam, mada se ovo ime obino koristi samo za varijantu
za odreivanje vidljivosti (a ray tracing za puni rekurzivni algoritam).
49
- Ideja je sledea: Za svaki piksel na slici se emituje imaginarni zrak od oka posmatraa ka sceni, a da
pritom proe kroz zadati piksel. Nakon toga se detektuje prvi objekat koji je pogoen emitovanim
zrakom i piksel se boji u boji pogoenog objekta.
- Originalno razvijen za simuliranje putanja balistikih projektila, sada ima najznaajnije primene u
grafici. Koristi se za odreivanje vidljivosti, bulove operacije nad telima, odreivanje refleksije i refrakcije
(prelamanja) itd.
52
- U ovom obrascu je Pw distribucija spektralne energije za bilo koji izabrani izvor svetla kao standard za
belo.
- Vrednosti hromatinosti se dobijaju kao:
- Ovaj model boja pripada grupi aditivnih modela. Kod ovih modela se boje dobijaju tako to se dodaju
crnoj boji:
Red + Green = Yellow Red + Green = Yellow
Red + Blue = Magenta Red + Blue = Magenta
Green + Blue = Cyan Green + Blue = Cyan
Red + Green + Blue = White Red + Green + Blue = White
CMY Model:
- CMY (Cian-Magenta-Yelow). Ove boje su komplementi od crvene, zelene i plave. One se nazivaju i
subtraktivne osnovne boje. Model pripada grupi subtraktivnih modela. U prethodnom modelu su se boje
dobijale tako to su se dodavale crnoj boji, a sada se boje dobijaju tako to se oduzimaju od bele boje.
Ovaj model se koristi za ureaje koji tampaju po beloj podlozi.
- Na primer, cian oduzima crvenu boju od bele svetlosti. Dakle, ako znamo da je bela svetlost jednaka R
+ G + B, onda moemo definisati cian boju kao: R + G + B - R = G + B.
- Magenta oduzima zelenu, uta oduzima plavu!
- Konverzija izmeu ova dva modela se obavlja na sledei nain:
53
CMYK Model:
- CMYK je model izveden iz CMY modela. K je oznaka za crnu.
Transformacije kojima se prelazi sa CMY na CMYK su sledee:
K = min (C,M,Y)
C=C-K
M=M-K
Y=YK
YIQ Model:
- Ovaj model se koristi u komercijalnoj televiziji i stoga je usko vezan za rastersku grafiku. YIQ je
prekodiran RGB radi efikasnije transmisije i zbog kompatibilnosti sa crno-belim televizorima. Y je
oznaka za osvetljenje, a ne za utu boju. Ovo je kao Y koordinata kod CIE modela. CIE definie tri
standardne boje: X - crvena, Y - zelena, Z - plava. Na crno-belim monitorima se prikljuuje samo Y
komponenta. Kod monitora u boji koristi se i I i Q.
RGB YIQ konverzija:
- Specificiranje boja YIQ modelom reava potencijalni problem sa materijalom koji je pripremljen za
televiziju. Dve razliite boje prikazane strana po strana na kolor monitoru pojavie se kao razliite, ali
kada se konvertuju u YIQ i gledaju na monohromatskom monitoru, mogu se pojaviti kao iste. Ovaj
problem se moe izbei specificiranjem ove dve boje sa razliitim Y vrednostima u prostoru YIQ. Ovo je
mogue jer YIQ model koristi dva svojstva naeg ula vida. Prvo je to da je nae ulo mnogo osetljivije
na promenu svetla nego na promenu zasienosti i nijanse. Upravo zbog ovoga se vie bitova koristi za
kodiranje Y koordinate a manje za ostale dve. Drugo, objekti koji prekrivaju relativno malu povrinu
mogu biti prikazani sa jednom umesto sa dve koordinate boje. Ove tromosti naeg ula iskoriene su u
standardizaciji ovog sistema, te se Y koordinati daje 4Mhz, I koordinati 1.5Mhz, a Q koordinati samo
0.6Mhz.
HSV (HSB) Model:
- HSV (Hue-Saturation-Value) ili HSB (Hue-Saturation-Brightness).
- RGB, CMY, CMYK i YIQ modeli su hardverski orjentisani. Nasuprot njima, HSV (HSB) je korisniki
orijentisan. Zasnovan je na intuitivnom oseaju umetnika za tintu, senku i ton. Koordinatni sistem je
cilindrian tj. model je definisan u heksakonusu.
54
- Vrh heksakonusa odgovara V=1, koji sadri relativno svetle boje. Boje u ravni V-1 se ne oseaju sa
istom sjajnou. Nijansa (Hue) se meri uglom u odnosu na vertikalnu osu pri emu je crvena na 0,
zelena na 120 itd...Komplementarne boje su pomerene za 180 stepeni. Vrednost S je imeu 0 na
centralnoj liniji (V osi) i 1 na stranama heksakonusa. Zasienje se meri kao relativno u odnosu na gamu
boje predstavljene ovim modelom, koji je ustvari podskup celog dijagrama CIE hromatinosti. Stoga
zasienje 100% u ovom modelu je manje od 100% eksitacione istoe.
- Heksagon je visine 1 po V osi sa vrhom u koordinatnom poetku. Vrh je crne boje i ima V komponentu
jednaku nuli. U ovoj taki vrednosti S i H su irelevantne. Taka sa S=0, V=1 je bela. Vrednost za V
izmeu 0 i 1 kada je S=0 su sive. Kada je S=0, vrednost H je irelevantna. Kada je S razliito od nule, H
je RELEVANTNO. Na primer: slabo crvena je na H=0, S=1, V=1. Zaista, bilo koja boja sa V=1, S=1
odgovara situaciji kada umetnik koristi malo pigmenata kada poinje da mea boje. Dodavanje belog
pigmenta odgovara menjanju S (bez promene V). Senke se kreiraju smanjivanjem V (pri S=1). Tonovi
se kreiraju smanjivanjem i S i V. Naravno promena H odgovara izboru siromanog pigmenta sa kojim se
startuje.
HLS Model:
- HLS (Hue-Lightness-Saturation).
- HLS model boja je definisan u cilindrinom prostoru duple estougaone piramide (dupog heksagona).
U stvari, mi HLS predstavljamo kao deformaciju HSV, gde je bela boja podignuta da bi se formirao
gornji heksagon od ravni V=1.
- Svetlina je 0 za crno (na vrhu donje piramide) do 1 za belo (na vrhu gornje piramide).
13. Svetlo, senenje i bojenje
Realnost prikaza:
1. Uklanjanje sakrivenih ivica i povrina
2. Boje
3. Svetla
4. Senke
Svetlo, senenje i bojenje:
Verna realnost prikaza donosi potrebu za modeliranjem refleksija, proputanja i prelamanja svetla,
senki, odreivanja boja taaka objekata, tipova izvora svetla itd. Problem osvetljenja i senenja je
znatno komplikovaniji od problema vidljivosti.
Modeli osvetljenja i senenja:
Postoji vie modela osvetljenja (illumination) i modela senenja (shading). Model senenja je iri okvir i
on koristi model osvetljenja (neki modeli senenja pozivaju/koriste model osvetljenja za svaki piksel
slike, dok drugi pozivaju model osvetljenja samo za neke piksele, dok se za preostale koristi
interpolacija). Neka od reenja za problem osvetljenja zasnovana su na iskustvu i eksperimentima i nisu
utemeljena u fizici, ali daju dobre rezultate.
Modeli osvetljenja:
1.Samo-osvetljenost
2. Ambijentalno svetlo
3. Takasti izvori svetla
4. Direkciono svetlo
5. Spot svetlo
6. Proireni izvori svetla
1.)Samo-osvetljenost:
Ovo je najjednostavniji model osvetljenja. Za svaki objekat, svakoj taki je pridruen isti intenzitet
svetlosti. U ovom nerealistinom modelu, svako telo kao da je samo-osvetljavajue. Jednaina
osvetljenja (illumination) za ovaj model je:
I = ki
gde je I rezultujui intenzitet svetla,
ki je intenzitet svetla pridruen objektu.
2.)Ambijentalno svetlo:
55
Ambijentalno svetlo je difuzno, bez usmerenog izvora, koje je proizvod viestrukog odbijanja svetlosti
od svih povrina prisutnih u okruenju. Ako pretpostavimo da se svetlost rasprostire jednako u svim
smerovima po svim objektima, jednaina osvetljenja je za svaki objekat: I = Iaka
gde je Ia (konstantni) intenzitet ambijentalnog svetla,
ka je koeficijent ambijentalne refleksije objekta i on moe da ima vrednostiizmeu 0 i 1
3.)Takasto svetlo:
Takasti izvor svetla ravnomerno iri zrake u svim smerovima iz jedne take. Difuzna ili lambertovska
refleksija (refleksija odbijanje svetlosti od matiranih, hrapavih povrina). Ovakve povrine izgledaju
jednako
osvetljene iz svih uglova posmatranja i za jednu povrinu
osvetljenost
zavisi samo od ugla izmeu pravca svetla L i pravca normale N.
Jednaina
osvetljenosti u ovom modelu je:
I = Ipkpcos
gde je Ip
jaina izvora svetlosti, kp koeficijent difuzne refleksije (izmeu 0 i 1)
za materijal od
kojeg je nainjen objekat i je ugao izmeu pravca svetla i pravca
normale.
Ako su vektori
L i N normalizovani, onda je
I = Ipkp ( L N )
4.)Direkciono svetlo:
Ukoliko je izvor svetla dovoljno udaljen od svih objekata, moemo da smatramo da je vektor konstantan
za sve objekte i takav izvor svetla zovemo direkcioni izvor svetla. Ukoliko se osvetljenost rauna po
fromuli:
I = Ipkp ( L N )
u dobijenom prikazu objekti izgledaju kao da su osvetljeni samo sa jedne
strane i da se nalaze u mranoj prostoriji (tj. zanemaruje se difuzna
komponenta svetla). Da bi se taj efekat ublaio, esto se koristi sledea
jednaina (koja ukljuuje ambijentalnu osvetljenost):
I = Iaka + Ipkp ( L N )
5.)Spot svetlo:
Spot svetlo predstavlja svetlo koje se emituje od izvora u vrlo uskom ugaonom opsegu.
6.) Proireni izvori svetla:
Za razliku od takastih izvora svetla, proireni ili distribuirani izvori svetla imaju povrinu i, kao
posledicu, daju meke senke.
Obojena svetlost:
Prethodni modeli i jednaine razmatrali su samo monohromatsku svetlost. Obojena svetlost se obino
obrauje tako to se posebno obrauju jednaine za njene tri komponente.
Na primer,
(OdR,OdG,OdB ) definie za objekat difuzno crvenu, zelenu i plavu komponentu u RGB kolor sistemu.
Na primer, u kolor modelu jednaina
I = Iaka + fattIpkd ( L N )
daje (za crvenu komponentu):
IR = IaRkaOdR+ fattIpRkdOdR ( L N )
Rendering:
Rendering je postupak odreivanja odgovarajue boje piksela koji je pridruen nekom objektu u sceni.
Ovaj postupak nije jednostavan i zavisi od geometrije objekta u toj taki (vektor normale), geometrije,
tipa, pozicije i boje svetlosnog izvora, pozicije posmatraa, materjala od koga je objekat napravljen
(refleksija svetlosti), uticaja drugih faktora (magla, dim,...). Osnovni modeli kod renderinga su modeli
osvetljavanja i senenja (illumination and shading).
Modeli osvetljavanja i senenja:
Lokalni pristup - Razmatra samo osvetljenje od lokalnih izvora svetlosti i ne uzima se u obzir
refleksija od ostalih objekata u sceni.
Globalni pristup Uzima se u obzir i refleksija od ostalih objekata u sceni.
56
1.)Lokalni pristup:
Konstantno senenje (Flat shading).
Gouraud-ovo senenje.
Phong-ovo senenje.
Konstantno senenje: - Sve take povrine unutar jednog poligona imaju isti intenzitet. To znai da je
za neki poligon:
I n = const
r v = const
na = ( n1 + n2 + n3 + n4 ) / 4
Dobra strana ove metode je velika brzina, ali je veliki nedostatak prevelika istaknutost ivica.
Gouraud senenje: - Ova metoda eliminie vidljivost ivica interpolacijom boja i intenziteta osvetljenosti
du svakog poligona u 3D povri.
Boja i intenzitet se raunaju za svako teme poligona a zatim se vri interpolacija du ivica poligona.
Interpolacija se vri jo jednom du sken-linija prilikom skeniranja svakog od poligona
Interpolacija du ivica
Rezultat ovakvog postupka su vrlo glatki prelazi. Postupak je sporiji od prethodnog, ali jo uvek dovoljno
brz za praktinu upotrebu.
57
Phong senenje: - Kod ovog naina se radi interpolacija normala, tako da se izraunavanje boje i
intenziteta obavlja za svaki piksel ponaosob, to za rezultat ima veliki broj izraunavanja i malu
mogunost primene za senenje u realnom vremenu .
2.)Globalni pristup:
Metod praenja zraka (Ray-tracing).
Metod isejavanja (Radiosity method).
Path-tracing metod.
Ray-tracing: - Uzima u obzir senke, refleksiju (odbijanje zraka), i refrakciju (prelamanje zraka kroz
transparentne objekte). Podrazumeva takaste izvore svetlosti. Zavisi od poloaja posmatraa.
Radiosity metod: - Uzima u obzir senke, refleksiju (odbijanje zraka), i refrakciju (prelamanje zraka kroz
transparentne objekte). Svetlosni izvori mogu da budu proizvoljnih dimenzija i geometrije. Ne zavisi od
poloaja posmatraa.
Path-tracing metod: - Najbolji metod, ali i najzahtevniji. Koristi Monte-Carlo metodu za upravljanje
geometrijom, refleksijom i osvetljajem.
Teksture:
Korienje tekstura in iscene realistinijim
Senke:
Doprinose realistinosti scene.Omoguavaju dobijanje dopunskih informacija:
Poloaj objekta u sceni
Dubinska udaljenost objekta
Oblik objekta
Poloaj izvora svetlosti
Vrste senki:
Umbra
Penumbra (Uticaj vie izvora svetlosti ili izvora svetlosti koji nisu takasti)
Algoritmi odreivanja senki:
1.)Lane senke - Koriste se jednostavni objekti kao senke...
58
2.)Projektovane senke - Koriste se projekcije objekata iz pozicije izvora svetla kao senke...
3.)Mape senki
4.)Zapremina senki - Za svaki objekat se odreuje poluotvorena zapremina senke.
Dubina senke:
Prolazak zraka kroz svaki prednji poligon poveava dubinu senke, dok izlazak iz zapremine senke
smanjuje dubinu senke.
14. Modeliranje gometrijskih formi (krivih i povri)
Geometrijske forme:
Jedan od naina modeliranja geometrijskih formi je korienje skupa primitiva koje su dovoljno proste
za implementaciju na raunaru, ali i dovoljno fleksibilne da se sa njima mogu modelirati objekti iz
realnog sveta. Proste geometrijske forme su:
Taka,
Linijski segmenti
Polilinije,
Poligoni,
Poliedri, itd...
Ove forme se koriste kod konstruisanja tzv. ianog modela sloene geometrijske figure, kao to su
segmenti krivih ili segmentnih povrina.
Taka se specificira sa tri koordinate u prostoru, a linijski segment svojim krajnjim takama.
Polilinija je lanac povezanih linija zadat nizom vorova v0, v1, v2, itd... koji definiu segmente.
Poligon je zatvorena polilinija i takoe se specificira skupom taaka.
iani model se sastoji od ivica i temena. Temena su povezana ivicama a poligon je modeliran
sekvencom temena i ivica. Ovakav iani model se zove poligonalna mrea.
Predstavljanje modela poligonalne mree:
Postoji vie naina za predstavljanje modela. Oni se razlikuju po sledeim parametrima:
Potreban memorijski prostor za smetanje modela.
Lakoa identifikovanja ivica koje su susedne nekom temenu.
Lakoa identifikacije poligona sa zajednikom ivicom.
Lakoa prikaza modela.
Lakoa identifikacije greaka u modelu.
Modeli poligonalne mree:
1)Eksplicitna lista temena.
2)Lista poligona.
3)Eksplicitna lista ivica.
1)Eksplicitna lista temena:
Ovo je najjednostavniji model predstavljanja poligonalne mree. Take se memoriu prema redosledu
obilaska. Ovakav model nije struktuiran i nije efikasan jer dolazi do ponavljanja temena.
Izmena jednog temena dovodi do ogromnog posla...
59
60
Vieznane vrednosti - u opem sluaju oblik krive ne predstavlja grafik jednoznano odreene
funkcije jedne promenljive, ve moe imati vieznane vrednosti.
61
Nezavisnost od koordinatnog sistema - oblik krive ne bi smeo da se promeni kada se kriva prebaci iz
jednog u drugi koordinatni sistem.
Globalna i lokalna kontrola - kada se promeni poloaj jedne od kontrolnih taaka, kriva sa lokalnom
kontrolom menja oblik samo u blizini te kontrolne take, dok kriva sa globalnim kontrolnim takama
menja oblik u celini.
Varijacije izmeu kontrolnih taaka Algoritam za crtanje krive mora obezbediti da izraunata kriva
nema vie prevojnih taaka od izvorne krive.
Treba smanjiti titranje krive...
Mogunost dodavanja i brisanja kontrolnih taaka - Omoguava preciziranje krive kao i interaktivnost
algoritma za crtanje krive.
Granini uslovi (kontrola reda neprekidnosti) - esto se kod crtanja krivih koristi spajanje veeg broja
segmenata krivih. Od algoritma za crtanje se moe da zahteva da zadovolji granine uslove u takama
spoja segmenata krive. Postoji nekoliko tipova neprekidnosti:
1) C0 - Neprekidnost nultog reda. Poetna taka narednog segmenta je krajnja taka prethodnog
segmenta.
2) C1 - Neprekidnost prvog reda. Rezultujua kriva ima jedinstvenu tangentu u taki spajanja (isti prvi
izvod).
3) C2 - Neprekidnost drugog reda. Rezultujua kriva ima jedinstvenu krivinu u taki spajanja (isti prvi i
drugi izvod).
4) C3 - Neprekidnost treeg reda. Dobija se kontinuitet u izvijanju (ista vrednost treeg izvoda).
62
Vano je napomenuti da C1 direkno implicira G1, osim kada jevektor tangente [0 0 0]. Kod C1 je
mogua promena smera krive, dok kod G1 nije.
Analitiko predstavljanje krivih:
Eksplicitni oblik
Implicitni oblik
Parametarski oblik
1)Eksplicitni oblik:
Primer eksplicitnog zadavanja je:
2)Implicitni oblik
Primer implicitnog zadavanja je:
3)Parametarski oblik:
Primer parametarskog zadavanja je:
T je matrica vrednosti parametara, a C je matrica krive. Odavde se lako moe izraunati matrica C kao:
C=T-1P(t)
Napomena: matrica je dimenzija 4x4 jer se radi o homogenim koordinatama.
Krive koje se najee koriste:
Bezierove krive
B-splajnovi
NURBS krive
Bezierove krive:
Postupak pod nazivom krive Beziera nezavisno su razvili Bezier 1962. godine u Renault-u i De
Casteljau
1959. godine u Citroen-u. Ta tehnika je bila polazna taka u njihovim istraivanja za CAD sisteme. De
Casteljau je direktno koristio Bernstein-ove polinome do 1970. Tada je Forest otkrio vezu izmeu
Berntajnovih polinoma i Bezierovog rada. Bezier objavljuje svoj rad i krive dobijaju ime po njemu. Ove
64
krive se generiu za skup kontrolnih taaka PiR3 za i [0,n], koje se nazivaju kontrolne take, na
sledeinain (t [0,1]):
Bezierova kriva prolazi kroz poetnu i krajnu taku dok pored ostalih krajnjih taaka samo prolazi.
Primer Bezierovog polinoma za n=3:
65
Ukoliko su knot intervali ravnomerno rasporeeni (ti+1- ti=const) onda se radi o uniformnim B-Splineovima. U suprotnom sluaju su u pitanju neuniformni B-splajnovi.
Karakteristike B-splajnova:
1. Kriva lei unutar konveksne ljuske (hull)
2. i-ti segment se nalazi unutar konveksne ljuske pripadajuih kontrolnih taaka.
3. Postoji lokalna kontrola. Pomeranje jedne take utie najvie na dva segmenta.
NURBS krive:
Ime dolazi od skraenice: Non Uniform Rational B Spline. Ove krive se dobijaju iz neuniformnih B
splajnova.
Kontrolne take su (Pi,1) koje su iz prostora R4 za i u intervalu od 0 do n. Uvode se i teine wi koje su
uvek pozitivni brojevi. Kriva se definie kao:
Modeliranje povri:
Povri se definiu kao skup geometrijskih mesta taaka koji nastaje kretanjem i deformacijom neke
krive u prostoru. Modeliranje i aproksimacija krivih povri je vrlo sloena. Za predstavljanje krivih povri
se koristi:
Vodea ili kontrolna mrea (guiding nets)
Segmenti povri (patch-evi)
1) Vodea mrea je 3D poligonalna mrea sa temenima Pij(xij, yij, zij),
i=0,,m; j=0,,n.
2) Segment povri (patch) je deo povrine koji je omeen sa 4 krive.
Analitiko predstavljanje povri:
Eksplicitni oblik
Implicitni oblik
Parametarski oblik
1) Eksplicitni oblik
Primer eksplicitnog zadavanja je:
2)Implicitni oblik
Primer implicitnog zadavanja je:
66
3)Parametarski oblik
Primer parametarskog zadavanja je:
x = f(s, t)
y = g(s, t)
z = h(s, t)
0 s < 1, 0 t < 1
Patch:
Patch se obino zadaje preko vektorske funkcije:
Primer Patch-a:
Pravougaonik u ravni x-y:
67
2)B-spline povri
B-spline povri se formiraju od B-spline patcheva definisanih na sledei nain:
Za pravougaonu reetku kontrolnih taaka za i 0 [0,n0] i i1 [0,n1], i monotone skupove {si} i {tj}, i
[0,n0] i j [0,n1] i si si+1, i ti ti+1, B-spline patch je definisan sa:
U zavisnosti od toga da li parametri s i t imaju uniformnu raspodelu (ravnomerno su rasporeeni) ili ne,
B spline povri mogu biti uniformne ili neuniformne. Prednost B-spline povri u odnosu na Bezier-ove
je postojanje lokalne kontrole. Naime pomeranje jedne kontrolne take utie samo na one patch-eve
koji su u okolini te take.
3)NURBS povri
NURBS povri se dobijaju iz neuniformnih Bspline povri u etvorodimenzionalnom prostoru.
Za skup kontrolnih taaka (Pi0, i1, 1) R4 za i0 [0,n0] i i1 [0,n1], sa teinama wi0,i1>0, NURBS patch je
definisan sa:
NURBS patch
U prethodnoj definiciji, koeficijenti B su definisani isto kao i kod B-spline povri. NURBS patch u
trodimenzionalnom prostoru se dobija na taj nain, to se (Y(s,t),w(s,t)) tretira kao homogeni vektor i
deljenjem sa w(s,t) se dobija projekcija u tri dimenzije. Dobija se:
68
Prednost NURBS povri u odnosu na prethodne je postojanje teina za svaku kontrolnu taku, ime se
definie njen uticaj na oblik povri. Inae, sve prethodno pomenute povri se karakteriu mogunou
da se njima predstavljaju vrlo glatke povrine u realnom vremenu.
69