Professional Documents
Culture Documents
RENDEROVANJE
RENDEROVANJE
SADRŽAJ
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
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.
I = Ki
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
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.
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
Slika 1. Shading
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.
- Fogging (slika 4), suzbijanje svetla pri prolasku kroz zamagljen prostor.
Slika 4. Fogging
Slika 5. Shadows
7
- Soft shadows (slika 6), prigušena svetlost koja se javlja zbog delimično prekrivenog
izvora svetla.
- 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
Slika 9. Refraction
9
- Diffraction (slika 10), iskrivljenje, širenje i ometanje svetla, dok prolazi pokraj objekata.
10
- Caustics (slika 12), refleksija svetla s sjajnog objekta, fokusiranje svetla kroz
transparentni objekat, kako bi se stvorilo jasno svetlo na drugom objektu.
- Depth of field (slika 13), objekti se čine zamučenim, kada su udaljeni od fokusiranog
objekta.
-
11
- Motion blur (slika 14), objekti se čine mutnim zbog brzine kretanja.
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.
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
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
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
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
12
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.
17
2.5. Global ilumination
13
Pavlović, I., (2013), Primena vektorske i rasterske grafike u fotorealističnom 3D renderovanju, Univerzitet
Singidunum, Beograd.
18
3. PODEŠAVANJA RENDERA
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
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
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
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 (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
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
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
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.
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
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.
glXCreateWindow()
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.
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
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
Ako je kontekst vezan za bilo šta, neće biti uništen. Takođe je moguće kopirati kontekst iz
jednog u drugi:
Sinhronizacija
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.
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
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.
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 };
// Postavljamo light model da koristi ambient light koji određuje ambientLight[] array
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight);
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
32