OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih...
Transcript of OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih...
![Page 1: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/1.jpg)
1
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
RENDERISANJE ( RENDERING)
Slike koje se crtaju bez sakrivenih linija ili sakrivenihpovršina mogu da prikažu oblike dosta jasno u većinislučajeva. Medjutim, poželjno je da možemo da prikažemorealističnije neke slike za neke aplikacije. Naprimjer,realistične slike igraju vrlo važnu ulogu u ‘’virtualnojrealnosti’’, relativno novoj tehnologiji, koja simulira naračunaru realne situacije. Naprimjer, možemo željeti davizualiziramo unutrašnost i vanjski izgled zgrade naračunaru. Tada možemo iskusiti različite aspekte zgrade kaoda šetamo kroz unutrašnjost i oko zgrade. Ovakav alat bibio vrlo koristan , naprimjer, prije nego se donese odluka okonstrukciji zgrade. Da bi se simulirala realna scena,potrebno je rekreirati efekte svjetla na površine i objekte.Ovaj proces se naziva renderisanje ( rendering). U stvari,većina onog što mi vidimo je refleksija svjetla od površina, imi odredjujemo oblike, teksture
![Page 2: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/2.jpg)
2
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
i boje objekata od ovog reflektovanog svjetla. Neke
mogućnosti renderisanja su obezbjedjene u okviru
naprednih grafičkih biblioteka. Sa njima, mi treba samo da
obezbjedimo model objekata sa licima ( faceted model),
situaciju osvetljenja, i osobine površina ( tj. da li je blistava ili
siva –dull). Medjutim, potrebno je razumjeti principe
tehnologija renderisanja da bi se korektno koristile u
grafičkim bibliotekama. U stvari, doznačavanje korektnih
vrijednosti za odgovarajuče parametre kod ovih sredstava
neće biti lagano, ako nemamo osnovna znanja o
renderisanju. Zato, ćemo ukratko opisati dvije glavne
tehnologije renderisanja u ovoj sekciji: sjenčenje i bacanje
svjetla ( ray casting). Detaljan opis tehnologije renderisanja
se može naći u mnogim knjigama o računarskoj grafici.
![Page 3: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/3.jpg)
3
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Model koji će se renderisati je opis trodimenzionalnihobjekata u striktno definiranom jeziku ili strukturi podataka.Model će sadržavati geometriju, tačku gledanja, teksturu iinformaciju o osvjetljenju. Slika koja se kreira iz modelarenderisanjem je digitalna slika ( digital image) ili rastergrafička slika. Ovaj termin se takodjer koristi da se opišeproces izračunavanja efekata kod video editiranja fajla da bise proizveo finalni video izlaz.
Renderisanje čini glavnu podcjelinu u okviru 3D računarskegrafike, i u praksi je uvjek povezano i sa ostalim elementimaračunarske grafike. Kod grafičkog pipeline-a, renderisanje jeposljednji i najvažniji korak, koji daje konačan izgledmodelima i animaciji. Inače renderisanje se koristi kod: videoigara, simulatora, proizvodnje filmova ili TV specijalnihefekata, kod vizuelizacije dizajna kod razvoja novogproizvoda, i svaka od ovih oblasti primjene koristi različite
![Page 4: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/4.jpg)
4
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
balanse njegovih karakteristika i tehnika. Kao softverski
proizvod, postoji jako veliki broj softverskih programa tkz.
renderera. Neki od njih su integrirani u veće pakete za
modeliranje i animaciju, neki su samostalni softverski
proizvodi, dok su neki slobodni i besplatni open-source
projekti.
Unutar same implementacije, renderer je pažljivo razvijeni
softverski program, koji je baziran na mješavini disciplina
koje se odnose na:
fizika svjetla ( optika), vizuelna percepcija, matematika i
metode i alati za razvoj softvera.
U slučaju 3D grafike, rendering može biti vrlo sporo
realiziran, ( primjer za scenu sa slike gdje je renderisanje
trajalo 23 dana), pa se često radi u pre-rendering fazi, ili
može biti u realnom vremenu.
![Page 5: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/5.jpg)
5
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Prirendering je računarski vrlo intenzivan proces i koristi se
tipično kod kreiranja filmova, dok real-time renderisanje se
često radi u okviru 3D video igara koje se oslanjaju na
korštenje grafičkih kartica sa 3D hardverskim
akceleratorima.
Kada je u toku kreiranja modela pred-slika ( pre-image) koja
je obićno u obliku wireframe skeča gotova, koristi se
renderisanje koje dodaje bitmap teksture ili proceduralne
teksture, zatim svjetlo, bump mapiranje, i relativnu poziciju u
odnosu na ostale objekte. Rezultat će biti kompletna slika
koju će korisnik vidjeti na svom ekranu.
Za animacije u filmovima, nekoliko slika ( tj. frajmova) se
mora renderisati, i ‘’zajedno sašiti’’ u jedan program koji je u
stanju da radi ovakve animacije. Većina programa za 3D
editiranje slika može raditi i ove animacije.
![Page 6: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/6.jpg)
6
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Sjenjčenje
Procedura sjenjčenja je slična onoj kod otklanjanja skrivenihpovršina, izuzev što pikseli koji predstavljaju površinu se neboje sa jednom bojom. Umjesto, svaki piksel se boji sabojom i intenzitetom reflektovanog svjetla na tačci površinepredstavljene se pikselom nakon projekcije. Dakle, glavnizadatak je izračunavanje boje i intenziteta reflektovanogsvjetla u tačci objekta. Posmatrajmo prvo računanjeintenziteta.
Površina objekta može biti osvjetljena od svjetla koje dolazidirektno iz izvora svjetla , ili sa direktnim osvjetljenjem (direct illumination), i sa reflektovanim svjetlom sa drugihpovršina, ili ambijentalnim osvjetljenjem ( ambientillumination). Dakle, reflektovano svjetlo u tački na objektuse formira dodavanjem refleksija od ova dva tipaosvjetljenja, kao što je prikazano na narednoj slici:
![Page 7: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/7.jpg)
7
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Reflektovano svjetlo od dva tipa osvjetljenja
Reflektovano svjetlo od mnogo površina u sceni se može
predpostaviti da dolazi iz beskonačno mnogo pravaca, i time
se za refleksiju ambijentalnog osvjetljenja može
predpostaviti da se uniformno raspršuje u svim pravcima.
![Page 8: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/8.jpg)
8
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Zbog toga, intenzitet refleksije, Ra se može izraziti kao :
gdje Ia je intenzitet ambijentalnog svjetla i Kd je koeficijent
relektivnosti ( ili reflektivnost ) sa površine. Bijele površine
imaju reflektivnost blisko 1, dok crne površine imaju
reflektivnost blisko 0. Posmatrač će vidjeti isti intenzitet
ambijentalnog osvjetljenja bez obzira od lokacije osobe u
sceni, pošto refleksija dolazi sa svih površina koje su
prisutne i uniformno se raspršava u svakom pravcu.
U odnosu na direktno osvjetljenje, mi ćemo razmatrati samo
tačkaste izvore svjetla pošto linijski izvori svjetla ili površinski
izvori svjetla se mogu aproksimirati sa višestrukim tačkastim
izvorima. Refleksija od tačkastog izvora svjetla se može
predpostaviti da je kombinacija dva ekstremna tipa refleksije
![Page 9: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/9.jpg)
9
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Difuzna refleksija i spekularna refleksija.
Difuzna refleksija se pojavljuje kada svjetlo penetrira
površinu a površina nakon apsorpcije svjetla, ponovno ga
emitira u svim pravcima, kao što je prikazano na narednoj
slici:
Difuzna refleksija
Dakle, intenzitet difuzne refleksije je nezavistan od lokacije
posmatrača, kao i kod abijentalnog osvjetljenja. Detalji
![Page 10: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/10.jpg)
10
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
površine kao što je tekstura, i boja su otkriveni sa difuznom
refleksijom. Za površine grubog kvaliteta, difuzna refleksija
je dominantna u odnosu na spekularnu refleksiju.
Spekularna refleksija je direktna refleksija svjetla od
površine. Ovaj tip refleksije je dominantan za svjetleće
površine kao što su ogledala. Kako je pokazano na narednoj
slici, svjetleće površine reflektuju skoro svu upadajuču
svjetlost i zbog toga imaju tako svjetao spekularni sjaj.
![Page 11: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/11.jpg)
11
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Intenzitet spekularne refleksije će se različito osječati od
strane posmatrača, zavisno od njegove lokacije u sceni.
Opisaćemo kako da se izračunaju individualni intenziteti
difuzne refleksije i spekularne refleksije. Nakon toga,
refleksija u tački od osvjetljenja od tačkastog izvora se može
aproksimirati dodavanjem intenziteta ova dva tipa refleksije.
Intenzitet difuzne refeksije je direktno proporcionalan
kosinusu upadajućeg ugla ( angle of incedence).
![Page 12: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/12.jpg)
12
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Ugao upadanja u tački je ugao izmedju normalnog vektora
na površinu u tački i vektora iz tačke do izvora svjetla, kako
je pokazano na prethodnoj slici. Ova relacija koja se naziva
Lamberov kosinusni zakon, se može verificirati
predpostavljajući za dolazno svjetlo da se sastoji od
konačnog broja paralenih linija jednako rasporedjenih, kao
što je pokazano na narednoj slici:
Veriifkacija Lamberovog kosinusnog zakona
![Page 13: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/13.jpg)
13
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Primjetimo da broj svjetlosnih linija koje pogadjaju površinu
opada kako se površina naginje. Ovo implicira da intenzitetreflektovanog svjetla će takodjer opadati kako se površinanaginje.
Lamberov kosinusni zakon se može izraziti matematski naslijedeći način: Intenzitet dolaznog svjetla u tački odinteresa, Ip , se predpostavi da je inverzno proporcionalankvadratu rastojanja od izvora, D1, tako da može biti izraženkako slijedi, za svjetlosni izvor intenziteta Ep:
Mi obićno predpostavljamo da svi svjetlosni izvori sudovoljno daleko od površina uključenih i da Dl u jednačini (3.18) se može posmatrati da je isti za sve tačke. Zbog toga,Lambertov kosinusni zakon se može iskazati , ignorišući Dl
![Page 14: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/14.jpg)
14
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
gdje Rd je intenzitet difuzne refleksije, Kd je reflektivitet kao u
jednačini ( 3.17), N je jedinični normalni vektor u tački od
interesa, L je jedinični vektor iz tačke do izvora svjetla, i N. L
je kosinus ugla upada. Vektor L je konstanta za sve tačke
pošto se predpostavlja da izvor svjetla lociran dovoljno
daleko.
Možemo oćekivati jedan problem kod korištenja jednačine
(3.19): dvije paralelne ravni se ne mogu razlikovati jedna od
druge kada se djelomično preklapaju na ekranu. Bilo bi
poželjno za površinu koja je bliža posmatraču da se
pojavljuje kao sjajnija imajući veću vrijednost Rd. Ovaj
efekat se može nametnuti modificiranjem jednačine (3.19)
da se dobije:
![Page 15: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/15.jpg)
15
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
gdje je D rastojanje izmedju tačke od interesa i tačkegledanja (viewpoint) ili od posmatrača. Konstanta D0 sejednostavno uvodi da se izbjegne dijeljenje sa nulom.
Posmatrajmo sada izračunavanje intenziteta spekularnerefleksije. Bilo je mnogo napora da se tačno modeliraspekularna refleksija. Ovdje, ćemo mi uvesti jedan tipičanmodel, tkz. Fongov model ( Phong). Kako što je pokazanona prethodnoj slici , većina reflektovanog svjetla postoji umalom koničnom volumenu oko ose, koja ima isti ugao kao iugao upada od normalnog vektora površine na suprotnojstrani dolazečeg svjetla. Ova osa je predstavljena sajediničnim vektorom R na narednoj slici.
Zbog toga intenzitet refleksije koju vidi posmatrač će opadatikako vektor linije vida ( line of sight) označen kao jediničnivektor V, odstupa od vektora R.
![Page 16: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/16.jpg)
16
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Vektori koji se koriste kod Phongovog modela
Phong je modelirao ovaj fenomen sa slijedećom relacijom:
gdje Ep, D i D0 imaju isto značenje kao i u jednačini ( 3.20), aKs je konstanta slićna sa Kd u jednačini (3.20). Ks se nazivaspekularna reflektansa. Jednačina ( 3.21) se možeinterpretirati kao intenzitet svjetla kojeg vidi posmatrač dužvektora kod ugla FFFF. R je proporcionalan sa
![Page 17: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/17.jpg)
17
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Dakle, intenzitet refleksije brzo opada ako linija vida odstupa
od R kada je n mnogo veće od 1. Ovo implicira da
reflektovana svjetlost je gusto pakovana oko ose u R smjeru.
Time, svjetle površine kao što su metalne površine imaju
veću vrijednost za n. Naprimjer, matalna površina se dobro
predstavlja koristeći vrijednost za n =150 i veću. Sive
površine kao papir ili tkanina imaju vrijednost n blisko 1.
Mi sada dobijamo intenzitete refleksije u tačci, sumirajući
jednačine ( 3.17), (3.20) i (3.21):
Da bi razmatrali boju reflektovanog svjetla, mi trebamo samo
izraz jednačine (3.22) odvojeno za svaku primarnu boju:
crvenu, zelenu i plavu.
![Page 18: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/18.jpg)
18
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
To jest, intenzitet reflektovanog svjetla se izražava u
terminima od crvenog (Ir) , zelenog (Ig) i plavog (Ib). Izvori
svjetla se takodjer izražavaju u terminima tri boje kao Iar, Iag i
Iab za ambijentno svjetlo i Epr, Epg i Epb za direktno svjetlo.
Reflektivnost površine se takodjer dekomponuje u tri
komponente, Kdr, Kdg i Kdb , po jedna za svaku primarnu
boju. Naprimjer, površina čiste crvene boje će imati
vrijednost od 1 za Kdr ali 0 za Kdg i 0 za Kdb. Tada jednačina (
3.22) se može dekomponavati tri komponente kako slijedi:
![Page 19: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/19.jpg)
19
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Primjetimo da spekularna reflektanca Ks nije
dekomponovana u jednačini ( 3.23), To je zbog toga štospekularna refleksija nema skoro nikakvog efekta na boju.Tri intenziteta sračunata sa jednačinom ( 3.23) se koriste dasetuju izlaz na crveni, zeleni i plavi elektronski top kod RGBkolor monitora.
Pokazali smo kako izračunati boju i intenzitet reflektovanogsvjetla u tački na objektu. Medjutim, kada je potrebnazasjenjena slika objekta, moramo evaluirati jednačinu ( 3.23)za sve tačke na svakoj površini objekta. Očito, ovaj zadatakzahtjeva ogroman obim računanja. Jedan način da sereducira , bi bio da aproksimiramo svaku površinu saskupom trouglastih faceta. Na ovaj način, jedinični normalnivektor, u ovim tačkama unutar svakog faceta treba da budesamo jedanput izračunat. Nadalje, vektori L,R i V se mogu
![Page 20: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/20.jpg)
20
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
posmatrati kao konstante unutar svakog faceta ako
predpostavimo da izvori svjetla i posmatrač su locirani
dovoljno daleko od objekta. Ova predpostavka se obićno
koristi za pojednostavljenje. Zato jednačina (3.23) treba da
se evaluira samo jednaput za svaki facet. Ovo
pojednostavljenje, ipak, ne daje gladak prelaz izmedju
susjednih trouglastih faceta, ali ostavlja savijene linije duž
granice izmedju njih.
Jedan lijek za ovaj problem bi bio korištenje gladko
varirajućih jediničnih normalnih vektora umjesto konstantnog
normalnog vektora unutar svakog faceta. U Phongovom
metodu sjenčenja, jedinični normalni vektori unutar faceta se
dobiju sa interpolacijom normalnih vektora kao verteksa
faceta. Ovdje, normalni vektor verteksa se dobije
uprosječenjem normalnih vektora planarnih faceta
![Page 21: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/21.jpg)
21
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
djeljenjem verteksa. Drugi lijek bi bilo izračunavanje
intenziteta reflektovanog svjetla u pikselu unutar
projektovanog trougla faceta sa interpolacijom intenziteta u
verteksima faceta. Ovaj metod se naziva Goroovo sjenčenje
(Gauraud shading).
Trasiranje zrake ( ray tracing)
Metod sjenčenja opisan u pretodnoj sekciji se može
primjeniti na jednostavne situacije kod kojih jedan objekat je
osvjetljen tačkastim izvorima svjetla lociranim dovoljno
daleko. Medjutim, ne može se primjeniti kada su uključeni
višestruki izvori, naročito kada neki od njih su transparentni
a drugi reflektiraju svjetlo. Trasiranje zrake je jedan od
metoda koji se može primjeniti na ove komplikovane
situacije.
![Page 22: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/22.jpg)
22
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Osnovna odeja trasiranja zrake je slijedeća: Svjetlosni zraci
se emituju u svim pravcima iz svjetlosnih izvora, i svaki zrak
se trasira dok se ne projektuje na tačku na ekranu. U toku
trasiranja, intenzitet i smjer zrake se ažurira kada god
pogodi objekat na sceni. Njegov smjer će se promjeniti,
zavisno od kolićine refleksije, rasipanja( scattering), ili
refrakcije ( loma svjetlosti) koja će se pojaviti. Nakon toga ,
svaka tačka na ekranu, tj. piksel će se setovati da je jednaka
intenzitetu i boji zrake u posljednjem trenutku. Pošto se
beskonačno mnogo takvih staza može razmatrati, da bi se
ispunio cijeli ekran na ovaj način, ovaj pristup nije praktičan.
Ali, pošto smo mi zainteresirani za postavljanje boje
konačnog broja piksela na ekranu, mi ne moramo da
razmatramo beskonačno mnogo zraka. To jest, mi treba
samo da razmatramo konačan broj zraka trasiranjem zraka
![Page 23: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/23.jpg)
23
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
u reverzivnom pravcu. Kao što je pokazano na narednoj slici,
zraka od centra projekcije kroz svaki piksel je generisana i
unatrag trasirana kroz sve svoje refleksije i refrakcije dok
zraka ne izadje van volumena gledanja, pogodi difuznu
površinu, ili udari u izvor svjetlosti.
Princip trasiranja zraka
![Page 24: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/24.jpg)
24
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Trasirana zraka koja udari u izvor svjetlosti implicira da nema
prepreka ili samo transparentni objekti postoje izmedju
izvora svjetla i ekrana, i time piksel treba biti obojen sa
bojom izvora svjetla. Zrak koji izlazi iz vidljivog volumena,
implicira da ne postoji objekat koji se može projektovati na
piksel, i time treba biti obojen sa pozadinskom bojom. Ako
zraka koja se unatrag trasira udari u površinu koja difuzno
reflektira svjetlo, nije moguće dalje trasiranje. U ovom
slučaju, boja piksela se setuje na onu od refleksije na
površini. Time, intenziteti svjetla na difuznim površinama se
evaluiraju unaprijed sa metodom sjenćenja opisanom u
prethodnoj sekciji, prije nego što počinje trasiranje zrake.
![Page 25: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/25.jpg)
25
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Bacanje zrake ( ray casting) je još jedna metoda, koja jeslićna ovoj prethodnoj ali nije sinonim za nju. Ova metoda semože posmatrati kao značajno brža verzija prethodnogalgoritma trasiranja zraka. I ova tehnika se dakle koristi zarenderisanje projektovanih trodimenzionalnih scena nadvodimenzionalni ekran, slijedeći zrake svjetla od okaposmatrača do izvora svjetla kao i kod ray tracinga.Medjutim, kod ove druge metode bacanja svjetla, se neizračunavaju nove tangente kojim zrak svjetla može nastavitida putuje nakon presjeka sa površinom, na svom putu odoka do izvora svjetla. Ovo eliminira mogućnost tačnogrenderisanja refleksija i refrakcija, ali i prirodno slabljenjesjenki. Medjutim svi ovi elementi se mogu simulirati doizvjesnog stepena sa mapiranjem tekstura i nekim drugimmetodama. Velika brzina izračunavanja koja se postižeovom metodom se koristi kod 3D renderisanja u realnomvremenu kao što je slučaj kod video igara.
![Page 26: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/26.jpg)
26
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
GRAFIČKI KORISNIČKI INTERFEJS
Kao što je ranije pomenuto, interakcija sa korisnikom putem
grafičkog ulaza i izlaza je suštinska mogućnost postoječih
CAD/CAM/CAE softvera. Drugim riječima, ovaj softver treba
imati mogućnost za otvaranje prozora ( oblasti za interakciju
i aplikaciju), za prikazivanje menija ili ekvivalentnih ikona i za
definisanje taskova koje traba izvršiti za svaki meni ili ikonu.
Softver koji omogućava sve ovo se naziva grafički korisnički
interfejs ( graphic user interface-GUI).Ove mogućnosti se
takodjer mogu ostvariti pomoću tkzv. kućno uradjenog (
homemade) GUI koji je ustvari skup grafičkih programa
programiran sa specifičnom grafičkom bibliotekom. Ova
vrsta grafičkog korisničkog interfejsa ima nedostatak jer
podržava samo dio grafičkih radnih stanica, zbog
ograničenja grafičke biblioteke. Time, grafički korisnički
![Page 27: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/27.jpg)
27
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
interfejs se mora ponovno napisati kada god se uvede novi
tip grafičke radne stanice.
Da bi se izbjegao ovaj problem, grafički korisnički interfejs je
imao tendenciju da bude baziran na X windows sistemu, koji
je bio podržan na večini grafičkih radnih stanica. Dva tipična
GUI su bazirana na X windows sistemu: Open Look i
OSF/Motif. Open Look je podržavan od strane Sun
Microsystems, a OSF/Motif je podržavan od ostalih
računarskih kompanija uključujući IBM, HP, i Tektronix.
Programer koji koristi OpenLook ili OSF/Motif da razvije
aplikacioni program može jednostavno koristiti window
menadjer u grafičkom korisničkom interfejsu da izvršava
takve funkcije kao otvaranje prozora, menija za crtanje, i
definirajući taskove pridružene menijima.
![Page 28: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/28.jpg)
28
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Grafički displej generisan od strane window menadjera kod
Motif softvera je prikazan na narednoj slici:
![Page 29: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/29.jpg)
29
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Prednost korištenja OpenLook ili Motif kod razvojaaplikacionih programa proizlazi od prednosti korištenja Xwindow sistema ,pošto obadva sistema su izgradjena na Xwindow sistemu. Zato, ćemo sada da se malo zabavimo skarakteristikama X window sistema.
X WINDOW SISTEM
Razvoj X window sistema, ili jednostavno X, počeo je 1984na MIT ( Massachusetts Institute of Technology) kaoATHENA projekat. Razvijen je na vrhu operativnog sistemakoji je nazvan W, koji je razvijen na Stanford Univerzitetu uranim 1980-im. U 1986, prva komercijalna verzija , X10 jeobjavljena, a današnja posljednja verzija je verzija X11Release R7.2 i raspoloživa je kao free softver.
X window sistem je ustvari mrežni i displej protokol kojiomogućava aplikacionom programu da otvori i zatvoriprozore na raznim radnim stanicama spojenim na mrežu.Ovo sa svoje strane dozvoljava ulazu i izlazu za aplikacijuda se pojavi u prozorima različitih radnih stanica na mreži.Značenje window ovdje je različito nego što je ranije
![Page 30: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/30.jpg)
30
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
u tekstu izlaganja bilo korišteno. Ovdje, to znači odvojenu
oblast na radnoj stanici kroz koju korisnik interaktira sa
raznim računarskim rasursima spojenim na mrežu.
Naprimjer, mi možemo otvoriti dva prozora na INDIGO2
radnoj stanici pokazanoj na narednoj slici i koristiti jedan
prozor kao ulazni i izlazni port za aplikacioni program koji se
izvršava na SUN mašini. Istovremeno, mi možemo koristiti
drugi prozor kao ulaz i izlazni port za drugi aplikacioni
program koji se izvršava na samom INDIGO2. Za ovu vrstu
taska, X window sistem treba biti u mogućnosti da prihvati
zahtjev od aplikacionog programa, nazvanog client , pošalje
zahtjev na odgovarajuču radnu stanicu, i izvrši neke grafičke
ulazne i izlazne taskove na prozoru. Ovaj prozor može biti
lociran bilo gdje u mreži. Dakle, radna stanica gdje je
otvoren window mora imati X serverski program da omogući
grafičke operacije.
![Page 31: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/31.jpg)
31
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Uloga X prozora u mrežnom okruženju
Nadalje, zahtjev na klijentskoj strani mora biti napisan sa
specifičnim bibliotečkim funkcijama pohranjenim u biblioteku
Xlib. Biblioteka Xlib mora takodjer biti instalirana na radnoj
stanici gdje se izvršava aplikacioni program. Za prenos
zahtjeva kroz mrežu će se brinuti originalne funkcije od X
window sistema. U stvari, X window sistem uključuje sve
pomenute komponente, uključujuči X server i Xlib.
![Page 32: OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih grafi čkih biblioteka. Sa njima, mi treba samo da obezbjedimo model objekata sa](https://reader033.fdocuments.net/reader033/viewer/2022051808/6008cd64c567666f984fc729/html5/thumbnails/32.jpg)
32
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
Sumarno, aplikacioni program napisan u X će imati slijedeće
prednosti:
- Prvo, aplikacioni program koji se izvršava na radnoj stanici
može imati interakciju grafičkog ulaza i izlaza kroz prozor na
različitoj radnoj stanici u mreži.
- Drugo, višestruki prozori se mogu otvoriti na radnoj stanici, i
višestruki računarski resursi se mogu koristiti kroz svaki
prozor u isto vrijeme.
Konačno, aplikacioni program napisan u X je opčenito
nezavisan od operativnog sistema ili tipa radne stanice.
Ove prednosti se mogu primjeniti na grafički korisnički
interfejs pošto grafički korisnički interfejs se posmatra kao
aplikacioni program.
Open Look i Motif imaju iste prednosti.