OSNOVNI KONCEPTI GRAFI ČKOG PROGRAMIRANJA …asalihbegovic/Arhitektura/LECTURE-6.pdf · naprednih...

32
1 OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA RENDERISANJE ( RENDERING) Slike koje se crtaju bez sakrivenih linija ili sakrivenih površina mogu da prikažu oblike dosta jasno u većini slučajeva. Medjutim, poželjno je da možemo da prikažemo realističnije neke slike za neke aplikacije. Naprimjer, realistične slike igraju vrlo važnu ulogu u ‘’virtualnoj realnosti’’, relativno novoj tehnologiji, koja simulira na računaru realne situacije. Naprimjer, možemo željeti da vizualiziramo unutrašnost i vanjski izgled zgrade na računaru. Tada možemo iskusiti različite aspekte zgrade kao da šetamo kroz unutrašnjost i oko zgrade. Ovakav alat bi bio vrlo koristan , naprimjer, prije nego se donese odluka o konstrukciji 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, i mi odredjujemo oblike, teksture

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.