You are on page 1of 32

1

SADRŽAJ

1. OSVETLJENJE I RENDEROVANJE ....................................................................................... 4


1.1. Osvetljenje i modeli osvetljenja ........................................................................................... 4
2.1. Renderovanje ........................................................................................................................ 5
1.3. Real-time renderovanje ...................................................................................................... 13
1.4. Fotorealistično renderovanje .............................................................................................. 14
2. METODE RENDEROVANJA ................................................................................................. 15
2.1. Render engine ..................................................................................................................... 15
2.2. Ray tracing ......................................................................................................................... 15
2.3. Recursive Ray tracing i Caustics ....................................................................................... 16
2.4. Photon mapping ................................................................................................................. 17
2.5. Global ilumination ............................................................................................................. 18
3. PODEŠAVANJA RENDERA .................................................................................................. 19
3.1.Univerzalna podešavanja V-RAY ......................................................................................... 20
4. FUNKCIJE ZA OSVETLJENJE I RENDEROVANJE POVRŠINA U OpenGL-u…………25

4.1. Prozori i površine za renderovanje u OpenGL-u………………………………………….25


4.2. Rad sa osvetljenjem u OpenGL-u…………………………………………………………28
ZAKLJUČAK ............................................................................................................................... 31
LITERATURA ............................................................................................................................. 32

2
UVOD

Renderovanje predstavlja vrlo složen proces generisanja slika jednog ili više trodimenzionalnih
modela u računarskom programu. U ovom radu govorićemo o modelima osvetljenja i metodama
za renderovanje površina. Tako da ćemo u prvom delu rada govoriti o modelima osvetljenja i
renderovanju uopšte, gde ćemo pomenuti i real-time renderovanje, kao i foto ealistično
renderovanje.

Zatim će biti reči o metodama renderovanja, gde ćemo prikazati i objasniti neke od njih, da bi u
daljem radu ukazali na način podešavanja rendera, te prikazati i objasniti određena podešavanja
koja se tiču manipulacije opštim parametrima za V-Ray. U poslednjem poglavlju rada će biti reči
o funkcijama osvetljenja i renderovanja površina u OpenGL-u.

3
1. OSVETLJENJE I RENDEROVANJE

1.1. Osvetljenje i modeli osvetljenja

U prirodi, svetlosni izvor emituje zrake svetlosti koji putuju dok ne dođu u kontakt sa nekom
površinom. Kontaktom dolazi do jedne od četiri stvari: apsorpcije, refleksije, refrakcije ili
flurescencije.

Površina može da apsorbuje jedan deo svetlosti, rezultujući smanjenjem intenziteta refleksije ili
refrakcije. Takođe moguća je i potpuna refleksija u istom ili više pravaca, delimični ili celokupni
prolazak kroz predmet ili apsorbovanje i reemitovanje u drugoj talasnoj dužini. Svetlost od svog
polaska, direktnim putem ili prolaskom kroz refleksiju, apsorpciju ili refrakciju dolazi do
ljudskog oka. Svetlo koje je stiglo mora da bude zajedno sa aposorbovanim, odnosno,
reflektovanim, refraktovanim svetlom jednako sumi od 100% polaznog svetla.

Postoji više modela osvetljenja i to su:1

Samosvetljenost kao najednostavniji model osvetljenja je takav model da za svaki objekat,


svakoj tački je pridružen isti intenzitet svetlosti. U ovom nerealističnom modelu svako telo kao
da je samoosvetljeno.

Jednačina osvetljenja za ovaj model je:2

I = Ki

Gde je I rezultirajući intezitet svetla, a Ki je intezitet svetla pridružen objektu.

Ambijentalno svetlo, je difuzno svetlo, bez usmerenog izvora, koje je proizvod višestrukog
odbijanja svetlosti od svih površina prisutnih u okruženju. Ako pretpostavimo da se svetlost
rasprostire jednako u svim smerovima i po svim objektima, jednačina osvetljenja za svaki
objekat je:3

1
Janičić, P, (2014), Računarska grafika, Matematički fakultet, Beograd.
2
Isto, str. 103.
3
Isto, str. 104.

4
I= IaKa

Gde je Ia konstantni intezitet ambijetalnog svetla, a Ka je koeficijent ambijentalne refleksije


objekta i on može da ima vrednost između 0 i 1.

Tačkasti izvor svetla i difuzna refleksija. Tačkasti izvor svetla širi zrake u svim smerovima iz
jedne tačke, dok difuzna refleksija predstavlja odbijanje svetlosti od matiranih hrapavih površina.
Ovakve površine izgledaju jednako osvetljene iz svih uglova posmatranja.

Jednačina osvetljenosti u ovom modelu je:4

I = 𝐼𝑝K𝑝 cosƟ

Gde je I jačina izvora svetlosti, Kp koeficijent difuzne refleksije za material od kog je načinjen
objekat i Ɵ je ugao pravca svetla.

Atmosfersko slabljenje, analogno kao što osvetljenost treba da slabi sa udaljenošću izvora
svetla, tako treba da slabi i sa udaljenošću posmatrača.

Spekularna refleksija se može videti na svakom glatkom, sjajnom objektu, npr. (deo jabuke je
najsvetliji, dok je ostatak obasjan difuznim svetlom, u tom delu jabuka ima belu, a ne crvenu
boju).

2.1. Renderovanje

Renderovanje predstavlja proces generisanja slika od jednog ili više trodimenzionalnih modela u
računarskom programu. Kao rezultat renderovanja dobija se slika koja se zove render
(rendering). Osnovni proces se odvija konvertovanjem delova trodimenzionalnih vektorskih
oblika u dvodimenzionalne segmente koji korespondiraju obliku i položaju 3d modela. Vektorski
modeli, najčešće se predstavljaju kao skup kvadrata ili trouglova (poligona) koji zajedno čine 3d
model. Procesom rasterziacije položaj i oblik datog poligona konvertuje se u rastersku projekciju

4
Janičić, P, (2014), Računarska grafika, Matematički fakultet, Beograd, str. 105.

5
oblika kome se posle dodeljuje boja, osvetljenje ili slika, odnosno tekstura. Takav proces je
veoma brz međutim ne podržava opcije naprednih svetlosnih efekata.5

Renderovanu sliku možemo najprostije shvatiti kao skup vidljivih osobina. Neke od tehnika koje
uspešno oponašaju te osobine su:6

- Shading (slika 1) ,varijacija boje i svetlosti na površini uslovljenja svetlošću.

Slika 1. Shading

- Texture mapping (slika 2), metoda apliciranja detalja na površinu.

Slika 2. Texture mapping

5
Cvetković, D, Kostić, Z, (2009), 3D grafika i animacija, Univerzitet Singidunum, Beograd.
6
Kuscuoglu, D.,(2008), Reklama za automobil, Fakultet za informatiku i menaddžment, Beograd.

6
- Bump mapping (slika 3), metoda simuliranja manjih reljefa na površinama.

Slika 3. Bump mapping

- Fogging (slika 4), suzbijanje svetla pri prolasku kroz zamagljen prostor.

Slika 4. Fogging

- Shadows (slika 5), efekt nedostataka svetla.

Slika 5. Shadows

7
- Soft shadows (slika 6), prigušena svetlost koja se javlja zbog delimično prekrivenog
izvora svetla.

Slika 6. Soft shadows

- Reflection (slika 7), refleksija poput one u ogledalu, jako sjajna refleksija.

Slika 7. Reflection

8
- Transparency (slika 8), oštro propuštanje svetlosti kroz neki objekat.

Slika 8. Transparency

- Refraction (slika 9), iskrivljenje svetla uzrokovano prelamanjem.

Slika 9. Refraction

9
- Diffraction (slika 10), iskrivljenje, širenje i ometanje svetla, dok prolazi pokraj objekata.

Slika 10. Diffraction

- Indirect illumination (slika 11), površina osvetljenja svetlom reflektovanim s drugog


objekta.

Slika 11. Indirect illumination

10
- Caustics (slika 12), refleksija svetla s sjajnog objekta, fokusiranje svetla kroz
transparentni objekat, kako bi se stvorilo jasno svetlo na drugom objektu.

Slika 12. Caustics

- Depth of field (slika 13), objekti se čine zamučenim, kada su udaljeni od fokusiranog
objekta.
-

Slika 13. Depth of field

11
- Motion blur (slika 14), objekti se čine mutnim zbog brzine kretanja.

Slika 13. Motion blur

- Photorealistic morphing (slika 14), fotošopiranje 3D renderovanih slika, kako bi


izgledale što realnije.

Slika 14. Photorealistic morphing

12
- Non-photorealistic rendering (slika 15), renderovanje scena oponašajući neki umetnički
stil u svrhu imitiranja ručno izrađenog crteža ili slike.

Slika 15. Non-photorealistic rendering

1.3. Real-time renderovanje

Renderovanje koje se koristi kod različitih medija, poput računarskih igara,simulacija i sl., se
izračunava i prikazuje u realnom vremenu, menjajući sliku od 12 do 120 puta u sekundi. Kod
real-time renderovanja cilj je prikazati što više informacija koje oko može percipirati u
tridesetinki sekunde. Brzina je važnija od realnosti, što znači da renderovana slika nije nužno
bliska stvarnom svetu, već je dovoljno bliska ljudskom oku da je toleriše. Programi za
renderovanje mogu simulirati efekte poput lens flares-a, dubine polja ili zamućenosti u pokretu.
To su efekti koji dodaju element realizma sceni, zasnivajući se na optičkim karakteristikama
kamere i ljudskog oka.7

7
Zwicker, M., (2009), A Survey and Classification of Real Time Rendering Methods, ETH, Zurich.

13
1.4. Fotorealistično renderovanje

Animacije za medije koji nisu interaktivne prirode, poput filma i videa, često se renderuju
mnogo sporije. Taj način renderovanja omogućuje veliki kvalitet. Kod ovakvog renderovanja
upotrebljavaju se tehnike poput praćenja zraka i zračenja, koje oponašaju prirodnu interakciju
površina i svetla. Koriste se i druge tehnike poput particle systems-a (simulira dim, vatru, kišu),
volumetric sampling (simulira maglu, prašinu), caustics (simulira fokusiranje svetla na
površinama koje različito reflekutuju svetlo), i subsurface scattering (simulira refleksiju svetla
unutar nekog volumena).8

8
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.

14
2. METODE RENDEROVANJA

2.1. Render engine

Render engine je program sa sprovođenje procesa renderovanja slike. Može egzistirati


samosatlno ili biti integrisan u program za modelovanje. U zavisnosti od načina simulacije
kretanja i proračunavanja svetlosti, može se podeliti na biased (Vray, Mental ray, itd.) i unbiased
(Maxwell, Arnold, Octane, Brasil).9

Slika 16. Render engine

2.2. Ray tracing

Uzmemo li u obzir stvaran svet, uvidećemo da Ray tracing radi na obrnutom principu. Zraci se
ispaljuju iz kamere, jer simulacija prirode bi potrošila previše vremena i resursa, zbog činjenice
da veoma mali broj zraka krene od izvora svetlosti i dospe do krajnje destinacije, tj. kamere.
Obrada tolike količine informacija oduzela bi previše vremena, dok je obrnuti proces praćenja
ulaznih zraka (ray tracing) znatno manje hardverski zahtevan.

9
Foley, J., (2008), Computer Graphics: Principles and Practice, Addison-Wesley, Boston, USA.

15
Proces funkcioniše tako što se iz kamere ispaljuje po jedan zrak za svaki piksel. Koristeći
karakteristike materijala i pozicije osvetljenja u sceni algoritam ocenjuje senčenje objekta. Ako
između piksela i izvora svetlosti nema preprekaa, piksel je osvetljen, a ako izmeu njih stoji
objekat ili deo objekta, piksel je u senci.10

Slika 17. Ray tracing

2.3. Recursive ray tracing i Caustics

U ovom slučaju generišu se dve vrste zraka, zrak refleksije i refrakcije. Refleksija se traži u
ogledalo refleksiji. Najbliži objekat sa kojim ima interakciju biće reflektovan. Refrakcija
funkcioniše na sličan način sa tim što zrak možee da uđe ili izađe kroz određene materijale.
Određeni objekti međutim, moraju da se renderuju na drugačiji način, koristeći svetlo generisano
od strane izvora svetlosti. Prelamanje svetlosti kroz tanke zaobljene providne objekte (Caustics)
je jedan od najčešćih razloga za korišćenje obrnutog metoda ray tracing-a.11

10
Foley, J., (2008), Computer Graphics: Principles and Practice, Addison-Wesley, Boston, USA.
11
Isto, str. 117.

16
Slika 18. Recursive ray tracing

2.4. Photon mapping

Photon mapping (mapiranje fotona), predstavlja metodu koja koristi oba načina praćenja
kretanja svetlosti. Energetski fotoni se ispaljuju sa izvora svetlosti kako bi se procenio fluks
zračenja i kreirala mapa fotona. U drugom prelazu prati se kretanje svetlosti iz kamere kako
bi se procenile vidljive površine na koje se primenjuje fotonska mapa kako bi se procenila
iluminacija date vidljive površine.12

Slika 19. Photon mapping

12
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.

17
2.5. Global ilumination

Globalna iluminacija (Global illumination) je generalno ime za grupu algoritama u 3d grafici


koji doprinose fotorealističnosti rezultata. Koriste je Radiocity, Ray tracing, Photon mapping,
Metropolis ligth transport i Ambient occlusion metodi. Oni preračunavaju svetlo koje dolazi
direktno od izvora svetlosti (direct illumination) a naknadno i svetlo reflektovano (indirect
illumination). Metoda preračunavanja svetlosi zove se Specular Reflection. Svetlost se projektuje
na sferu mape okoline (envirement mapping) i koristi se za simuliranje svetlosti na sceni
korišćenjem visoko dinamičke slike (high dynamic range imagining - HDRI).13

Mana preračunavanja globalne iluminacije je veoma velika hardverska i vremenska zahtevnost,


posebno imajući u vidu da nakon višečasovnog renderovanja rezultat može da bude lošiji nego
bez korišćenja globalne iluminacije zbog karakteristika podešavanja njegovih opcija i korelacije
sa samim modelima u renderu.

Slika 20. Global ilumination

13
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.

18
3. PODEŠAVANJA RENDERA

Kako bi pravilno postavili render podešavanja neophodno je uraditi sledeće:14

1. U render podešavanjima potrebno je uključiti mental ray render, envioroment map,


postaviti Phisical sky i uključiti mr Sun u Sunlight parametrima i mr Sky u Skylight
parametrima.
2. Svim objektima potrebno je dodeliti Generate & Recive GI and Caustics kako bi
podešavanja uticala na njih i koristila ih u prorčunavanju refleksije i refrakcije.
3. U render pod-panelu Indirect Ilumination potrebno je markirati Enable final gathering.
4. Gustinu mreže za obračun finalnog skupljanja svetlosti Initial FG points Density
multiplikator treba podesiti na 0,1-1-4.
5. Interpolate over NUM FG points 1-noisy, 5–less noisse, 30- realistic, 200-smooth.
6. Broj zrakova koji se generišu u jednoj tački Rays per point treba podesiti na 1, 4, 500,
1000, 10000 u zavisnosti od potrebe.
7 Postavljanjem sledećih parametara: Final Gethering: Density-0.1, Rays 50-100,
Interpolate 30-50 dobija se bolje osvetljena scena, međutim proces renderovana se
produžava.
7. Markirati Enable Photon Mapping. Maximum sampling radius određuje broj fotona u
sceni. U zavisnosti od scene stavljati od 500 pa naviše.
8. Opciju kombinovanja GI i FG moguće je odraditi na sledeći način: Ugasi se Final
Gether. Uključi se Global Illumination. Nakon njegovor preračunavanja, Final Gether
koristi svetlo generisano od strane GI-a kako bi napravio efikasniju mapu.

14
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.

19
3.1.Univerzalna podešavanja V-RAY

V-Ray Frame Buffer

Pre bilo kakve upotrebe V-RAY rendera veoma je bitna aktivacija namenskog V-RAY Frame
Buffera-a koji u potpunosti zamenjuje i poboljšava integrisani 3DS MAX Frame Buffer. Za
uključivanje V-Ray Frame Buffera-a potrebno je markirati opciju enable built-in Frame Buffer
(Slika 21). Korišćenje V-Ray Frame Buffer-a u velikoj meri poboljšava kompatibilnost V-Ray
rendera sa radom 3DS Max-a i eliminiše mogućnost nesporazuma za gama korekciju. Dalje je
važno da opcija get resolution from Max bude markirana jer se na taj način eliminiše konstantno
podešavanje rezolucije u podešavanjima za V-Ray, što pri velikom broju rendera i konstantnog
menjanja rezolucije zsporava sam rad na projektu. V-Ray raw image i split render Channels su
opcije odgovorne za formiranje formata konačne slike koji će biti potreban za postprodulciju
rendera u odgovarajućim softverima.15

Slika 21. V-Ray Frame buffer

15
Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na: http://www.arhns.uns.ac.rs,
pristupljeno:19.11.2018.

20
V- Ray Global switches

Global switcches podešavanja (slika 22) sadrže parametre za globalni uticaj scene na finalni
render. Konfiguracija ovih podešavna u orginalu su dobro podešena i ne treba da se menjaju
osim reflection/refraction parametara koji mogu da budu značajni. Ova opcija je odgovorna za
aktivaciju ili deaktivaciju reflekcije i refrakcije svih materijala na sceni. Max depth opcija
određuje broj sekundarnih refleksija ili refrakcija na sceni, odnosno koliko će refleksija ili
refrakcija postojećih objekata na sceni da ide u dubinu.16

Slika 22. V- Ray Global switches

V-Ray Environment

Ovaj meni (slika 23) se koristi za podešavanje i uvođenje globalnog osvetljenja u scenu, kao i
refleksije i refrakcije. Parametri koji regulišu takva podešavanja su gi enviroment (skylight)
override, reflection/refraction enviroment overvide i refraction enviroment overvide koji služi za
podešavanje refrakcije odvojeno od refleksije.

16
Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na: http://www.arhns.uns.ac.rs,
pristupljeno:19.11.2018.

21
Slika 23. V-Ray Environment

V-Ray color mapping

V-Ray color mapping (slika 24) je jedan od najvažnijih alata čije je poznavanje veoma važno za
kvalitetnu vizuelizaciju i odgovoran je za podešavanje ekspozicije i gama korekcije. Ekspozicija
je alat koji je u računarsku grafiku uveden iz fotografije i on suštinski određuje količinu svetla
koja pada na film u trenutku fotografisanja. Gama korekcija reguliše linearnost u prelazu tonova
od tamnih ka svetlijim. Dakle, on predstavlja način prenošenja informacija o predstavljanju boja
na finalnom renderu.17

Slika 24. V-Ray color mapping

17
Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na: http://www.arhns.uns.ac.rs,
pristupljeno:19.11.2018.

22
V-Ray global illumination

U ovom meniju se kontrolišu podešavanja za global illumination (slika 25), alogaritme koji se
koriste za renderovanje, kao i metoda projekcije i stvaranja primary i secondary bounce-a. Za
početak da bi global illumintion sistem bio uključen, neophodno je da opcija on bude uključena.
Ovom opcijom je omogućen pristup i manipulacija parametrima koji utiču na sprovođenje
globalne iluminacije na renderu.18

Slika 25. Global illumination

Traditional photon map

Ovde se radi o zastarelom alogaritmu za kreiranje globalne iluminacije, čiji se koncept zasniva
na tome da svetlosni izvori „bombarduju“ sve objekte na sceni porcijama energije koje se zovu
fotoni nakon čega se na sceni formiraju tzv. photon maps. Mape fotona su trodimenzionalne
mape koje se formiraju na mestu kontakta fotona i površine gde svaki od ovih kontakata sadrži
informacije o osvetljenju i boji indirektne iluminacije.

18
Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na: http://www.arhns.uns.ac.rs,
pristupljeno:19.11.2018.

23
Modern light cache

Light cache je moderni alogaritam za renderovanje i po formiranju mapa globalne ilumninacije


je sličan radu photon mapa-a, međutim, u isto vreme je njegova suprotnost po načinu računanja
svetlosnih zraka. Naime, razlika između photon map-a i light cache-a je u tome što light cache
optimizuje scenu uzimajući u obzir samo one delove koji su vidljivi iz pravca kamere, dobro se
nosi sa detaljima, tako da nema izrazitih tamnih ivica u finalnom renderu, te može da radi i sa
direktnim i indirektnim osvetljenjem.19

19
Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na: http://www.arhns.uns.ac.rs,
pristupljeno:19.11.2018.

24
4. FUNKCIJE ZA OSVETLJENJE I RENDEROVANJE

POVRŠINA U OpenGL-u

OpenGL je razvijen od strane Silicon Graphics kompanije, kao kolekcija od nekoliko stotina
funkcija koje daju pristup svim funkcijama grafičkog hardvera. OpenGL predstavlja moćnu low-
level biblioteku, dostupnu za sve platforme sa širokom hardverskom podrškom. Dizajniran je za
razvoj od kompjuterskih igara do CAD aplikacija. Međutim, u daljem radu mi ćemo se fokusirati
na funkcije osvetljenja i renderovanja površina u OpenGL-u.

4.1. Prozori i površine za renderovanje u OpenGL-u

Početni korak pri vršenju ove operacije je kreiranje prozora na displeju funkcijom:20

XCreateWindow().

Window XCreateWindow(Display* dpy, Window parent, int x, int y, unsignet int width, unsigned
int height, unsigned int border_width, int depth, unsigned int class, Visual* visual,
unsigned_long valuemask, XSetWindowAttributes* attributes);

Ova funkcija zahteva parent prozor, takođe možete koristiti glavni X prozor za to. Takođe je
potrebno proslediti i koordinate pozicije i dimenzije. Klasa prozora može biti:21

InputOnly, InputOutput, CopyFromParent.

CopyFromParent će koristiti vrednosti parent prozora od koga se vrednosti preuzimaju. Atributi


dodeljuju osobine prozoru, a valuemask polje govori X serveru na koje vrednosti treba da obrati
pažnju.

20
Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za poslovnu informatiku, Beograd.
21
Isto, str. 13.

25
Pošto smo kreirali prozor neophodno je kreirati i površinu za rendering u prozoru. Poziv funkcije
za kreiranje oblasti mora primiti kompatibilne atribute konfiguracije kao i prozor u kome se polje
kreira.

Tako da ćemo upotrebiti sledeću funkciju:22

glXCreateWindow()

GLXWindow glXCreateWindow(Display* dpy, GLXFBConfig config, Window win, const int*


attrib_list);

attrib_list trenutno ne podržava nikakve parametre i služi za buduću ekspanziju. Prosledićemo


NULL.

Funkcija će vratiti grešku ukoliko je ispunjen jedan od uslova: ako konfiguracija nije
kompatibilna sa konfiguracijom prozora, ako konfiguracija ne podržava window rendering, ako
je neki parametar nevalidan, ako je GLXFBConfig već pridružen nekom prozoru ili ako nije
validan, ili ako postoji neka opšta greška pri kreiranju GLX prozora.

Pošto smo završili sa renderingom potrebno je uništiti oblast renderinga pa prozor:

glxDestroyWindow(Display* dpy, GLXWindow window); // uništavamo oblast renderinga.

XDestroyWindow(Display* dpy, Window win); // uništavamo prozor u kome je renderovano.

Context Managment

Kontekst je set OpenGL iskaza koji su vezani za rendering površinu. Više konteksta može biti
kreirano ali samo jedan može biti korišćen za rendering. Najmanje jedan kontekst je neophodan
za rednering. Kontekst možete kreirati pomoću glXCreateNewContext() funkcije:23

GLXContext glXCreateNewContext(Display * dpy, GLXFBConfig config, int render_type,


GLXContext share_list, bool direct);

render_type parametar prihvata GLX_RGBA_TYPE ili GLX_COLOR_INDEX_TYPE. Normalno,


trebalo bi proslediti NULL u share_list parametar. Postavite TRUE za direct parameter zahteve
tj. za vezu sa lokalnim X Severom ili FALSE za kontekst koji renderuje kroz X Server.

Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za poslovnu informatiku, Beograd.
22
23
Isto, str. 14.

26
Da biste koristili kreirani kontekst upotrebite funkciju glXMakeContextCurrent():24

glXMakeContextCurrent(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext


ctx);

Kada završite sa njegovom upotrebom potrebno ga je uništiti funkcijom:

glXDestroyContext(): glXDestroyContext(Display * dpy, GLXContext ctx);

Ako je kontekst vezan za bilo šta, neće biti uništen. Takođe je moguće kopirati kontekst iz
jednog u drugi:

glXCopyContext(Display * dpy, GLXContext source, GLXContext dest, unsigned long mask);

Sinhronizacija

GLX ima nekoliko funkcija - komandi za sinhronizaciju:25

Pozivom funkcije glXWaitGL() obezbeđujemo da će se završiti sav prikaz za prozor pre nego što
dođe do renderovanja. Na primer iscrtavanje dekoracije prozora od strane window manager-a pre
nego što se desi renderovanje.

void glXWaitGL();

Isto tako, glXWaitX() omogućuje da se sav OpenGL rednering kompletira pre bilo kog OpenGL
poziva koji zatim sledi.

void glXWaitX();

Dakle, upravo smo završili sa osnovnim funkcijama neophodnim za rad sa X Window System
okruženjem i pozivanjem OpenGL renderinga u X prozor. Rezimiraćemo faze po redosledu:

- definisanje displeja
- definisanje prozora
- definisanje površine za rendering
- definisanje konteksta i odabir current konteksta
- obavljanje OpenGL renderinga

24
Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za poslovnu informatiku, Beograd.
25
Isto, str. 14.

27
- uništavanje konteksta
- uništavanje oblasti renderinga
- uništavanje prozora
- uništavanje displeja.

Na slici 26 je prikazan odnos između displeja - prozora – konteksta.

Slika 26. Prikaz odnosa displej – prozor - kontekst

4.2. Rad sa osvetljenjem u OpenGL-u

U OpenGL-u moguć je rad sa svetlima koji objektima koje senčimo daju dodatnu realističnost.
Kako je već bilo reči u ovom radu, postoji nekoliko vrsta svetla i to: ambient, diffuse i specular.

Ambient svetlo je svetlo koje ne dolazi sa bilo kog određenog pravca. Ima svoj izvor negde ali
njegovi zraci padaju svuda. Objekti osvetljeni ovakvim svetlom su jednako osvetljeni na svim
tačkama svoje povrešine.

Diffuse svetlo dolazi iz odredjenog pravca i udara u površinu objekta. Ovakvo svetlo se zatim
odbija o površinu proporcionalno uglu pod kojim pada. Objekat je jače osvetljen što svetlo
direktnije pada na površinu.
28
Kao i diffuse, specular je direkciono svetlo. Međutim, ono više utiče na površinu od diffuse
svetla. Ono prouzrokuje svetle tače na mestima gde pada, zato se još zove i specular highlight.
Zbog svoje direkcione prirode ono čak zavisi i od ugla pod kojim posmatrač posmatra scenu.

Međutim, ni jedno svetlo u OpenGL-u nije 100% ni jedan od tri pomenuta tipa, već se sa sastoji
od osobina svakog koje variraju od potreba. Zbog toga, svetlo se sastoji od tri lighting
komponente: ambient, diffuse i specular. Baš kao i komponente boje ovi atributi imaju 4 osnovna
parametra: R, G, B, A.26

Materijali i svojstva materijala

Kada radimo sa svetlima obično poligonima ne dajemo samo boju već i određena svojstva kako
bismo dobili napredne vizuelne performanse. Ova svojstva se zovu materijali. Kao i svetla
materijali imaju tri osnovna svojstva: ambient, diffuse i specular. Zavisno od tri atributa svetla i
tri atributa materijala pikseli dobijaju finalnu boju. Boja piksela se dobija složenim proračunima
parametara.

Postavljanje svojstva materijala

Nadalje ćemo prikazati kako se praktično primenjuje prethodno rečeno, odnosno prikazaćemo
kako se definiše mateijal i neophodno svetlo:27

// Jako belo svetlo – puni inteziteti RGB vrednosti GLfloat ambientLight[] = { 1.0f, 1.0f, 1.0f,
1.0f };

// Enable lighting glEnable(GL_LIGHTING);

// Postavljamo light model da koristi ambient light koji određuje ambientLight[] array
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight);

Glfloat gray[] = { 0.75f, 0.75f, 0.75f, 1.0f };

glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gray); // sencimo prednju stranu


poligona, a zatim vrednosti gray niza dodeljujemo i ambient i diffuse osobinama materijala.

26
Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za poslovnu informatiku, Beograd.
27
Isto, str. 44.

29
Zatim crtamo:28

glBegin(GL_TRIANGLES);
glVertex3f(-15.0f,0.0f,30.0f);
glVertex3f(0.0f, 15.0f, 30.0f);
glVertex3f(0.0f, 0.0f, -56.0f);
glEnd();
Navedeni primer je veoma jednostavan, gde nakon što zadamo parametre, OpenGL za nas vrši
proračun ikonačan izlaz na ekran.

28
Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za poslovnu informatiku, Beograd.

30
ZAKLJUČAK

Renderovanje je proces kojim se gotovi 3D model prebacuje u 2D sliku. Ovaj proces je vrlo
kompleksan jer računar uzima i obrađuje sve parametre koji su postavljeni u 3D sceni i
izračunava sliku. To uključuje proračun materijala na modelu i pripadajućih atributa poput
refleksije i refrakcije, proračun senki, zavisno od izvora svetlosti, te reflektovanja tog svetla od
materijala na sceni.

U ovom radu bilo je reči o modelima osvetljenja i metodama renderovanja površina. Osim što
smo u radu ukazali na sam pojam i vrste renderovanja, bilo je reči i o metodama renderovanja,
kao što smo govorili i o render podešavanjima. Osim toga prikazali smo i objasnili određena
podešavanja koja se tiču manipulacije opštim parametrima za V-Ray, da bi u poslednjem
poglavlju rada prikazali osnovne funkcije osvetljenja i renderovanja površina u OpenGL-u.

31
LITERATURA

1. Cvetković, D, Kostić, Z, (2009), 3D grafika i animacija, Univerzitet Singidunum,


Beograd.
2. Foley, J., (2008), Computer Graphics: Principles and Practice, Addison-Wesley, Boston,
USA.
3. Janičić, P, (2014), Računarska grafika, Matematički fakultet, Beograd.
4. Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D
renderovanju, Univerzitet Singidunum, Beograd.
5. Srđan Bogdanović, Univerzalna podešavanja za V-RAY, dostupno na:
http://www.arhns.uns.ac.rs, pristupljeno:19.11.2018.
6. Kuscuoglu, D., (2008), Reklama za automobil, Fakultet za informatiku i menaddžment,
Beograd.
7. Vasić, M., (2009), Programiranje kompjuterske grafike u OpenGL-u, Fakultet za
poslovnu informatiku, Beograd.
8. Zwicker, M., (2009), A Survey and Classification of Real Time Rendering Methods, ETH,
Zurich.

32

You might also like