+ All Categories
Home > Documents > VYSOKE U´ CENˇ ´I TECHNICK E V BRN´ Eˇ - core.ac.uk · ov e rit vhodnost navr zen eho osv...

VYSOKE U´ CENˇ ´I TECHNICK E V BRN´ Eˇ - core.ac.uk · ov e rit vhodnost navr zen eho osv...

Date post: 02-Dec-2018
Category:
Upload: trancong
View: 219 times
Download: 0 times
Share this document with a friend
59
VYSOK ´ EU ˇ CEN ´ I TECHNICK ´ E V BRN ˇ E BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMA ˇ CN ´ ICH TECHNOLOGI ´ I ´ USTAV PO ˇ C ´ ITA ˇ COV ´ E GRAFIKY A MULTIM ´ EDI ´ I FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA ˇ RE ˇ SEN ´ I INTENZITY OSV ˇ ETLEN ´ I SC ´ ENY METODOU MAPOV ´ AN ´ I FOTON ˚ U DIPLOMOV ´ A PR ´ ACE MASTER’S THESIS AUTOR PR ´ ACE Bc. LUK ´ A ˇ SH ¨ UBNER AUTHOR BRNO 2012
Transcript

VYSOKE UCENI TECHNICKE V BRNEBRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMACNICH TECHNOLOGIIUSTAV POCITACOVE GRAFIKY A MULTIMEDII

FACULTY OF INFORMATION TECHNOLOGYDEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA

RESENI INTENZITY OSVETLENI SCENY METODOUMAPOVANI FOTONU

DIPLOMOVA PRACEMASTER’S THESIS

AUTOR PRACE Bc. LUKAS HUBNERAUTHOR

BRNO 2012

VYSOKE UCENI TECHNICKE V BRNEBRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMACNICH TECHNOLOGIIUSTAV POCITACOVE GRAFIKY A MULTIMEDII

FACULTY OF INFORMATION TECHNOLOGYDEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA

RESENI INTENZITY OSVETLENI SCENY METODOUMAPOVANI FOTONUSCENE ILLUMINATION BY PHOTON MAPPING METHOD

DIPLOMOVA PRACEMASTER’S THESIS

AUTOR PRACE Bc. LUKAS HUBNERAUTHOR

VEDOUCI PRACE Doc. Ing. PREMYSL KRSEK, Ph.D.SUPERVISOR

BRNO 2012

AbstraktPrace se zabyva vypoctem osvetlenı sceny. Na osvetlenı sceny je nahlızeno z pohledu fy-zikalnı simulace intenzity osvetlenı v navaznosti na metody pouzıvane v soucasne pocıtacovegrafice. Praktickou castı je implementace vypoctu globalnıho osvetlenı sceny metodou ma-povanı fotonu.

AbstractThis thesis deals with the estimation of global illumination of a scene. Global illumination isexpressed as a physical simulation in connection with illumination methods used in currentcomputer graphics. In the practical part there is expressed an implementation of globalillumination estimation using photon maps.

Klıcova slovamapovanı fotonu, globalnı osvetlenı sceny, fotometrie, intenzita osvetlenı

Keywordsphoton mapping, global illumination, photometry, illumination

CitaceLukas Hubner: Resenı intenzity osvetlenı sceny metodou Mapovanı fotonu, diplomovaprace, Brno, FIT VUT v Brne, 2012

Resenı intenzity osvetlenı sceny metodou Mapovanıfotonu

ProhlasenıProhlasuji, ze jsem tuto diplomovou praci vypracoval samostatne pod vedenım pana Doc.Ing. Premysla Krska, Ph.D.

. . . . . . . . . . . . . . . . . . . . . . .Lukas Hubner

23. kvetna 2012

PodekovanıDekuji vedoucımu me prace panu Doc. Ing. Premyslu Krskovi, Ph.D. za cenne pripomınkya za nasmerovanı mych kroku k uspesnemu dokoncenı teto prace.

c© Lukas Hubner, 2012.Tato prace vznikla jako skolnı dılo na Vysokem ucenı technickem v Brne, Fakulte in-formacnıch technologiı. Prace je chranena autorskym zakonem a jejı uzitı bez udelenı opravnenıautorem je nezakonne, s vyjimkou zakonem definovanych prıpadu.

Obsah

1 Uvod 6

2 Teoreticka analyza 72.1 Uvod do fotometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Svetelne zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Svıtivost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.3 Svetelny tok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.4 Intenzita osvetlenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Osvetlenı v pocıtacove grafice . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.1 Zobrazovacı rovnice . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Paprskova optika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1 Odraz na dokonale difuznım povrchu . . . . . . . . . . . . . . . . . . 102.3.2 Odraz na dokonale lesklem povrchu . . . . . . . . . . . . . . . . . . 112.3.3 Lom na dokonale lesklem povrchu . . . . . . . . . . . . . . . . . . . 11

2.4 Dvousmerna odrazova distribucnı funkce (BRDF) . . . . . . . . . . . . . . . 122.4.1 Rozlozenı pravdepodobnosti orientace elementarnıch plosek . . . . . 12

2.5 Rychle osvetlovacı metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6 Radiozita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7 Ray casting - vrhanı paprsku . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8 Ray tracing - sledovanı paprsku . . . . . . . . . . . . . . . . . . . . . . . . . 142.9 Distribuovany ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.10 Path tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.11 Mapovanı fotonu (Photon Mapping) . . . . . . . . . . . . . . . . . . . . . . 16

2.11.1 Fotonova mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.11.2 Zobrazenı vysledku . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.12 Existujıcı aplikace pro vypocet intenzity osvetlenı . . . . . . . . . . . . . . . 182.12.1 Wils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Navrh a implementace 203.1 Objektovy navrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Pouzite knihovny a nastroje . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1 Graf sceny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2 Fotonova mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.3 Generovanı nahodnych cısel . . . . . . . . . . . . . . . . . . . . . . . 223.2.4 Graficke uzivatelske prostredı . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Graf sceny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.1 Geometricke uzly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.2 Uzly pro photon mapping . . . . . . . . . . . . . . . . . . . . . . . . 24

1

3.3.3 Kontrolnı body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.4 Kontrolnı mrızky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.3.5 Pruchody scenou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.4 Generovanı nahodnych smerovych vektoru . . . . . . . . . . . . . . . . . . . 263.4.1 S vyuzitım jednotkove krychle . . . . . . . . . . . . . . . . . . . . . 263.4.2 S vyuzitım normalnıho rozlozenı pravdepodobnosti . . . . . . . . . . 273.4.3 Pomocı sfericke soustavy souradnic . . . . . . . . . . . . . . . . . . . 273.4.4 Interpolovane rozlozenı pravdepodobnosti . . . . . . . . . . . . . . . 283.4.5 Generator smeru s definovanou charakteristikou . . . . . . . . . . . . 29

3.5 Struktura fotonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.5.1 Barva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.5.2 Index lomu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.6 Svetelne zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.6.1 Vsesmerove svetlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.6.2 Konicke svetlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.6.3 Svetelny zdroj s definovanou charakteristikou . . . . . . . . . . . . . 323.6.4 Uchovanı svetel ve scene . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.7 Materialy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.8 Sırenı fotonu scenou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.8.1 Generovanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.8.2 Zpracovanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.8.3 Nalezenı prusecıku a prıslusneho uzlu sceny . . . . . . . . . . . . . . 333.8.4 Odraz a lom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.9 Fotonova mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.10 Urcenı intenzity osvetlenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.10.1 Vyhledanı mnoziny fotonu u paprskovych metod . . . . . . . . . . . 363.10.2 Stanovenı velikosti povrchu dopadove elementarnı plosky . . . . . . 363.10.3 Vynesenı hodnot osvetlenı na polygonalnı sıt’ . . . . . . . . . . . . . 373.10.4 Urcenı intenzity osvetlenı ve vrcholu trojuhelnıkove sıte . . . . . . . 37

3.11 Zobrazenı vysledku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.11.1 Vizualizace fyzikalnıch hodnot . . . . . . . . . . . . . . . . . . . . . 383.11.2 Realisticke zobrazenı . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.11.3 Hodnoty v kontrolnıch bodech . . . . . . . . . . . . . . . . . . . . . 41

3.12 Vstupnı data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.12.1 Definice experimentu . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.12.2 Definice svetelnych zdroju . . . . . . . . . . . . . . . . . . . . . . . . 433.12.3 Definice materialu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.12.4 Definice prvku sceny . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Vysledky a porovnanı 454.1 Porovnanı s analytickym vypoctem . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.1 Definovanı jednoduche sceny . . . . . . . . . . . . . . . . . . . . . . 454.1.2 Vypocet pomocı fyzikalnıch vzorcu . . . . . . . . . . . . . . . . . . . 454.1.3 Simulace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.1.4 Zhodnocenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2 Porovnanı s programem Wils . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2.1 Porovnanı sceny: mıstnost s difuznımi stenami . . . . . . . . . . . . 51

4.3 Vyhodnocenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2

5 Zaver 53

A Obsah CD 55

3

Seznam obrazku

2.1 Ukazka fotometrickeho diagramu svetelneho zdroje. . . . . . . . . . . . . . . 82.2 Graficke znazornenı zobrazovacı rovnice. . . . . . . . . . . . . . . . . . . . . 92.3 Odraz na difuznım (nerovnem) povrchu. . . . . . . . . . . . . . . . . . . . . 112.4 Odraz na lesklem povrchu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Lom paprsku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6 Radiozita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7 Ray casting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8 Ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.9 Distribuovany ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.10 Path tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.11 Mapovanı fotonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.12 Ukazka vizualizace programu DIALux . . . . . . . . . . . . . . . . . . . . . 182.13 Izo diagram osvetlenı steny v programu Wils . . . . . . . . . . . . . . . . . 19

3.1 Diagram trıd - jadro aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Diagram trıd - struktury pouzite v grafu sceny . . . . . . . . . . . . . . . . 233.3 Nerovnomerne rozlozenı bodu na povrchu koule . . . . . . . . . . . . . . . . 273.4 Rovnomerne rozlozenı bodu na povrchu koule . . . . . . . . . . . . . . . . . 273.5 Diagram trıd - svetelne zdroje a generatory smerovych vektoru . . . . . . . 313.6 Vizualizace intenzity osvetlenı jako stupne sedi . . . . . . . . . . . . . . . . 393.7 Vizualizace intenzity osvetlenı barevnou skalou . . . . . . . . . . . . . . . . 393.8 Barevna skala pro vizualizaci intenzity . . . . . . . . . . . . . . . . . . . . . 403.9 Zobrazenı svetla, dopadajıcıho na povrch . . . . . . . . . . . . . . . . . . . 403.10 Zobrazenı svetla, smerujıcıho do kamery . . . . . . . . . . . . . . . . . . . . 41

4

Seznam tabulek

4.1 Referencnı hodnoty - vypoctene fyzikalnım vzorcem . . . . . . . . . . . . . 464.2 Konfigurace simulace pro porovnanı s vypoctem pomocı vzorce . . . . . . . 464.3 Konfigurace 1, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 474.4 Konfigurace 1, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 474.5 Konfigurace 2, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 474.6 Konfigurace 2, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 484.7 Konfigurace 3, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 484.8 Konfigurace 3, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 484.9 Konfigurace 4, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 494.10 Konfigurace 4, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 494.11 Konfigurace 5, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 494.12 Konfigurace 5, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 504.13 Konfigurace 6, aritmeticky prumer jednotlivych merenı . . . . . . . . . . . . 504.14 Konfigurace 6, odchylky od referencnıch hodnot (Tab. 4.1) . . . . . . . . . . 504.15 Vysledky porovnanı s vypoctem pomocı fyzikalnıho vzorce . . . . . . . . . . 514.16 Hodnoty spoctene programem Wils . . . . . . . . . . . . . . . . . . . . . . . 524.17 Hodnoty spoctene mapovanım fotonu . . . . . . . . . . . . . . . . . . . . . 524.18 Odchylky od hodnot Wilsu . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5

Kapitola 1

Uvod

Intenzita osvetlenı je dulezitou velicinou pro lidske vnımanı, jejı hodnota se menı v zavislostina tvaru a strukture objektu a umocnuje tak prostorove videnı. Lidsky zrak se dokazeprizpusobit pomerne sirokemu spektru hodnot intenzity osvetlenı, avsak z hlediska po-hodlı, psychickeho i fyzickeho zdravı je pro nas vhodne relativne uzke rozmezı hodnot.Z techto duvodu je snaha prizpusobovat zivotnı prostredı tak, aby osvetlenı vyhovovalopotrebam lidskeho zraku. Nejcasteji se jedna o rozmist’ovanı oken do objektu a instalaciumeleho osvetlenı. Protoze presne hodnoty intenzity osvetlenı nenı trivialnı predem od-hadnout a upravy jiz instalovaneho osvetlovacıho systemu (oken, svetel) by mohly bytnakladne, byva soucastı stavebnıch projektu simulace intenzity osvetlenı, ktera ma za ukoloverit vhodnost navrzeneho osvetlovacıho systemu.

V pocıtacove grafice existuje rada prıstupu, ktere se zabyvajı vypoctem osvetlenı, z nichzvetsina se zameruje zejmena na realisticnost zobrazenı vysledneho snımku. Ucelem tetoprace je seznamit ctenare s vybranymi metodami a stanovit jejich pouzitelnost pro simulaciintenzity osvetlenı. V prakticke casti se pak prace zabyva simulacı intenzity osvetlenı scenymetodou mapovanı fotonu.

Implementovany algoritmus nahlızı na fotony jako na kvanta svetelneho toku, ktera sesırı scenou na zaklade optickych zakonu. Pozornost je venovana zejmena vhodne simulaciodrazu svetla na obecnem povrchu. Rozebırany jsou take moznosti generovanı fotonu zesvetelneho zdroje podle jeho smerove vyzarovacı charakteristiky.

6

Kapitola 2

Teoreticka analyza

V soucasne dobe existujı ruzne prıstupy pro vypocet intenzity osvetlenı. V pocıtacove graficese pouzıvajı ruzne osvetlovacı prıstupy pro realisticke zobrazenı sceny. V nasledujıcı castijsou nejprve zevrubne popsany fyzikalnı veliciny souvisejıcı s intenzitou osvetlenı a nasledneprıstupy pouzıvane v pocıtacove grafice pro jeho vypocet a zobrazenı.

2.1 Uvod do fotometrie

Z fyzikalnıho pohledu je svetlo elektromagneticke zarenı a jako takove tedy prenası energii.Lze jej tedy charakterizovat energiı ci vykonem, ktery prochazı jednotkovou plochou. Veviditelne oblasti spektra je casto vhodne zkoumat svetlo z pohledu vjemu, ktery vyvolavav lidskem oku. Odpovıdajıcı veliciny a jejich jednotky se nazyvajı fotometricke.

2.1.1 Svetelne zdroje

Svetelne zdroje muzeme na zaklade jejich vlastnostı delit do ruznych trıd.

1. Podle velikosti

Bodove - Jejich velikost je zanedbatelna vuci vzdalenosti kontrolnıho bodu od zdroje.

Plosne - Jejich velikost nenı zanedbatelna, je treba brat v uvahu, ze svetlo vychazız cele plochy svetelneho zdroje.

2. Podle smeru vyzarovanı

Izotropnı - Vyzarujı rovnomerne do vsech smeru.

Anizotropnı - Charakteristika vyzarovanı se v ruznych smerech lisı.

3. Podle spektra

Monochromaticke - Vyzaruje svetlo pouze jedne vlnove delky.

Polychromaticke - Vyzaruje svetlo ruznych vlnovych delek, z nichz nektere mohoubyt vıce ci mene dominantnı.

7

Obrazek 2.1: Ukazka fotometrickeho diagramu svetelneho zdroje.

2.1.2 Svıtivost

Svıtivost [7] je zakladnı fotometricka velicina v soustave SI a vyjadruje schopnost bodovehozdroje vyvolat v danem bode zrakovy vjem. Charakterizuje pouze bodove zdroje svetla.Velicina se znacı jako I (velke i) a jejı jednotkou je kandela.

[I] = cd

U anizotropnıch zdroju je svıtivost zavisla na smeru. U techto zdroju znazornujeme rozlozenısvıtivosti pomocı fotometrickych diagramu 2.1.

2.1.3 Svetelny tok

Svetelny tok [7] vysılany bodovym zdrojem o svıtivosti I do prostoroveho uhlu dΩ v danemsmeru je definovan vztahem:

dΦ = I dΩ (2.1)

[Φ] = lm

Jednotkou svetelneho toku je lumen (lm). Je to svetelny tok vyzarovany do prostorovehouhlu jednoho steradianu bodovym zdrojem svetla, jehoz svıtivost do vsech smeru je jednakandela (cd). Energeticka velicina odpovıdajıcı svetelnemu toku Φ je zarivy tok Φe. Zarivytok udava mnozstvı energie nesene zarızenım v danem smeru za jednu sekundu. Udava tedyvykon zdroje v danem smeru a jeho jednotkou je watt (W ).

Podıl svetelneho toku Φ a odpovıdajıcıho zariveho toku Phie se nazyva svetelnouucinnostı zdroje K.

K =Φ

Φe(2.2)

[K] = lm ·W−1

K zavisı na vlnove delce a predstavuje krivku citlivosti oka na ruzna svetelna spektra.Proto je take K = 0 pro zarenı neviditelnych vlnovych delek.

8

Obrazek 2.2: Graficke znazornenı zobrazovacı rovnice.

2.1.4 Intenzita osvetlenı

Intenzita osvetlenı [7] nebo tez pouze osvetlenı E udava pomer svetelneho toku Φ dopa-dajıcıho rovnomerne na ozarovanou plochu o velikosti S. Jednotkou osvetlenı je lux (lx).

E =Φ

S(2.3)

[E] = lm ·m−2 = lx

Z vyse uvedenych vztahu lze dokazat, ze

E =I

r2cosα (2.4)

kde I je svıtivost bodoveho svetelneho zdroje, r vzdalenost osvetlene plochy od zdroje a αje uhel k normale plochy, pod kterym dopadajı svetelne paprsky. Ze vztahu je zrejme, zeintenzita osvetlenı klesa se ctvercem vzdalenosti a je tım slabsı, cım ,,sikmeji”dopadajıpaprsky na plochu.

2.2 Osvetlenı v pocıtacove grafice

Svetla a stıny hrajı vyznamnou roli v tom, jak clovek vnıma sve okolı. Menıcı se intenzitasvetla napomaha vnımanı tvaru a polohy teles. Spravne modelovanı osvetlenı v pocıtacovegrafice ma proto vyznamny vliv na realisticnost zobrazovane sceny. V soucasne dobe existujemnoho metod, ktere se vıce ci mene presne snazı o aproximaci zobrazovacı rovnice 2.2.1definovane v roce 1986 soucasne Davidem Immelem a Jamesem Kajiyou [4].

2.2.1 Zobrazovacı rovnice

Zobrazovacı rovnice 2.5 je integralnı rovnice, ktera definuje intenzitu svetla prenesenehoz jednoho bodu povrchu do druheho jako sumu vyzarovaneho svetla a celkove intenzitysvetla, ktera je do bodu x vyzarovana ze vsech okolnıch smeru 2.2. Rovnici muzeme zapsatnasledovne:

Lo(x,−→ω o) = Le(x,

−→ω o) +

∫Ωin

fr(x,−→ω i → −→ω o)Lo(y,−−→ω i) cos θidωi (2.5)

• Lo(x,−→ω o) je celkove mnozstvı svetla vychazejıcı z bodu x do smeru ωo.

9

• Le(x,−→ω o) je svetlo prımo vyzarovane z bodu x do smeru ω.

•∫

Ωin

... dωi je integral nad polokoulı prıchozıch smeru.

• fr(x,−→ω i → −→ω o) je dvousmerna odrazova distribucnı funkce (Bidirectional ReflectanceDistribution Function - BRDF), ktera udava mıru svetla odrazenou v bode x ze smeruωi do smeru ωo.

• Lo(y,−−→ω i) je svetlo prichazejıcı do bodu x z bodu y ve smeru ωi.

• cos θi je utlumenı svetla v zavislosti na uhlu dopadu.

Prakticky vsechny osvetlovacı modely, ktere se dnes v pocıtacove grafice pouzıvajı, sesnazı o vıce ci mene presnou aproximaci teto zobrazovacı rovnice. Dalo by se rıci, ze je-jich presnost je prımo umerna vypocetnı narocnosti a proto se v rychle (real-time) graficeuplatnujı metody, ktere zanedbavajı nebo odhadujı nekterou ze slozek zobrazovacı rovnice,naopak v realnem zobrazovanı se aplikujı metody, ktere jsou z nı prımo odvozeny.

Jak vyplyva ze zobrazovacı rovnice, osvetlenı bodu x - tedy svetlo jım vyzarovane, zavisına mnozstvı svetla vyzarovaneho jinymi body yi. Naopak osvetlenı techto bodu zavisı mimojine na mnozstvı svetla, ktere do nich prichazı z bodu x. Vsechny body se tedy mohouvzajemne ovlivnovat a proto pro spravny vypocet osvetlenı kterehokoliv bodu sceny jetreba znat osvetlenı vsech ostatnıch bodu. Vypocet osvetlenı cele sceny vsak muze bytvelmi narocny a proto se mnoho algoritmu snazı aproximovat osvetlenost pouze viditelnecasti sceny. Na zaklade toho delıme osvetlovacı modely na:

Lokalnı - Vypocet osvetlenı se snazı provadet pouze pro viditelnou cast sceny. Tyto metodypocıtajı osvetlenı pro kazdy snımek a jsou tedy vhodne i pro pohyblive zdroje svetla.Pouzıvajı se vetsinou v real-time pocıtacove grafice. Jejich nevyhodou je vetsinoumene verohodne zobrazenı, napr. problematicke zobrazenı mekkych stınu.

Globalnı - Vypocet osvetlenı je proveden pro celou scenu. Tyto metody mohou dosahnoutvelmi realistickeho zobrazenı, avsak jsou vetsinou velmi vypocetne narocne. Z tohotoduvodu se pouzıvajı v oblastech, kde je dulezity realny vzhled a cas vypoctu snımkunehraje takovou roli.

2.3 Paprskova optika

Tyto metody vychazejı z paprskove optiky a zobrazujı pomocı simulace prostupu paprskuscenou. Tımto zpusobem je mozne velmi dobre simulovat odrazy, pruhlednost i stıny. Jed-notlive metody vrhanı paprsku se lisı zejmena v tom, odkud a jak jsou paprsky do scenyvrhany. Sırenı paprsku scenou se rıdı vetsinou zakladnımi fyzikalnımi zakony.

2.3.1 Odraz na dokonale difuznım povrchu

Povrch difuznıch materialu nenı na rozdıl od tech lesklych dokonale rovny. Z mikrosko-pickeho hlediska se odraz paprsku od takoveho povrchu sice stale rıdı zakonem o odrazu,avsak vzhledem k mikroskopicke nerovnosti povrchu se z bezneho pohledu jevı odraz od di-fuznıch povrchu jako nahodny. Pri odrazu od difuznıho povrchu se proto nejcasteji paprsekodrazı do nahodneho smeru v hemisfere dane (makroskopickou) normalou povrchu.

10

Obrazek 2.3: Odraz na difuznım (nerovnem) povrchu.

Obrazek 2.4: Odraz na lesklem povrchu.

2.3.2 Odraz na dokonale lesklem povrchu

Povrch dokonale lesklych materialu povazujeme za absolutne rovny. Dıky tomu pro odrazenesvetlo platı zakon odrazu - tedy velikost uhlu odrazu je rovna velikosti uhlu dopadu a odrazenypaprsek zustava v rovine dopadu.

2.3.3 Lom na dokonale lesklem povrchu

Pri pruchodu paprsku z opticky ridsıho do opticky hustsıho prostredı se paprsek lamesmerem ke kolmici. Uhel lomu je definovan Snellovym zakonem 2.6 [7].

sin θ1

sin θ2=n2

n1(2.6)

Ne vsechna intenzita svetla se vsak lame do noveho prostredı. Intenzita odrazenehosvetla zavisı na uhlu dopadu a je mozne ji vypocıtat na zaklade Fresnelovych rovnic 2.7 [7].Pokud predpokladame, ze svetlo nenı polarizovano, lze vypocet zjednodusit vztahem 2.9.

Rs =n1 cos θ1 − n2 cos θ2

n1 cos θ1 + n2 cos θ2(2.7)

Rp =n1 cos θ2 − n2 cos θ1

n1 cos θ2 + n2 cos θ1(2.8)

R =(Rs +Rp)

2(2.9)

Sırı-li se paprsky z opticky hustsıho do opticky ridsıho prostredı (n1 > n2) je pri urcitemuhlu dopadu uhel lomu θ2 = 90. V takovem prıpade se θ1 = θm kde θm je meznı uhel.Pokud je θ1 > θm pak dochazı k tzv. totalnımu (uplnemu) odrazu, pri kterem do prostredı2 neprochazı zadne svetlo a veskera intenzita dopadajıcıho svetla se odrazı (R = 1).

11

Obrazek 2.5: Lom paprsku.

2.4 Dvousmerna odrazova distribucnı funkce (BRDF)

V predchozı casti 2.3 byly vysvetleny principy chovanı svetelneho paprsku na dokonalelesklych a dokonale matnych povrsıch. V realnem svete vsak takove materialy praktickyneexistujı a pri odrazu svetla se vzdy jedna o urcity stupen mezi dokonale lesklym a dokonaledifuznım odrazem. Matematicky popis svetla odrazeneho od obecneho povrchu vsak nenızdaleka tak jednoduchy jako u povrchu dokonale lesklych ci matnych.

Jak bylo ilustrovano na obrazku 2.3, matnost materialu je dana mikroskopickou ne-rovnostı jeho povrchu. Povrch kazdeho materialu si lze tedy predstavit jako mnozinu ele-mentarnıch plosek. Vetsina osvetlovacıch modelu, ktere majı za ucel co nejverneji simulovatrealne osvetlenı, se snazı tuto skladbu povrchu simulovat. Jednou z moznostı jak odrazenesvetlo popsat je rovnice 2.10 uvdena v [1].

I(λ) =F (λ, θ)

π

D(α)G(N,V,L)

(N · L)(N ·V)(2.10)

kde

• I(λ) je odrazena slozka svetla

• F (λ, θ) popisuje mıru odrazu svetla o vlnove delcd λ a s uhlem dopadu θ

• G(N,V,L) popisuje orientaci (normalu) elementarnı plosky

• D(α) udava rozdelenı pravdepodobnosti orientace elementarnıch plosek

• N je normala povrchu

• L je vektor smerujıcı z bodu plochy do svetelneho zdroje

• V je vektor smerujıcı z bodu plochy do kamery

Jako funkce F (λ, θ) se pouzıva Fresneluv zakon (2.9). Asi nejdulezitejsı slozkou rovniceje funkce D(α), ktera definuje rozdelenı orientacı elementarnıch plosek a tım urcuje hrubostmaterialu.

2.4.1 Rozlozenı pravdepodobnosti orientace elementarnıch plosek

Rozdelenı pravdepodobnosti orientace elementarnıch plosek rıka, jake mnozstvı je jich ori-entovano kolmo k danemu vektoru H. V praxi se pro popis rozdelenı pouzıvajı ruznefunkce, ktere se lisı presnostı reprezentace realneho materialu a vypocetnı slozitostı. K tem

12

Obrazek 2.6: Radiozita

presnejsım patrı naprıklad Beckmannova distribucnı funkce. Hrubost povrchu je rızena pa-rametrem m, ktery pro nizsı hodnoty (napr. 0,2) udava hladky povrch a pro hodnoty vyssı(napr. 0,8) povrch hruby (matny).

D(m,α) =1

m2 cos4(α)e[tan(α)/m]2 (2.11)

2.5 Rychle osvetlovacı metody

Jedna se vyhradne o lokalnı metody. Integralnı cast zobrazovacı rovnice je casto nahra-zovana konstantnım poctem smeru jako naprıklad u Lambertova osvetlovacıho modelu,kde jsou brany smery pouze od svetelnych zdroju (primarnı osvetlenı). Existujı modifikacenekterych pomalejsıch metod (jako je naprıklad radiozita), ktere vypocıtavajı osvetlenı azv prostoru platna (screen-space). Celkove vsak nelze tyto metody povazovat za dostatecnerealisticke pro presnou simulaci osvetlenı.

2.6 Radiozita

Radiozita [2] je metoda vypoctu globalnıho osvetlenı sceny. Jejı princip vychazı ze zakonao zachovanı energie a byla inspirovana vypoctem tepelneho vyzarovanı. Scena se delı naelementarnı plosky, pricemz intenzita osvetlenı (energie) kazde z nich je rovna souctuvyzarovane energie a integralu (sumy) energiı, ktere dopadajı na danou plosku z ostatnıchplosek sceny. V praxi se vypocet provadı iterativne. V prvnım iteracnım kroku se vypocıtamıra energie dopadajıcı na kazdou plosku ze svetelnych zdroju, v dalsıch krocıch se jizpocıta i s energiı, kterou vyzarujı vsechny osvetlene plosky.

B(x) = E(x) +R(x)

∫B(y)F (x, y)dy (2.12)

• B(x) je radiozita plosky x.

• E(x) je energie vyzarovana ploskou x

• R(x) je odrazivost plosky x

13

Obrazek 2.7: Ray casting

• F (x, y) je konfiguracnı vliv plosky x na plosku y. U plosek, ktere na sebe ,,nevidı”jeF (x, y) = 0, jinak se urcuje vetsinou vztahem 2.13.

F (x, y) =1

πr2cos θx cos θy (2.13)

• θx a θy jsou uhly, ktere svıra spojnice plosek x a y s ploskou x resp. s ploskou y.

Rovnice radiozity je na prvnı pohled velmi podobna zobrazovacı rovnici 2.5, avsak zcelazde chybı smerovy argument −→ωo. To znamena, ze radiozita plosky nenı zavisla na smerua je do vsech smeru stejna. Svetlo Lo(x,

−→ωo) vychazejıcı z bodu plosky x do smeru −→ωo jepak zavisle pouze na radiozite plosky x a uhlu θo mezi ploskou x a vektorem −→ωo. Nenı tedyzavisle na smerech svetla, ktere do plosky x prichazı.

Z vyse uvedenych faktu vyplyva, ze radiozita nesimuluje sırenı svetla v zavislosti nasmeru jeho sırenı a proto nenı schopna simulovat leskle povrchy a prusvitnost. Pro do-konale difuznı materialy vsak pri nekonecne malych elementarnıch ploskach konvergujev zobrazovacı rovnici 2.5.

2.7 Ray casting - vrhanı paprsku

Ray casting je nejjednodussı metoda vrhanı paprsku. Z pozice kamery jsou vrzeny pa-prsky tak, aby kazdym bodem platna prochazel jeden. Na platno je pak vykreslena barvanejblizsıho bodu, do ktereho prıslusny paprsek ,,narazı”. Barva bodu dopadu muze bytvypocıtana napr. Phongovym osvetlovacım modelem nebo muze byt pouzita hodnota globalnıhoosvetlenı ulozena ve scene.

2.8 Ray tracing - sledovanı paprsku

Jak je zrejme z nazvu, nejedna se uz o pouhe vrhanı paprsku k nejblizsımu prusecıku,ale jejich prubeh je sledovan. Stejne jako u ray castingu vychazı paprsky z pozice kamery,prochazı bodem platna a ,,narazı”do nejblizsıho objektu, ktery jim stojı v ceste. Zde vsaknastava zasadnı zmena oproti ray castingu. Z bodu dopadu paprsku P0 jsou vrzeny dalsıpaprsky:

Paprsky smerujıcı ke svetelnym zdrojum - Urcujı zda je bod osvıcen danym svetlem,nebo je ve stınu - paprsek nedorazı az do pozice svetla. Podle toho zda je/nenı bodosvıcen je upravena jeho barva.

14

Obrazek 2.8: Ray tracing

Odrazovy paprsek - Pokud nenı povrch modelovan jako 100% difuznı, je podle uhlu do-padu paprsku v bode P0 vypocıtan uhel odrazu a v jeho smeru je vrzen novy paprsek.Barva bodu PR, do ktereho odrazovy paprsek dopadne je pak podle mıry odrazi-vosti materialu primıchana do barvy bodu P0. Takto jsou dale rekurzivne odrazenyi odrazove paprsky, dokud mıra odrazove slozky nedosahne nızke (nastavene) hodnoty,nebo dokud nedojde k maximalnımu poctu odrazu. S odrazovymi paprsky samozrejmevyrazne narusta slozitost vypoctu a proto je treba vhodne nastavit meze tak, aby ne-dochazelo k prılis velkemu poctu odrazu.

Paprsek pruhlednosti - Jestlize je material v bode dopadu P0 alespon castecne pruhledny,je na zaklade zakona o lomu svetla vrzen novy paprsek. Jeho barva je pak smıchanas barvou bodu P0 podobne jako u odrazovych paprsku. Stejne tak platı, ze je trebazajistit, aby hloubka rekurze nebyla zbytecne velka.

Ray tracing je vhodny zejmena pro zobrazovanı lesklych a pruhlednych povrchu. Dokazezobrazit stıny, ktere jsou vsak tvrde a proto nevypadajı prılis realisticky. Problematicke jetake zobrazovanı difuznıch povrchu a texturovanı, kde muze dochazet k aliasingu. Tytonedostatky se snazı resit distribuovany ray tracing.

2.9 Distribuovany ray tracing

Distribuovany ray tracing se snazı vyresit nektere problemy, ktere vznikajı u bezneho sle-dovanı paprsku. Stejne jako v predchozıch metodach paprsky vychazejı z pozice kamery,avsak kazdym bodem platna neprochazı pouze jediny paprsek, ale vıce paprsku, ktereprochazı bodem platna v ruznych mıstech. Dale se pak sırı scenou stejne jako u beznehoray tracingu. Barva bodu platna je aproximovana z toho, co vratı jednotlive paprsky. Dıkytomu je mozne modelovat mekke stıny a zamezit aliasingu. Vzhledem k vyssımu poctu pa-prsku je vsak metoda vypocetne narocnejsı a stale nedokaze realisticky modelovat difuznıpovrchy.

15

Obrazek 2.9: Distribuovany ray tracing

Obrazek 2.10: Path tracing

2.10 Path tracing

Path tracing vychazı z prıme simulace sırenı svetla ze svetelneho zdroje do kamery. Provyssı efektivitu jsou nicmene paprsky vrhany v opacnem smeru - z kamery. Algoritmusnasledne sleduje prostup paprsku scenou, dokud ,,nenarazı”do svetelneho zdroje nebo ne-dojde k dosazenı maximalnıho poctu odrazu. Podle cesty, kterou svetelny paprsek pro-jde scenou, je nasledne upravena barva prıslusneho bodu platna. Pro dosazenı kvalitnıchvysledku bez sumu je treba kazdym bodem platna vrhnout velky pocet paprsku, protozevelka cast z nich vubec nedosahne svetelneho zdroje. Pomocı nahodnych odrazu paprsku lzemodelovat i difuznı povrchy, vetsı mnozstvı paprsku take zabranuje aliasingu a umoznujespravne zobrazenı mekkych stınu. Jedna se o vypocetne velmi narocnou metodu, ktera vsakprımo aproximuje zobrazovacı rovnici a pri velkem mnozstvı vrzenych paprsku se blızı re-alistickemu zobrazenı. Z tohoto duvodu se pouzıva jako referencnı model pro porovnanıvysledku jinych osvetlovacıch modelu.

2.11 Mapovanı fotonu (Photon Mapping)

Jak jiz nazev napovıda, jde o simulaci a zaznam sırenı fotonu scenou, pricemz pro simulacisırenı fotonu se pouzıvajı stejne principy jako u paprskovych metod, ktere byly popsany

16

Obrazek 2.11: Mapovanı fotonu

v 2.3. Fotony jsou ze svetelnych zdroju nahodne vrhany do sceny, kde se nasledne sırı podlefyzikalnıch vlastnostı objektu, na ktere dopadajı. Pri kazdem dopadu fotonu na libovolnypovrch je jeho pozice a barva zaznamenana do fotonove mapy [3]. Pri zobrazovanı napr. raytracingem (2.8) se pak barva zobrazovaneho bodu urcı podle fotonu zaznamenanych v jehookolı.

Pokud bychom chteli photon mapping vztahnout na zobrazovacı rovnici, dalo by se rıci,ze:

• Bod x nenı nekonecne maly, ale jedna se o plosku (okolı bodu) o velikosti, ktera jevuci velikosti sceny zanedbatelna.

• Svetlo Lo(y,−−→ω i), ktere do bodu x dopada, je reprezentovano nahodnymi fotony vefotonove mape, ktere do okolı bodu x dopadly.

• Svetlo Lo(x,−→ω i), ktere z bodu x vychazı, je stejne jako v zobrazovacı rovnici vypocıtano

it’s not okayze sumy dopadajıcıho svetla (fotonu v okolı bodu x) a ze svetla, ktere jez bodu x vyzarovano (je-li v bode x svetelny zdroj).

2.11.1 Fotonova mapa

Vyhledavanı ve fotonove mape je kriticke pro rychlost i presnost vysledne aplikace. Protozefotony se nachazı vetsinou ve 3D prostoru, je vhodne pro jejich ulozenı pouzıt nejakoumetodu delenı prostoru. Nejcasteji se pro tento ucel pouzıvajı k-d stromy, ktere jsou urcenypro ukladanı N-dimenzionalnıch dat a umoznujı rychle vyhledavanı blızkych uzlu.

2.11.2 Zobrazenı vysledku

Samotny photon mapping se stara pouze o vypocet globalnıho osvetlenı a neprovadı tedyzobrazenı na platno. K samotnemu zobrazenı sceny je mozne vyuzıt vıce technik, v principuvsak vzdy dochazı k urcenı osvetlenı bodu na zaklade fotonu v jeho okolı.

Vrhanı paprsku

Je mozne pouzıt ray casting (2.7), ray tracing (2.8) prıpadne jejich modifikace (2.9) pricemzpri kazdem dopadu paprsku se barva pocıta z fotonu v okolı dopadu. Sledovanım paprsku

17

Obrazek 2.12: Ukazka vizualizace programu DIALux

v kombinaci s photon mappingem lze dosahnout velmi realistickeho zobrazenı vcetne simu-lace odrazu a lomu svetla. Vykreslovanı jednoho detailnıho snımku vsak muze trvat znacnedlouho (minuty i hodiny) a proto se zobrazenı vrhanım paprsku nehodı pro interaktivnızobrazenı vysledku osvetlenı.

Mapovanı na vrcholy trojuhelnıkove sıte

Jinou moznostı jak zobrazit vysledek mapovanı fotonu je prevedenı osvetlene geometrie natrojuhelnıkovou sıt’ a vypocet osvetlenı (barvy) pro kazdy vrchol (vertex) teto sıte. Barvatrojuhelnıku pak vznika interpolacı mezi vrcholy podobne jako u Gouraudova stınovanı.Vyhodou tohoto prıstupu je, ze po namapovanı barev na vrcholy lze menit polohu kamerybez nutnosti vyhledavanı ve fotonove mape. Graficky vysledek vsak nenı zdaleka tak kvalitnıjako pri pouzitı sledovanı paprsku.

2.12 Existujıcı aplikace pro vypocet intenzity osvetlenı

Prestoze aplikacı, ktere se zabyvajı vypoctem globalnıho osvetlenı, existuje neprebernemnozstvı, vetsina z nich se soustredı temer vyhradne na vizualnı stranku simulovanehoosvetlenı. Vyhodnocovanım exaktnıch hodnot se zabyvajı pouze specializovane programypro vypocet osvetlenı projektovanych budov, silnic, sportovnıch stadionu a jinych verejnychprostor, kde hraje kvalita osvetlenı vyznamnou roli. Tyto aplikace jsou vetsinou uzcesvazany s mıstnımi normami pro osvetlenı a zahrnujı take databazi dostupnych svıtidel.Patrı mezi ne naprıklad program DIALux Nemecke spolecnosti DIAL GmbH 1 nebo v Ceskupro tyto ucely pravdepodobne nejpouzıvanejsı program Wils vyvıjeny firmou ASTRA MSSoftware s.r.o 2.

1http://www.dial.de/DIAL/en/dialux.html2http://www.astrasw.cz/Software/Wilsvypocetumelehoosvetlenı.aspx

18

Obrazek 2.13: Izo diagram osvetlenı steny v programu Wils

2.12.1 Wils

Aplikace se zabyva vypoctem umeleho osvetlenı vnitrnıch i venkovnıch prostor v navaznostina aktualnı Ceske i Evropske normy. Mezi nejvetsı prednosti patrı pravdepodobne rozsahladatabaze charakteristik ruznych druhu svıtidel. Samotny vypocet osvetlenı sceny vsak nenıprılis obecny. Geometricke objekty mohou byt pouze z kvadrovych teles a celkove je principskladby sceny ponekud zjednodusen. Vyrobce uvadı, ze vypocet se provadı bodovou meto-dou. Podle dostupnych informacı se jedna o algoritmus obdobny vypoctu radiozity (2.6),tomu nasvedcuje take to, ze nenı mozne nastavit leskle materialy. Prestoze se z pohledusimulace svetla jedna o jednoduchou aplikaci, je v praxi pomerne hojne pouzıvana a jejıvysledky se s dostatecnou presnostı blızı realnym hodnotam.

19

Kapitola 3

Navrh a implementace

Cılem prace je na zaklade principu mapovanı fotonu implementovat vypocet exaktnıchhodnot intenzity osvetlenı. Vysledek by mel byt zobrazitelny jak realisticky tak i s podporouvizualizace vypoctenych hodnot. Stejne tak by melo byt mozne odecıtat hodnoty osvetlenıv presne definovanych bodech sceny.

Jelikoz je photon mapping dvoupruchodovou zobrazovacı metodou, lze aplikaci v zasaderozdelit na dva zakladnı stavebnı bloky, ktere provadejı:

• Mapovanı fotonu do sceny

• Zobrazenı vysledku

Mapovanı fotonu predstavuje samotnou simulaci sırenı svetla scenou, zobrazenı vysledkupouze poskytuje prıstup k hodnotam nasimulovanym sırenım fotonu. Obe komponenty sdılıurcita spolecna data, jako naprıklad graf sceny, ale jejich cinnost by mela byt vzajemnenezavisla a vysledek mapovanı fotonu do sceny by mel byt bez problemu zobrazitelnyruznymi metodami.

3.1 Objektovy navrh

Struktura aplikace byla navrzena tak, aby bylo mozne jednotlive casti v budoucnu rozsırit cipreimplementovat. V navrhu jsou pouzity abstraktnı trıdy, ktere prakticky pouze definujırozhranı, napr. pro svetelny zdroj ci fotonovou mapu. Dıky tomu je mozne v budoucnudo aplikace pridat dalsı svetelne zdroje, nebo pouzıt jinou datovou strukturu pro ulozenıfotonove mapy.

Struktura jadra aplikace je znazornena diagramem trıd v obrazku 3.1. Hlavnı cast tvorıtrıda Experiment, ktera agreguje potrebna data a poskytuje metody pro rızenı vypoctu.

3.2 Pouzite knihovny a nastroje

Pro efektivnı beh photon mappingu je nezbytne pouzitı vhodnych datovych struktur a al-goritmu. Pro implmentaci byl zvolen jazyk C++, ktery poskytuje dostatecny vykon a proktery jsou dostupne cetne knihovny vhodne pro implementaci mapovanı fotonu. V nasledujıcıcasti budou strucne popsany jednotlive knihovny podle toho, kde jsou v aplikaci pouzity.

20

Obrazek 3.1: Diagram trıd - jadro aplikace

21

3.2.1 Graf sceny

Pro praci s grafem sceny je pouzita knihovna Open Scene Graph. Tato knihovna je primarneurcena pro manipulaci s grafem sceny a pro jeho zobrazenı pomocı OpenGL. Mimo jineumoznuje:

• Nacıtanı externıch modelu ze souboru

• Hierarchicke clenenı sceny (obalova telesa, k-d strom)

• Pomerne rychly vypocet prusecıku

• Zobrazenı polygonalnıch modelu

3.2.2 Fotonova mapa

Nejvhodnejsı strukturou pro ulozenı fotonove mapy je k-d strom. Existuje vıce knihovenpro C++, ktere implementujı funkcnost k-d stromu, napr. libkdtree++. Pro implementacibyla nakonec vybrana knihovna FLANN (Fast Linear Approximate Neares Neighbours),ktera je urcena pro vyhledavanı nejblizsıch n-rozmernych vektoru a je pouzita napr. v kni-hovne OpenCV. Pro vyhledavanı nejblizsıch sousedu poskytuje jak algoritmy vyuzıvajıcık-d strom, tak i rychle aproximacnı algoritmy. Na rozdıl od libkdtree++ umı vyhledavatjak vsechny sousedy ve fixnı vzdalenosti, tak i fixnı pocet nejblizsıch sousedu.

3.2.3 Generovanı nahodnych cısel

Presnost photon mappingu jako stochasticke metody je prımo zavisla na kvalite nahodnegenerovanych cısel. Z tohoto duvodu by nebylo zrejme zcela vhodne pouzıt pro jejich ge-nerovanı pouze vestavenou C++ funkci rand(). Pro generovanı nahodnych cısel je protovyuzita knihovna boost, ktera poskytuje nekolik sofistikovanych generatoru nahodnych cısel.Je mozne pouzıt take ruzna rozlozenı pravdepodobnosti.

3.2.4 Graficke uzivatelske prostredı

Demonstrativnı aplikace je vytvorena s pouzitım frameworku Qt. Z Qt je take pouzitaknihovna pro nacıtanı XML souboru definujıcıho scenu experimentu.

3.3 Graf sceny

Jak jiz bylo zmıneno drıve (3.2.1), pro reprezentaci sceny je vyuzita knihovna Open SceneGraph. Specialnı prvky sceny pro ucely photon mappingu jsou tedy odvozeny z jejıch trıdpro uzly grafu sceny. Struktury pouzite v grafu sceny jsou znazorneny diagramem trıdv obrazku 3.2.

3.3.1 Geometricke uzly

Jak jiz nazev napovıda, uzly tohoto typu predstavujı geometricke utvary ve scene. V aplikacijsou k tomuto ucelu vyuzity objekty trıdy osg::Geode, ktere jsou urcene pro zobrazovanıvykreslovatelnych dat trıdy osg::Drawable.

22

Obrazek 3.2: Diagram trıd - struktury pouzite v grafu sceny

23

3.3.2 Uzly pro photon mapping

Pri dopadu fotonu na povrch geometrickeho telesa, je tento foton zaznamenavan do fotonovemapy. Naopak pri naslednem zobrazovanı telesa je intenzita osvetlenı urcena z fotonu,ktere na dane teleso dopadly. Z toho vyplyva, ze jak pri sırenı fotonu, tak pri naslednemzobrazovanı sceny potrebujeme prıstup pouze k fotonum prıslusejıcım ke zpracovavanemugeometrickemu telesu. Proto ma kazda geometrie ve scene svou vlastnı fotonovou mapu.

Velikost lokalnı fotonove je vzdy mensı, nez by byla velikost mapy pro celou scenu.Z tohoto duvodu muze byt vyhledavanı v nı vyrazne efektivnejsı, protoze uz pouze urcenımgeometrie, se kterou se pracuje, vlastne vyuzıvame hierarchickeho clenenı. Urcenı aktualnıgeometrie naopak nepredstavuje zadnou praci navıc, protoze jak pri vypoctu prusecıku, takpri vykreslovanı mame k aktualnı geometrii prıstup.

Pouzitı lokalnıch fotonovych map muze navıc odstranit nektere nezadoucı jevy photonmappingu, jako je naprıkad presvetlovanı v mıste, kde jsou dve geometrie od sebe vzdalenymene, nez je polomer pro vyhledavanı nejblizsıch fotonu.

V aplikaci jsou uzly pro photon mapping implementovany jako trıda PhotonMapNode,ktera je potomkem trıdy osg::Group. Objekt trıdy PhotonMapNode agreguje tyto objekty:

• fotonova mapa pro geometrie uzlu

• seznam podrızenych uzlu - geometrie

• material, definujıcı vlastnosti povrchu vsech podrızenych geometriı

Trıda dale poskytuje metody pro praci s fotonovou mapou a s dalsımi svymi vlastnostmi.

3.3.3 Kontrolnı body

Mapovanı fotonu na geometricke uzly slouzı k vypoctu intenzity osvetlenı dopadajıcı naplochu geometrickeho telesa. Intenzitu osvetlenı sceny lze tedy stanovit pouze na povrchugeometrickych teles. Kontrolnı body jsou zavedeny pro urcenı intenzity osvetlenı v bodechsceny, kde se zadne teleso nenachazı a mohou slouzit napr. pro vypocet osvetlenı, ktere bypusobilo v danem bode na oci cloveka.

Protoze intenzitu osvetlenı lze stanovit pouze na urcite plose, je treba aby kontrolnı bodpredstavoval jakousi virtualnı elementarnı plosku. Pro intenzitu osvetlenı na teto plosce jestezejnı jejı orientace - normala. Kontrolnı body jsou v programu implementovany tak, zemohou byt orientovany sesti zpusoby:

• v kladnem smeru osy X - bod zachytava pouze svetelny tok dopadajıcı na nej z kladnehosmeru osy X

• v zapornem smeru osy X - bod zachytava pouze svetelny tok dopadajıcı na nej zezaporneho smeru osy X

• v kladnem smeru osy Y (obdobne jako u osy X)

• v zapornem smeru osy Y (obdobne jako u osy X)

• v kladnem smeru osy Z (obdobne jako u osy X)

• v zapornem smeru osy Z (obdobne jako u osy X)

24

V praxi je kontrolnı bod implementovan jako transparentnı kruh, ktery pro kazdypruchozı foton vytvarı zapis do fotonove mapy. Rozsah pruchozıch fotonu je rızen po-lomerem R, ve kterem kontrolnı bod fotony zachytava. Pri vypoctu osvetlenı je pak moznev mape fotony vyhledavat, pro polomer vyhledavanı r vsak musı platit r <= R.

V urcitych prıpadech by mohlo byt zadoucı mıt moznost orientovat elementarnı ploskukontrolnıho bodu libovolne, prıpadne prijımat svetelny tok ze vsech smeru a pocıtat takkulovou osvetlenost. Tyto typy kontrolnıch bodu mohou byt predmetem dalsıho rozsirovanıaplikace.

Funkcnost kontrolnıho bodu je implementovana ve trıde ControlPoint, ktera je potom-kem trıdy osg::Node a muze byt tedy navazana do grafu sceny. Poskytuje metodu pro urcenıprusecıku prochazejıcıho paprsku a metody pro praci s fotonovou mapou kontrolnıho bodu.

3.3.4 Kontrolnı mrızky

Pokud chceme zkoumat osvetlenı v nejakem rozsahlejsım prostoru, bylo by pracne defino-vat jednotlive kontrolnı body. Proto aplikace nabızı element sceny ControlGrid, ktera jepotomkem trıdy osg::Group a agreguje definovany pocet kontrolnıch bodu.

Kontrolnı mrızka je vzdy obdelnıkoveho tvaru a lezı v rovine kolme na nekterou z osa je mozne jı nastavit tyto parametry:

• pocet bodu NxM

• horizontalnı a vertikalnı vzdalenost mezi jednotlivymi body

• zachycovacı polomer vsech bodu

• zachycovacı smer vsech bodu

• pozice stredu mrızky

Pro kontrolnı mrızku platı, ze je vzdy kolma na zachycovacı smer jejıch bodu.

3.3.5 Pruchody scenou

Pro ruzne cinnosti aplikace je treba prochazet grafem sceny a zıskavat z nej informace,prıpadne jej modifikovat. Pro tyto ucely slouzı v aplikaci tzv. visitory. Jsou to trıdy odvozenez trıd osg::NodeVisitor nebo osgUtil::IntersectionVisitor, ktere jsou v knihovne Open SceneGraph urceny k prochazenı uzlu sceny, potazmo prımo k vypoctu prusecıku se scenou.Nektere z visitoru budou dale v textu popsany podrobneji, zde je strucny popis vsech,ktere se v aplikaci nachazı.

ApplyLightVisitor

ApplyLightVisitor vypocte intenzitu osvetlenı pro vrcholy polygonovych sıtı (osg::Geometry)v grafu sceny. Vrcholum take priradı odpovıdajıcı barvy.

ClearPhotonsVisitor

ClearPhotonsVisitor vyprazdnı zaznamy o fotonech (fotonovou mapu) u vsech uzlu s foto-novou mapou.

25

FindGeodesVisitor

FindGeodesVisitor v grafu sceny nalezne geody, aby mohly byt nasledne nahrazeny uzlys fotonovou mapu PhotonMapNode.

GetControlPointsVisitor

GetControlPointsVisitor slouzı pro nalezenı kontrolnıch bodu ve scene.

MaterialColorVisitor

MaterialColorVisitor aplikuje barvu materialu na vrcholy polygonove sıte.

MaxLightVisitor

MaxLightVisitor nalezne maximalnı hodnotu intenzity osvetlenı ve scene.

PhotonVisitor

PhotonVisitor nalezne prusecık fotonu se scenou a vratı prıslusny uzel s fotonovou mapou.Pouzıva se pri sırenı fotonu scenou.

RayVisitor

RayVisitorn nalezne prusecık paprsku se scenou. Pouzıva se pri ray tracingu.

3.4 Generovanı nahodnych smerovych vektoru

Nezbytnou soucastı photon mappingu je generovanı nahodnych smerovych vektoru, kterejsou potrebne pri vytvarenı fotonu ve svetelnych zdrojıch nebo pri difuznım odrazu. Rozlozenıpravdepodobnosti generovanych smeru nemusı byt vzdy rovnomerne a zalezı bud’ na vyzarovacıcharakteristice svetelneho zdroje, nebo na odrazove charakteristice materialu.

Vsechny generatory nahodnych smeru jsou potomky abstraktnı trıdy RandomDirecti-onGenerator, ktera definuje pouze jednu metodu Vector3 generate(), ktera slouzı pro vyge-nerovanı jednoho nahodneho normalizovaneho vektoru.

Zakladem generovanı nahodnych smerovych vektoru je generovanı s rovnomernym rozlozenımna povrchu jednotkove koule. Existuje nekolik prıstupu pro vytvarenı takovychto vektoru,z nichz kazdy ma sve vyhody a nevyhody.

3.4.1 S vyuzitım jednotkove krychle

Pri tomto prıstupu jsou vytvareny vektory, kde kazda souradnice je generovana s rov-nomernym rozlozenım od 0 do 1. Pokud se takto vygenerovany vektor nachazı uvnitr jed-notkove koule, je normalizovan a povazovan za vysledek. Pokud se uvnitr koule nenachazı,generovanı se opakuje. Tato metoda je sice velmi jednoducha avsak nenı prılis efektivnı anivhodna pro jine nez rovnomerne rozlozenı, proto ani nenı v aplikaci pouzita [6].

26

Obrazek 3.3: Nerovnomerne rozlozenı bodu na povrchu koule

Obrazek 3.4: Rovnomerne rozlozenı bodu na povrchu koule

3.4.2 S vyuzitım normalnıho rozlozenı pravdepodobnosti

Tohoto principu vyuzıva naprıklad generator v knihovne boost. Jednotlive souradnice jsouvygenerovany s normalnım rozlozenım pravdepodobnosti a vysledny vektor je normalizovan.Vıce informacı a matematicky dukaz metody je mozne najıt napr. v [5]. Vyhodou tetometody je mala vypocetnı narocnost, jednoducha implementace a moznost generovanı n-rozmernych vektoru.

V aplikaci je tato metoda pouzita pro generovanı vektoru s rovnomernym rozlozenımna jednotkove kouli. Implementovana je v trıde SphericalDirectionGenerator. Generator jepouzit pro jednoducha vsesmerova bodova svetla.

3.4.3 Pomocı sfericke soustavy souradnic

Sfericka soustava souradnice definuje kazdy bod v prostoru jako trojici (r, ϕ, θ) kde:

• r je vzdalenost bodu od pocatku souradnicove soustavy

• ϕ je uhel odklonu poloprımky mezi pocatkem a bodem od osy x

• θ je uhel odklonu poloprımky mezi pocatkem a bodem od osy z

Na prvnı pohled by se mohlo zdat, ze tedy stacı rovnomerne generovat nahodny uhel ϕ ∈[0, π] a uhel θ ∈ [0, 2π), rozmıstenı takto generovanych bodu by vsak nebylo rovnomerne -pravdepodobnost by se smerem k polum jednotkove koule zvysovala. Tento fakt je ilustrovanna obrazku 3.3. Z definice prostoroveho uhlu je mozne elementarnı plosku koule popsatvztahem 3.1, ktery je funkcı uhlu ϕ, coz zpusobuje nelinearnı rozlozenı generovanych boduna jednotkove kouli.

dΩ = sinϕdθdϕ (3.1)

27

Odvozenı rozlozenı pravdepodobnosti pro generovanı uhlu θ a ϕ je uvedeno napr. v [9].Vysledne vztahy pro generovanı nahodneho jednotkoveho vektoru v kartezskem souradnemsystemu jsou dany soustavou rovnic 3.3, kde u a v jsou nahodna cısla rovnomerne rozlozenav intervalu [0, 1]. Tento postup vede k rovnomernemu generovanı bodu na povrchu koulejako je ilustrovano na obrazku 3.4.

ϕ = 2π · u (3.2)

θ = arccos(2v − 1)

x =√

1− cos2 θ · cosϕ (3.3)

y =√

1− cos2 θ · sinϕz = cos θ

Vyhodou tohoto generatoru je moznost menit rozsah uhlu sferickych souradnic. Dıkytomu je mozne generovat nahodne smerove vektory napr. na povrchu jednotkove polo-koule nebo jineho vrchlıku. Dale je mozne menit rozlozenı pravdepodobnosti pro generovanıvelicin u a v a tım definovat ruznou hustotu pravdepodobnosti v ruznych smerech.

Metoda je v aplikaci pouzita ve trıde ConicalDirectionGenerator, ktera s rovnomernymrozlozenım pravdepodobnosti generuje body na povrchu vrchlıku jednotkove koule. Velikostvrchlıku je dana uhlem. Objekty teto trıdy jsou pouzity jak pro smerova svetla, tak prodokonale difuznı odrazy. Metoda je take pouzita ve trıde DefinedDirectionGenerator, kteraje blıze popsana v casti 3.4.5.

3.4.4 Interpolovane rozlozenı pravdepodobnosti

V nekterych prıpadech nenı mozne jednoduse popsat rozlozenı pravdepodobnosti nahodnegenerovane veliciny matematickou funkcı. Naprıklad vyzarovacı charakteristika svıtidel jecasto slozita. Pro potreby photon mappingu predstavuje vyzarovacı charakteristika funcirozlozenı pravdepodobnosti. Pokud ji tedy nenı mozne popsat jednoduse matematicky, jetreba ji aproximovat.

Trıda InterpolatedDistribution implementuje rozlozenı pravdepodobnosti, kde je rozlozenıpravdepodobnosti P (x) dano koeficienty predanymi v poli libovolne velikosti. Predpokladase, ze koeficienty jsou linearne rozmısteny v intervalu [0, 1] a predstavujı hodnotu pravdepodobnostnıfunkce v danem bode. Pro generovanı nahodnych cısel je treba znat distribucnı funkcidaneho rozdelenı. Ta se da vyjadrit znamym vztahem 3.4.

F (x) =∑t≤x

P (t) (3.4)

Pro zıskanı distribucnı funkce jsou do pole ulozeny jejı hodnoty pro kazdy koeficientrozlozenı pravdepodobnosti. Pri generovanı nahodneho cısla je rovnomerne generovanocıslo u z intervalu [0, 1] a nasledne je zjisten index i koeficientu ki pro ktery platı 3.5.Pokud je pocet koeficientu roven n a rozlozenı by melo generovat cısla z intervalu [0, 1],pak se vysledne nahodne cıslo x urcı vztahem 3.6. V takovem prıpade vsak bylo rozlozenıpravdepodobnosti diskretnı. Pro zajistenı spojiteho rozlozenı pravdepodobnosti je vyuzitalinearlnı interpolace, kde vysledna nahodna hodnota x je urcena vztahem 3.7. Cım vıce jekoeficientu definujıcıch pravdepodobnostnı funkci, tım ,,vyhlazenejsı”je aproximace.

28

F (ki−1) < u ≤ F (ki) (3.5)

x =i

n(3.6)

x =

i+u− F (xi−1)

F (xi)− F (xi−1)

n(3.7)

Pro zıskanı nahodne velicinyV aplikaci je toto rozlozenı pravdepodobnosti pouzito u svetel s definovanou vyzarovacı

charakteristikou. Generator smerovych vektoru s definovanou charakteristikou je blıze popsanv casti 3.4.5.

3.4.5 Generator smeru s definovanou charakteristikou

Vyzarovacı charakteristika nebo odrazova charakteristika materialu muze byt popsanavyzarovacım diagramem (resp. diagramem svıtivosti). Jedna se o funkci ve sferickych souradnicıch,ktera pro uhly ϕ a θ definuje intenzitu zarenı (svıtivost). Obecny vyzarovacı diagram lzepopsat napr. maticı o velikosti 360x360, kde jsou v radcıch ulozeny hodnoty zarenı provelikosti uhlu ϕ a ve sloupcıch hodnoty zarenı pro velikosti uhlu θ. Pro libovolny smer lzetedy urcit (interpolovat) hodnotu zarenı.

Z pohledu nahodnych cısel predstavuje vyzarovacı charakteristika funkci rozdelenı pravdepodobnosti.Jednotlive radky pak udavajı rozdelenı pravdepodobnosti uhlu ϕ a sloupce uhlu θ. Jak jizbylo popsano v sekci 3.4.3, je mozne generovat smerove vektory s definovanym rozlozenımpravdepodobnosti uhlu ϕ a θ sfericke souradnice vektoru. K vygenerovanı uhlu na zakladevyzazovacıho diagramu definovaneho maticı koeficientu, je pouzito interpolovane rozlozenıpravdepodobnosti popsane v casti 3.4.4.

Generator je implementovan ve trıde DefinedDirectionGenerator a jeho charakteristikuje mozne definovat maticı koeficientu prakticky libovolne velikosti.

3.5 Struktura fotonu

Foton ve photon mappingu by mel v sobe uchovavat zakladnı informace, kterymi jsou jeho:

• Pozice

• Smer sırenı

• Barva

Samozrejme s sebou muze nest i dalsı informace, jako je napr. pocet odrazu. Fotonyv implementovane aplikaci si uchovavajı navıc index lomu prostredı, ve kterem se prave sırı,aby bylo mozne rıdit jejich odrazy a lom. Fotony jsou v aplikaci reprezentovany objektytrıdy Photon.

Uchovanı pozice a smeru sırenı je pomerne jasne a je definovano souradnicı a smerovymvektorem. Naopak barva muze byt definovana ruznymi zpusoby a proto zde bude tatoproblematika popsana vıce.

29

3.5.1 Barva

Z fyzikalnıho hlediska je barva dana vlnovou delkou zarenı, nebo-li svetla. Realne svetelnezdroje vsak casto nevyzarujı pouze jedinou vlnovou delku (nejsou monochromaticke), aleurcite spektrum vlnovych delek. Svetelny zdroj generujıcı fotony, by tedy mel nastavovatjejich barvu na zaklade tohoto spektra. V zasade tak lze ucinit dvema zpusoby:

• generovanı nahodne vlnove delky na s rozlozenım pravdepodobnosti danym spektrem

• aproximace a ulozenı vyzarovaneho spektra do fotonu

Z pohledu fyzikalnı simulace a stochasticnosti photon mappingu se jevı jako vhodnejsıvarianta nahodne generovanı vlnove delky podle spektra daneho svetelneho zdroje. Je vsakzrejme, ze pro nasledne korektnı zobrazenı barvy osvetlenı, by bylo treba vetsıho poctufotonu, jejichz vlnova delka by se prumerovala. Takovy prıstup by mel smysl pokud bychomchteli co nejverneji simulovat vlnove vlastnosti svetla jako napr. lom ci difrakci.

Pro ucely zkoumanı intenzity svetla bohate postacı ulozenı vyzarovaneho spektra do fo-tonu. Hojne vyuzıvanou aproximacı v pocıtacove grafice je format RGB, ktery udava inten-zitu cervene, zelene a modre slozky svetla. V aplikaci jsou tedy vsechny barvy uchovavanyve formatu RGB. Tento format bohate postacuje k presnemu simulovanı intenzity svetlaa k verohodnemu zobrazenı barevne informace. Zaroven je pri generovanı fotonu, odrazecha skladanı barev prace s tımto formatem jednoducha a rychla.

3.5.2 Index lomu

Index lomu je fyzikalnı velicina popisujıcı sırenı svetla optickem prostredı. Jedna se o funkcivlnove delky, avsak protoze ucelem aplikace nenı dokonale presna simulace barevne infor-mace svetla, lze jej bez prılisne ztraty presnosti povazovat za konstantu danou optickouhustotou daneho materialu.

Pro ucely lomu a urcenı intenzity lomene a odrazene slozky svetelneho paprsku je trebaznat index lomu prostredı, ve kterem se paprsek sırı a prostredı, na ktere paprsek dopada(do ktereho vstupuje). Pokud bychom nebrali v uvahu pruhledna telesa, sıril by se vzdypaprsek v prostredı s indexem lomu vzduchu (ci jineho okolnıho prostredı) a dopadal by napovrch s indexem lomu daneho materialem povrchu. Pokud vsak scena obsahuje i pruhlednatelesa, muze se paprsek sırit i prostredım s jinym indexem lomu. Pro tyto ucely je u fotonuuchovavan index lomu aktualnıho prostredı, kterym se sırı.

3.6 Svetelne zdroje

Svetelny zdroj je dan zejmena svou vyzarovacı a spektralnı charakteristikou. Jak jiz bylopopsano u fotonu (3.5.1), jsou vsechna barevna spektra v aplikaci aproximovana modelemRGB, stejne tak je tomu i u svetelnych zdroju. Vyzarovacı smerova charakteristika pakmuze byt popsana bud’ samotnym typem svetla, nebo maticı definujıcı vyzarovacı charak-teristiku. Svetelne zdroje v aplikaci vyuzıvajı pro urcenı smerovych vektoru fotonu nahodnegeneratory popsane v casti 3.4.

Vsechna svetla v aplikaci jsou potomkem abstraktnı trıdy Light a musı poskytovatprıstup ke sve celkove svıtivosti. Dale pak musı implementovat metodu generatePhoton(),ktera generuje jeden foton. Vztahy mezi jednotlivymi trıdami svetelnych zdroju a ge-neratoru smerovych vektoru jsou znazorneny v diagramu trıd na obrazku 3.5.

30

Obrazek 3.5: Diagram trıd - svetelne zdroje a generatory smerovych vektoru

31

3.6.1 Vsesmerove svetlo

Tento bodovy svetelny zdroj vyzaruje svetelny tok rovnomerne do vsech smeru. Ke gene-rovanı fotonu je pouzit generator popsany v casti 3.4.2. Funkcnost svetla je implementovanav trıde SphericalLight.

3.6.2 Konicke svetlo

Jedna se o bodovy svetelny zdroj s kuzelovitou vyzarovacı charakteristikou, generuje fotonyrovnomerne do daneho prostoroveho uhlu. Parametrem je mozne nastavit vrcholovy uhel αvyzarovacıho kuzelu. Funkcnost je implementovana v trıde ConicalLight, ktera pro urcovanısmeru fotonu pouzıva generator popsany v casti 3.4.3.

3.6.3 Svetelny zdroj s definovanou charakteristikou

Generuje smery fotonu podle rozlozenı pravdepodobnosti daneho maticı koeficientu, jakbylo popsano v casti 3.4.5. Svetelny zdroj je implementovan v trıde DiagramLight.

3.6.4 Uchovanı svetel ve scene

Protoze by zakomponovanı svetel do grafu sceny nemelo zadny pozitivnı prınos, jsou svetlaagregovana v samostatnem seznamu svetel trıdy LightList. Jedna se o prosty seznam, kterypouze poskytuje funkci pro zıskanı celkoveho svetelneho toku vsech zdroju v lumenech. Tatohodnota je dulezita pro rızenı poctu generovanych fotonu a pro nasledne urcenı intenzityosvetlenı z okolnıch fotonu.

3.7 Materialy

Pro ucely simulace sırenı svetla je vhodne, aby material kazdeho telesa definoval zejmenatyto vlastnosti:

• barva

• opticka hustota

• lesklost/matnost

Dalsı dulezitou vlastnostı je mıra absorbce svetla. Ta uzce souvisı s barvou materialu,kdy barva odpovıda vlnovym delkam, ktere nejsou materialem pohlcovany - jsou odrazeny.Stejne tak je tomu i v implementovane aplikaci. Barva materialu zaroven definuje i mıruodrazu jednotlivych barevnych slozek.

Materialy jsou v programu reprezentovany trıdou Material. Ta mimo vyse zmınenevlastnosti obsahuje i metody pro vypocet smeroveho vektoru pro leskly odraz, difuznı odraza pro lomeny paprsek. Material tak v sobe obsahuje definici dvousmerne distribucnı funkceodrazu (BRDF, 2.2.1, 3.8.4) a pouzitım jine trıdy materialu by tak bylo mozne zmenitsimulaci odrazu v cele aplikaci.

Prestoze knihovna Open Scene Graph obsahuje trıdu osg::Material pro implementacivlastnostı materialu, nenı tato trıda pouzita, protoze nepocıta s ulozenım opticke hustotya naopak poskytuje jine funkce, ktere by nebyly pri simulaci pouzity.

32

3.8 Sırenı fotonu scenou

Propagace fotonu scenou a jejich zaznam do fotonovych map predstavuje vlastnı simulacisırenı svetla a prvnı ze dvou kroku pri zobrazova photon mappingem. K simulaci sırenıfotonu jsou pouzity struktury, ktere byly v teto kapitole popsany drıve. Pomyslny zivotfotonu ve scene je rızen objektem trıdy PhotonProcessor. Ta si uchovava ukazatel na grafsceny a na seznam svetelnych zdroju. Obsahuje take frontu fotonu urcenych ke zpracovanı.Poskytuje metodu pro zahajenı vypoctu a pro vlozenı noveho fotonu na konec fronty.

3.8.1 Generovanı

Prnım krokem pro sırenı fotonu scenou je jejich vygenerovanı, deje se tak ihned po zahajenıvypoctu. Podle nastavene hodnoty poctu fotonu na jednotku svetelneho toku (lumen) jekazdym svetelnym zdrojem vygenerovan dany pocet fotonu na konec fronty v procesorufotonu. Protoze pocet techto fotonu muze byt nemaly, jsou fotony simulovany postupnepro jednotlive svetelne zdroje. Nejprve jsou tedy vygenerovany a simulovany fotony proprvnı svetelny zdroj, nasledne pro druhy atd. Dıky tomu nenı narust pameti tak rapidnıpamet’ se alokuje postupne, zaroven tento prıstup nema zadny vliv na vysledek vypoctu.

3.8.2 Zpracovanı

Jakmile jsou fotony vygenerovany, jsou postupne odebırany z cela fronty a zpracovavany.Zpracovanı fotonu spocıva v nalezenı nejblizsıho prusecıku jeho trajektorie (poloprımky)s geometriı sceny. Nasledne je vyvolana interakce fotonu s prıslusnym uzlem sceny, kteryjej zaznamena do fotonove mapy a prıpadne do fronty PhotonProcessoru vygeneruje dalsıodrazene, lomene paprsky. Kazdy foton je po dokoncenı teto interakce odstranen z pameti.

3.8.3 Nalezenı prusecıku a prıslusneho uzlu sceny

Pro vypocet prusecıku trajektorie fotonu se scenou je v aplikaci implementovana trıdaPhotonVisitor, ktera je potomkem trıdy osgUtil::IntersectionVisitor. Vypocet prusecıkusceny a usecky je implementovan jiz v predkovi osgUtil::IntersectionVisitor vcetne praces obalovymi telesy a geometriemi v k-d stromech. Trıda PhotonVisitor pouze doplnujefunkcnost pro interakci s uzlem s fotonovou mapou (3.3.2) a s kontrolnım bodem (3.3.3).

3.8.4 Odraz a lom

Jak bylo zmıneno v teoreticke casti 2.4, v realnem svete prakticky neexistujı dokonaledifuznı nebo dokonale leskle povrchy. V aplikaci se tedy pri dopadu paprsku na povrchnahlızı na dany material jako na mnozinu elementarnıch plosek, jejichz orientace je danaBeckmannovou distribucnı funkcı 2.11. Ta udava pravdepodobnost, ze paprsek ze svetelnehozdroje L dopadne na plosku s takovou orientacı, ze je dokonale odrazen do pozice kameryV .

Pro ucely photon mappingu je treba tuto funkci prevest do tvaru, kdy budeme podledaneho rozdelenı pravdepodobnosti nahodne generovat orientaci elementarnı plosky, nakterou dopada paprsek fotonu. Postup nenı zcela trivialnı a je uveden napr. v [8]. Vysledkemje vztah 3.8 pro nahodne generovanı odchylky θ normaly elementarnı plosky m od normalydopadove plochy n.

33

θ = arctan√−α2 log(1− ξ1) (3.8)

φ = 2πξ2 (3.9)

kde

• θ je odchylka normaly elementarnı plosky od normaly dopadove plochy

• φ je nahodna rotace normaly elementarnı plosky kolem normaly dopadove plochy

• α je mıra drsnosti povrchu

• ξ1 a ξ2 jsou nahodna cısla generovana s rovnomernym rozdelenım pravdepodobnostiv intervalu [0; 1)

Jelikoz nynı zname normalu elementarnı plosky m, muzeme pomocı vztahu 3.10 a 3.11spocıtat smerove vektory odrazeneho a lomeneho paprsku or a ot.

or = 2(i ·m)m− i (3.10)

ot =

(n1

n2(i ·m)−

√1 +

n1

n2((i ·m)2 − 1)

)m− n1

n2i (3.11)

Bohuzel pro stanovenı distribucnı funkce odrazenych paprsku nestacı pouze rozdelenıpravdepodobnosti orientace elementarnıch plosek. Predstavme si, ze normala elementarnıplosky je orientovana tak, ze se od nı paprsek odrazı pod uroven povrchu geometrickehotelesa. V takovem prıpade by se mel paprsek opet odrazet od elementarnıch plosek takdlouho, dokud jeho smer nebude svırat s normalou povrchu telesa n uhel mensı, nez 90.Aby nebylo treba tyto odrazy prımo simulovat, lze pouzıt dvousmerovou maskovacı funkci.

Dvousmerova maskovacı funkce G(i,o,m)(BSDF - bidirectional shadowing-maskingfunction) popisuje jak velka cast elementarnı plosky s normalou m je viditelna jak ze smerudopadu paprsku i tak ze smeru odrazu paprsku o, pricemz platı, ze 0 ≤ G(i,o,m) ≤ 1.Zıskanı hodnoty teto funkce nenı opet zcela snadne. Vzhledem ke slozitosti je vhodne pouzıtaproximacnı postupy popsane v [8].

Dalsı vahu k pravdepodobnosti odrazu pridava u prusvitnych teles pomer mezi odrazenyma lomenym svetlem dany Fresnelovymi vzorci. Pro vypocet pomeru odrazene a lomeneslozky lze pouzıt prizpusobeny vzorec 3.14.

c = (i ·m) (3.12)

g =

√(n2

n1

)2

− 1 + c2 (3.13)

F (i,m) =1

2

(g − cg + c

)2(

1 +

(c(g + c)− 1

c(g − c) + 1

)2)

(3.14)

Vysledna vaha udavajıcı mıru preneseneho svetla do generovaneho smeru or prıpadneot se pak stanovı jako 3.15 prıpadne 3.16.

34

w(or) = F (i,m)(i ·m)G(i,o,m)

(i · n)(m · n)(3.15)

w(ot) = (1− F (i,m))(i ·m)G(i,o,m)

(i · n)(m · n)(3.16)

Nynı mame vygenerovany smery odrazeneho a lomeneho paprsku a mıru svetla w(or)a w(ot), ktere se ma tımto smerem sırit. Nastava vsak problem, jak v simulaci tuto vahuuplatnit. Pouhe vynasobenı intenzity fotonu danou vahou by porusilo zakon zachovanıenergie ve scene a proto nenı mozne jej pouzıt. Idealnım resenım by jiste bylo stanovenıinverznı funkce k w(or) a w(ot) a generovanı nahodnych smeru prımo s tımto rozdelenımpravdepodobnosti. Vzhledem ke slozitosti samotnych vahovacıch funkcı by to bylo vsakprılis komplikovane. Proto aplikace vyuzıva jiny, stochasticky prıstup. Pro kazdy odraz(lom) je vygenerovano podle Beckmannovy distribucnı funkce n odrazovych (lomovych)smerovych vektoru a nasledne je kazdemu z nich prirazena vaha funkcı w(or) prıpadnew(ot). Vystupnı vaha W (oi) vektoru i je pak stanovena jako podıl vahy prirazene funkcıw(or) nebo w(ot) a souctu vah vsech vygenerovanych smeru (3.17).

W (oi) =w(oi)n∑j=0

w(oj)

(3.17)

Tım je zarucen jednotkovy soucet vsech vah a tedy splnen zakon zachovanı energie.Intenzita kazdeho odrazeneho ci lomeneho fotonu je nasledne nasobena prıslusnou vahouW (oi) a tım je dodrzeno spravne rozdelenı pravdepodobnosti alespon pro danou davku.Z principu je zjevne, ze cım vıce novych fotonu bude generovano pri jednom odrazu/lomu,tım bude aproximace distribucnı funkce presnejsı.

Je zjevne, ze uvedene resenı odrazu je vyrazne vypocetne narocnejsı nez uvazovanıidealne lesklych a idealne difuznıch povrchu. Vypocet odrazu znatelne zpomaluje sırenıfotonu ve scene. V prıpade dalsıho vyvoje by bylo vhodne pokusit se tuto kritickou sekciprogramu optimalizovat.

3.9 Fotonova mapa

Datova struktura pro uchovanı mapy ma zasadnı vliv na rychlost behu cele aplikace. Foto-nova mapa by mela umoznovat rychle vyhledanı bodu (trojrozmernych vektoru) v okruhookolo jineho bodu, ale vzhledem k poctu fotonu by nemelo byt budovanı struktury prılis po-male. Asi nejvhodnejsı a hojne pouzıvanou strukturou pro uchovanı fotonu jsou k-d stromy.

Aplikace pocıta s moznostı vyuzitı ruznych fotonovych map, proto je vytvorena abs-traktnı trıda PhotonMap, ktera definuje rozhranı pro fotonovou mapu. Kazdy potomek musıimplementovat funkce pro vlozenı fotonu, vyhledanı fotonu v okruhu urciteho bodu a nale-zenı fixnıho poctu fotonu, ktere jsou nejblıze k danemu bodu. V aplikaci je pouzıvana foto-nova mapa trıdy PMFlann, ktera implementuje tyto funkce s vyuzitım knihovny FLANN(3.2.2). Mimo to byla testovana take fotonova mapa s vyuzitım knihovny libkdtree++.

3.10 Urcenı intenzity osvetlenı

Fyzikanlnı velicina intenzita osvetlenı je definovana vztahem 2.3, tedy jako podıl svetelnehotoku a velikosti plochy, na kterou dopada. Protoze svetelny tok, predstavuje mnozstvı svetla,

35

ktere je svetelnym zdrojem vyzazovano do urciteho prostoroveho uhlu, lze fotony sırene vescene povazovat za jednotky (kvanta) svetelneho toku. Svetelny tok, dopadajıcı na plochuo velikosti S lze tedy urcit jako sumu fotonu, ktere dopadly na plochu S. Pokud kvantumsvetelneho toku nesene fotonem i oznacıme Φi, lze vyjadrit svetelny tok dopadajıcı naplochu S vztahem 3.18, kde n je pocet fotonu zaznamenanych na plose S.

Φ =n∑i=0

Φi (3.18)

S = 4πr2 (3.19)

Svetelny tok, dopadajıcı na plosku se tedy urcı jako suma fotonu, ktere na danou ploskudopadly. Pro zıskanı intenzity osvetlenı je tedy treba jeste svetelny tok podelit velikostıpovrchu plosky. Bezne se ve photon mappingu pouzıva delenı povrchem koule (3.19), vektere byly fotony hledany. Pokud vsak chceme urcit presnou hodnotu intenzity osvetlenı,nenı tento prıstup prılis vhodny.

3.10.1 Vyhledanı mnoziny fotonu u paprskovych metod

Pri zobrazovanı sceny osvetlene photon mappingem paprskovou metodou (napr. ray tracin-gem) se osvetlenı v bode dopadu paprsku stanovuje na zaklade fotonu umıstenych v okolıdopadu. K nalezenı vhodne mnoziny okolnıch fotonu je mozne pouzıt v zasade dva prıstupy:

• nalezenı geometricky blızkych fotonu

• nalezenı N nejblizsıch fotonu

Jako geometricky blızke fotony lze chapat napr. ty, ktere lezı v urcitem okruhu od mısta do-padu, tedy lezı uvnitr koule se stredem v bode dopadu P a polomerem r. Stanovenı vhodnehodnoty polomeru r vsak muze byt nekdy slozitym ukolem. Vysoka hodnota polomeruprılis vyhlazuje vysledne osvetlenı, tım zanedbava detaily a zvysuje pocet testovanych fo-tonu, coz zpomaluje chod aplikace. Naopak pri male velikosti polomeru r dochazı vlivemstochasticnosti metody k sumu a k typickemu ,,mramorovanı”velkych ploch.

3.10.2 Stanovenı velikosti povrchu dopadove elementarnı plosky

Vhodnou hodnotu polomeru r je mozne urcit napr. na zaklade celkoveho poctu zazname-nanych fotonu a velikosti sceny. Jednou z moznostı je take dynamicka zmena polomeru nazaklade rozptylu mnoziny N nejblizsıch fotonu v okolı bodu dopadu, polomer r je pak rovenpolomeru obalove jejich obalove koule. Je mozne take obe metody kombinovat v zavislostina hustote fotonu v danem mıste.

Predpokladejme, ze fotony pro urcenı intenzity osvetlenı v bode P byly nalezeny testemprıslusnosti do koule se stredem v bode P a polomerem r. Pokud by vsechny dane fotonybyly zaznamenany na stejne rovinne plose, je zrejme, ze velikost plochy, na kterou dopadly,je rovna obsahu kruhu o polomeru r (3.20) a je tedy 4x mensı nez povrch odpovıdajıcıkoule.

S = πr2 (3.20)

Pokud bychom predpokladali, ze polomer vyhledavacı koule je vzhledem k geometriidopadove plochy zanedbatelne maly, lze povazovat dopadovou plochu za rovinu a lze tedy

36

pro vypocet povrchu pouzıt obsah kruhu. Ke stejnemu vztahu dospejeme i za predpokladu,ze by povrch mel tvar kulove plochy o polomeru vetsım, nez je polomer vyhledavacı koule(rp > r). Tento fakt je dokazan v 3.21.

S = 2πrpv (3.21)

v =r2

2rp

S = 2πrpr2

2rp

S = πr2

Je zrejme, ze stanovenı velikosti povrchu jako obsah kruhu nenı pro ruzne tvary plochzcela presne. Presnejsı cısla by bylo mozne zıskat naprıklad rekonstrukcı povrchu ze souradnicnalezenych fotonu. Takovy prıstup by vsak znacne zkomplikoval a zpomalil proces vypoctuintenzity osvetlenı, ktery je kriticky pro casovou narocnost cele aplikace. Pouzitı kruznices polomerem vyhledavacı koule lze tedy povazovat za vhodny kompromis, ktery je vhodnepouzıt zejmena pri zobrazovanı paprskovymi metodami, kdy paprsek dopada do libovolnehobodu povrchu geometrie. Je vsak treba mıt na pameti, ze hodnoty osvetlenı v mıstech s prud-kou zmenou povrchu (napr. spicate vrcholy nebo ,,hrbolate”casti), mohou byt nepresne.

3.10.3 Vynesenı hodnot osvetlenı na polygonalnı sıt’

Pro ucely interaktivnıho zobrazenı sceny v OpenGL ci DirectX je vhodne nanest hodnotyosvetlenı na povrch zobrazovane trojuhelnıkove ci obecne polygonalnı sıte. V zasade lzehodnoty osvetlenı na polygonalnı sıt’ nanest dvema zpusoby:

• jako texturu, kde jsou hodnoty osvetlenı ulozeny v texelech

• ulozit hodnoty osvetlenı pro jednotlive vrcholy

Pouzitı textur vyzaduje jejich alokaci a nastavenı texturovacıch souradnic pro na kazdymodel sceny. To by bylo prılis narocne jak na implementaci tak na pamet’ovou slozitostprogramu. Naopak stanovenı hodnot pro jednotlive vrcholy nenı (vertexy) nepredstavujeslozity problem a pri dostatecne detailnosti sıte poskytuje dobre vysledky. Hodnoty osvetlenımezi vrcholy sıte jsou interpolovany podobne jako pri Gouraudove stınovanı.

3.10.4 Urcenı intenzity osvetlenı ve vrcholu trojuhelnıkove sıte

Pri urcovanı intenzity osvetlenı ve vrcholu trojuhelnıkove sıte lze vyuzıt stejneho principujako u paprskovych motod. Intenzitu osvetlenı lze tedy zıskat jako sumu fotonu, ktere senachazı uvnitr koule o polomeru r se stredem v bode vrcholu V a podelene plochou kruhuo polomeru r. Stejne jako v prıpade paprskovych metod je vsak i v tomto prıpade kritickevhodne stanovenı polomeru vyhledavacı koule. Krome vyse uvedenych postupu (3.10.1), lzeu trojuhelnıkove sıte pri urcovanı polomeru r vychazet take z geometrickych vlastostı sıte,zejmena pak z velikosti jejıch primitiv. Jednou z moznostı je napr. stanovenı polomeru rjako poloviny prumeru delek vsech hran, ktere z daneho vrcholu vychazejı.

Dalsı moznostı je prımo vyuzitı primitiv trojuhelnıkove sıte. Pro kazdy trojuhelnık sıtejsou testovany fotony zda lezı uvnitr tohoto trojuhelnıku. Nalezene fotony jsou nasledne

37

rozdeleny na tri skupiny, podle toho ke kteremu bodu trojuhelnıku jsou nejblıze. Naslednejsou podeleny obsahem plochy prıslusıcı danemu vrcholu a pricteny k jeho hodnote osvetlenı.Tımto zpusobem dojde ke zpracovanı vsech fotonu ve scene a je tedy maximalne vyuzitainformace, kterou predstavujı. Navıc se vyhlazenı intenzity osvetlenı dokonale prizpusobujedetailu trojuhelnıkove sıte v danem mıste a nemelo by tak dochazet k nadmernemu za-nedbavanı svetelnych detailu ani k sumu. Kvuli nutnosti testovat fotony na polohu v trojuhelnıkua vypoctu ploch jednotlivych segmentu trojuhelnıku je tato metoda vypocetne narocnejsınez vyhledavanı koulı, avsak lepe urcuje mnozinu fotonu, ktere jsou pouzity pro vypocetosvetlenı ve vrcholu sıte.

Hodnoty osvetlenı mapovane na vrcholy trojuhelnıkove sıte lze vyuzıt jak pri zobra-zovanı pomocı OpenGL, tak pri zobrazovanı paprskovou metodou, kdy mısto hledanı fotonuv mıste dopadu je osvetlenı stanoveno linearnı interpolacı mezi hodnotami ve vrcholech do-padoveho trojuhelnıku. Z tohoto pohledu by take mohlo byt zajımave prirazovanı fotonuk vrcholum sıte uz pri jejich sırenı scenou, kdy by vrcholy trojuhelnıkove sıte vlastne tvorilydelenı prostoru pro fotonovou mapu.

3.11 Zobrazenı vysledku

Po stanovenı intenzity osvetlenı v jednotlivych castech sceny, je treba tyto hodnoty vhodnezobrazit uzivateli. Uzivatel by mel mıt moznost nazorne videt jak zobrazenı sceny blızıcı seco nejvıce realite, tak i vhodnou vizualizaci namerenych fyzikalnıch hodnot.

3.11.1 Vizualizace fyzikalnıch hodnot

Vizualizace fyzikalnıch hodnot by mela uzivateli predevsım poskytovat moznost studovatnasimulovane hodnoty v ruznych castech sceny. Z tohoto duvodu je pro tento ucel vhodnemapovat intenzitu osvetlenı do vrcholu trojuhelnıkove sıte a nasledne tuto sıt’ zobrazit po-mocı OpenGL. Dıky tomu je mozne si scenu interaktivne prohlızet a odecıtat nasimulovanehodnoty.

Pri zkoumanı intenzity osvetlenı urcite plochy nas mohou zajımat ruzne veliciny. V apli-kaci se zkoumajı zejmena tyto:

• intenzita osvetlenı

• barva dopadajıcıho osvetlenı

Pro vizualizaci techto hodnot poskytuje aplikace nekolik zobrazovacıch rezimu, ktere budounynı popsany.

Intenzita jako stupne sedi

Intenzita osvetlenı se zobrazuje jako stupne sedi, kdy nulova intenzita ma odpovıda cernea maximalnı intenzita osvetlenı ve scene odpovıda bıle barve. Pred zobrazenım sceny jetedy nalezena maximalnı hodnota a podle nı jsou pred zobrazenım vsechny hodnoty nor-malizovany. Mapovanı intenzity osvetlenı na stupne sedi je linearnı, barva s intenzitou cerne0,5 tedy odpovıda polovine maximalnı namerene intenzity osvetlenı ve scene.

38

Obrazek 3.6: Vizualizace intenzity osvetlenı jako stupne sedi

Obrazek 3.7: Vizualizace intenzity osvetlenı barevnou skalou

39

Obrazek 3.8: Barevna skala pro vizualizaci intenzity

Obrazek 3.9: Zobrazenı svetla, dopadajıcıho na povrch

Intenzita jako barevna skala

Opet se jedna o zobrazenı intenzity osvetlenı. Pro vizualizaci vsak nejsou pouzity odstınysedi, ale barevna skala, kdy tmave modra barva odpovıda nejnizsım hodnotam osvetlenıa cervena barva znacı nejvyssı intenzitu osvetlenı ve scene.

Pro zobrazenı trojuhelnıkove sıte tımto zpusobem je v aplikaci pouzit fragment shaderintensityShader.fs, ktery pro kazdy pixel prevede vstupnı interpolovanou intenzitu osvetlenına prıslusnou hodnotu RGB. Tım je zajisteno, ze pokud by v jednom trojuhelnıku sousedilyvrcholy s intenzitou 0 a 1 (minimem a maximem), nebude vysledkem linearnı prechodz tmave modre na cervenou, ale barva se bude postupne menit podle definovane skaly odtmave modre, pres zelenou a zlutou k cervene. Pouzita skala je ilustrovana v obrazku 3.8.

Barva dopadajıcıho osvetlenı

Zobrazuje barvu svetla, ktere dopada na prıslusnou plochu. Nezobrazuje tedy barvu svetla,ktere mırı do kamery.

40

Obrazek 3.10: Zobrazenı svetla, smerujıcıho do kamery

Barva odrazeneho svetla

Zobrazuje barvu svetla, ktere je po dopadu na plochu odrazeno zpet do prostoru. V aplikacise jedna o soucin barvy materialu a barvy dopadajıcıho svetla. Jde vlastne o realistickoumetodu zobrazenı osvetlenı.

3.11.2 Realisticke zobrazenı

Pro ucely realistickeho zobrazenı sceny je v aplikaci implemetovany i tri zakladnı paprskovezobrazovacı metody:

• vrhanı paprsku (2.7)

• sledovanı paprsku (2.8)

• distribuovane sledovanı paprsku (2.9)

Pri urcovanı intenzity osvetlenı v mıste dopadu paprsku jsou pouzıvany hodnoty okolnıchfotonu. Je mozne zvolit polomer koule, ve ktere budou fotony hledany nebo fixnı pocetnejblizsıch fotonu, ktere budou brany v uvahu, jak bylo popsano v 3.10.1.

Paprskovymi metodami je mozne zobrazit jak realisticky pohled na scenu, tak i vizuali-zovat namerene hodnoty podobnymi zpusoby, jake byly popsany v casti 3.11.1 o vizualizacinamerenych hodnot. Vysledny obraz je normalizovan.

3.11.3 Hodnoty v kontrolnıch bodech

Dulezitou soucastı aplikace je moznost odectu konkretnıch hodnot v ruznych bodech sceny.K tomuto ucelu slouzı v aplikaci kontrolnı body popsane v sekci 3.3.3. Protoze si kazdy kon-trolnı bod uchovava vlastnı mapu fotonu, ktere proletly v jeho okolı o polomeru R, je mozne

41

intenzitu osvetlenı v jeho okolı stanovit z techto fotonu. Opet lze pouzıt bud’ N nejblizsıchfotonu v okolı kontrolnıho bodu, nebo pak vsechny fotony v okolı o polomeru r, pricemzby melo platit r <= R, protoze kontrolnı bod zaznamenava pouze fotony, prochazejıcı vevzdalenosti, ktera je mensı nebo rovna R.

Aplikace umoznuje vypsanı hodnot namerenych v kontrolnıch bodech do tabulky, pricemzpro kazdy bod zobrazuje celkovou intenzitu osvetlenı v bode a intenzitu jednotlivych ba-revnych slozek (RGB) v luxech (lx).

3.12 Vstupnı data

Protoze aplikace nedisponuje vlastnım editorem, je treba vstupnı data definovat v jinychprogramech. Vstupem programu je Experiment (3.12.1), ktery je definovan pomocı XMLa pro nacıtanı geometriı sceny pouzıva formaty podporovane knihovnou Open Scene Graph,pricemz k testovanı byly pouzity modely formatu Alias Wavefront (OBJ).

3.12.1 Definice experimentu

Experiment je zapouzdren v elementu <experiment> a obsahuje kompletnı popis sceny, prokterou se bude provadet vypocet osvetlenı. Obsahuje tedy tyto informace:

• vlastnosti pouzitych materialu

• charakteristiky svetelnych zdroju

• geometricke prvky sceny

• kontrolnı body a mrızky kontrolnıch bodu

Popis experimentu muze vypadat naprıklad takto:

<!DOCTYPE PhotonMapping>

<experiment>

<lights>

<conical_light position="0;0;1.49" direction="0;0;1" color="1;1;1"

intensity="800" angle="3.1416" />

</lights>

<materials>

<material name="white" color="0.5;0.5;0.5" diffuse="0.5" n="999"/>

</materials>

<scene>

<control_point name="point1" position="0;0;0" radius="2" />

<control_grid name="grid1" position="0;0;-0.75" radius="1"

plane="Z" countx="10" county="10" stepx="1" stepy="1" />

<geometry type="file" path="box10x10x3.obj"/>

</scene>

</experiment>

Vyznam jednotlivych znacek bude popsan v nasledujıcıch castech.

42

3.12.2 Definice svetelnych zdroju

Svetelne zdroje jsou v souboru s experimentem umısteny mezi znackami <lights>. Kazdytyp svetla ma svou vlastnı znacku a charakterizujıcı seznam atributu. Je mozno definovatnasledujıcı svetla.

Vsesmerove svetlo

Bodovy zdroj, vyzarujıcı rovnomerne do vsech smeru. Je mozne definovat jeho polohu,barvu a svetelny tok v lumenech.

<spherical_light position="0;0;1.49" color="1.0;0.0;0.5"

intensity="800" />

Konicke svetlo

Bodovy zdroj, s kuzelovitou vyzarovacı charakteristikou. Krome zakladnıch charakteris-tik jako u vsesmeroveho zdroje je treba definovat jeste smer orientace a vrcholovy uhelvyzarovacıho kuzelu. Naprıklad svetlo vyzarujıcı do polokoule muze byt definovano takto:

<conical_light position="0;0;1.49" direction="0;0;-1" color="1;1;1"

intensity="1200" angle="3.1416" />

Svetlo s definovanou charakteristikou

3.12.3 Definice materialu

Definice materialu musı predchazet definici prvku sceny, protoze pri nacıtanı geometriı jsouk nim materialy prirazovany a proto musı byt materialy jiz nacteny v seznamu materialu.Atributy materialu odpovıdajı vlastnostem popsanym v sekci 3.7. Materialy jsou umıstenymezi znackami <materials></materials>.

<materials>

<material name="white" color="0.5;0.5;0.5" diffuse="0.8" n="999"/>

<material name="red_glass" color="0.8;0.0;0.0" diffuse="0.1" n="1.42"/>

</materials>

3.12.4 Definice prvku sceny

Scena muze obsahovat geometrie, predstavujıcı telesa ve scene. Dale pak kontrolnı bodya kontrolnı mrızky pro odecıtanı namerenych hodnot.

Geometrie

Model sceny je nacıtan z externıho souboru (prıpadne i z vıce souboru) jako polygonova(trojuhelnıkova) sıt’. Ta muze byt vytvorena napr. v Blenderu, pricemz je vsak treba drzetse urcitych pravidel, nutnych ke zdarnemu pouzitı v aplikaci.

43

Vsechny objekty ve scene musı mıt prirazen pojmenovany material, na zaklade techtojmen se pak na geometrii aplikujı materialy definovane v XML souboru experimentu. Byloby samozrejme mozne pouzıt vlastnosti materialu definovane prımo v souboru s modelem,avsak knihovna Open Scene Graph pouzita pro nacıtanı modelu neuchovava napr. optickouhustotu materialu, ktera je dulezita pro simulaci sırenı svetla. Pro dostatecnou funkcnost bytedy bylo treba preimplementovat nektere casti knihovny a proto je radeji pouzito vlastnıpredefinovanı materialu.

Nacıtana polygonova sıt’ by mela byt take dostatecne detailnı. Je treba mıt na pameti, zepri vizualizaci namerenych hodnot se tyto mapujı do vrcholu sıte a mezi vrcholy je hodnotainterpolovana. Proto pokud chceme zobrazovat hodnoty osvetlenı s rozlisenım 1m, nemelaby se v polygonove sıti nachazet zadna hrana s delkou vetsı jak 1m. Aby model splnovaltyto pozadavky, je mozne ho v Blenderu upravit napr. funkcı subdivide.

<geometry type="file" path="box10x10x3.obj"/>

Kontrolnı body a mrızky

Scena muze obsahovat libovolny pocet kontrolnıch bodu a mrızek. Pri zadavanı je treba mıtna pameti, ze mnoho kontrolnıch bodu s velkym polomerem ,,odchytu”zpomaluje vypocet.Atributy odpovıdajı vlastnostem, ktere byly popsany v sekcıch 3.3.3 a 3.3.4.

<control_point name="point1" position="0;0;0" radius="2" />

<control_grid name="grid1" position="0;0;-0.75" radius="1" plane="Z"

countx="10" county="10" stepx="1" stepy="1" />

44

Kapitola 4

Vysledky a porovnanı

V predchozı kapitole byla popsana implementace aplikace pro vypocet intenzity osvetlenıs pouzitım metody mapovanı fotonu. Tato kapitola bude venovana zkoumanı vysledkuvypoctenych tımto programem. Vysledky budou porovnany s dosavadnım dostupnym soft-warem pro vypocet osvetlenı.

4.1 Porovnanı s analytickym vypoctem

Prvnım krokem pro analyzu vysledku je jejich validace, tedy overenı zda simulovane hodnotyodpovıdajı realite. Protoze cela simulace vychazı z numericke integrace, bylo by jiste moznedokazat spravnou funkcnost matematicky. Aby se ale zaroven overilo, ze v programu nenıalgoritmicka chyba, byly hodnoty namerene v trivialnı scene porovnany s vypocty pomocıfyzikalnıch vzorcu.

4.1.1 Definovanı jednoduche sceny

Pro overovacı vypocet budeme predpokladat mıstnost o pudorysu 6x4 metru a vysce 3m.Aby nedochazelo k odrazum, ktere by se slozite pocıtaly, budou vsechny steny dokonalecerne. Do stredu stropu bude umısten bodovy zdroj vyzarujıcı svetelny tok 100 lumenudo prostoroveho uhlu 2π ve smeru k podlaze. Pri simulaci do sceny umıstıme dve kon-trolnı mrızky o rozmeru 6x4 bodu do urovne 75cm nad podlahou. Pro overenı pak po-mocı fyzikalnıch vzorcu vypocteme intenzitu osvetlenı ve bodech teto mrızky. Budemeuvazovat, ze stred mıstnosti lezı v pocatku souradne soustavy, svetelny zdroj tedy lezıv bode PL(0; 0; 1, 5).

4.1.2 Vypocet pomocı fyzikalnıch vzorcu

K vypoctu pouzijeme vzorec 2.4 pro vypocet intenzity osvetlenı bodovym zdrojem. Protozemame definovan svetelny tok a vyzarovacı uhel svetelneho zdroje Ω, vypocteme nejdrıvena zaklade vztahu 2.1 jeho svıtivost v tomto prostorovem uhlu.

45

Ω = 2π

Φ = 100 lm

I =Φ

Ω(4.1)

I =100 lm

2π= 15, 9155 cd (4.2)

Nasledne muzeme s pomocı vzorce 2.4 vypocıtat intenzitu osvetlenı v bodech sceny,ktere odpovıdajı bodum umıstenych kontrolnı mrızky. Sloupce tabulky predstavujı hodnotysouradnice x, radky pak hodnoty y.

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7170 1,2110 1,7219 1,7219 1,2110 0,7170-0,5 0,9108 1,7219 2,7296 2,7296 1,7219 0,91080,5 0,9108 1,7219 2,7296 2,7296 1,7219 0,91081,5 0,7170 1,2110 1,7219 1,7219 1,2110 0,7170

Tabulka 4.1: Referencnı hodnoty - vypoctene fyzikalnım vzorcem

4.1.3 Simulace

Je zrejme, ze vysledky simulace jsou silne ovlivneny poctem vrzenych fotonu a zpusobemhledanı nejblizsıch fotonu. Z tohoto duvodu byly hodnoty vypocteny pro ruzne konfiguracevyhledavanı. Protoze photon mapping pracuje s nahodnymi cısly, je zrejme, ze jednotlivevypocty se stejnymi parametry nebudou totozne. Proto bylo pro kazdou konfiguraci prove-deno pet merenı a zıskane vysledky byly zprumerovany. Jednotlive konfigurace jsou uvedenyv tabulce 4.2.

c. konf. poc. fotonu vyhledavanı polomer poc. nejblizsıch

1 10 000 fixnı polomer 1,0 m -2 100 000 fixnı polomer 0,5 m -3 100 000 fixnı polomer 0,2 m -4 10 000 fixnı pocet - 505 100 000 fixnı pocet - 506 100 000 fixnı pocet - 500

Tabulka 4.2: Konfigurace simulace pro porovnanı s vypoctem pomocı vzorce

Konfigurace 1

• pocet primarnıch fotonu: 10 000

• polomer vyhledavanı: 1,0 m

• pocet merenı: 5

46

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7308 1,2236 1,6673 1,6979 1,2401 0,7429-0,5 0,9167 1,6527 2,4796 2,5388 1,6845 0,93200,5 0,9212 1,6737 2,4688 2,5318 1,7526 0,93011,5 0,7417 1,2370 1,6890 1,6883 1,2580 0,7238

Tabulka 4.3: Konfigurace 1, aritmeticky prumer jednotlivych merenı

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,0139 0,0126 -0,0546 -0,0240 0,0291 0,0260-0,5 0,0059 -0,0692 -0,2500 -0,1908 -0,0374 0,02120,5 0,0104 -0,0482 -0,2608 -0,1978 0,0307 0,01931,5 0,0247 0,0260 -0,0329 -0,0336 0,0470 0,0069

Tabulka 4.4: Konfigurace 1, odchylky od referencnıch hodnot (Tab. 4.1)

Z tabulek 4.3 a 4.4 je patrne, ze dany vypocet se blızı referencnım hodnotam. Prumernarelativnı smerodatna odchylka mezi hodnotami z jednotlivych merenı cinı 4,9%, taktovysoka hodnota je zpusobena pravdepodobne malym poctem vrzenych fotonu. Vlivemvelkeho polomeru vyhledavanı jsou pri urcovanı osvetlenı vyhlazovany extremy a protodochazı k velkym odchylkam od referencnıch hodnot zejmena v bodech s nejvyssı intenzi-tou osvetlenı. Prumerna odchylka od referencnıch hodnot je 0,0614 lx, prumerna relativnıodchylka pak 3,2%.

Konfigurace 2

• pocet primarnıch fotonu: 100 000

• polomer vyhledavanı: 0,2 m

• pocet merenı: 5

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7094 1,2389 1,7721 1,7026 1,2195 0,7089-0,5 0,9073 1,7011 2,6959 2,6585 1,7179 0,91370,5 0,9045 1,7138 2,6221 2,6356 1,7128 0,91771,5 0,7352 1,2266 1,7046 1,7090 1,1854 0,7433

Tabulka 4.5: Konfigurace 2, aritmeticky prumer jednotlivych merenı

V tomto prıpade se vypocty jiz vıce blızı referencnım hodnotam. Oproti predchozımuprıpadu bylo do sceny vyslano 10x vıce fotonu a byl pouzit polovicnı vyhledavacı polomer.Prumerna relativnı smerodatna odchylka mezi jednotlivymi simulacemi zustala na prijatelnemıre 3,3%. Prumerna relativnı odchylka od referencnıch hodnot cinı pouze 1,5%, pricemzodchylku zpusobujı zejmena body s maximalnı intenzitou osvetlenı, kde pri simulaci dochazıvlivem fixnıho vyhledavacıho polomeru k nezadoucımu vyhlazenı s okolnımi (nizsımi) hod-notami.

47

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 -0,0075 0,0279 0,0502 -0,0193 0,0085 -0,0080-0,5 -0,0035 -0,0208 -0,0337 -0,0711 -0,0040 0,00290,5 -0,0063 -0,0081 -0,1075 -0,0940 -0,0091 0,00691,5 0,0182 0,0156 -0,0173 -0,0129 -0,0256 0,0264

Tabulka 4.6: Konfigurace 2, odchylky od referencnıch hodnot (Tab. 4.1)

Konfigurace 3

• pocet primarnıch fotonu: 100 000

• polomer vyhledavanı: 0,2 m

• pocet merenı: 5

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7194 1,2175 1,8207 1,8239 1,2319 0,8181-0,5 0,9788 1,7045 2,7263 2,7295 1,7380 0,96930,5 0,9151 1,6218 2,6483 2,7788 1,6536 0,92151,5 0,8244 1,1746 1,8016 1,8112 1,1873 0,8085

Tabulka 4.7: Konfigurace 3, aritmeticky prumer jednotlivych merenı

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,0024 0,0065 0,0988 0,1020 0,0209 0,1011-0,5 0,0680 -0,0173 -0,0033 -0,0001 0,0161 0,05840,5 0,0043 -0,1001 -0,0813 0,0493 -0,0683 0,01071,5 0,1075 -0,0364 0,0797 0,0893 -0,0237 0,0916

Tabulka 4.8: Konfigurace 3, odchylky od referencnıch hodnot (Tab. 4.1)

Mezi jednotlivymi merenımi s touto konfiguracı dochazelo ke znacnym rozdılum, kdyprumerna smerodatna odchylka cinila 11,4%. To bylo zpusobeno malym vyhledavacım po-lomerem, kdy je osvetlenı urcovano z mensıho poctu okolnıch fotonu a proto jsou hodnotyvıce nachylne na sum, zpusobeny stochasticnostı photon mappingu. Dıky mensımu vy-hledavacımu polomeru jiz vsak nedochazı k tak vyraznym odchylkam od referencnıch hod-not v bodech s maximalnı intenzitou osvetlenı - mensı vyhlazovanı. Prumerna odchylka odreferencnıch hodnot pro tuto konfiguraci cinı 0,0515 lx, coz predstavuje prumernou relativnıodchylku 4,3%.

Konfigurace 4

• pocet primarnıch fotonu: 10 000

• vyhledavanı nejblizsıch: 50 fotonu

• pocet merenı: 5

48

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,6788 1,2183 1,6981 1,7647 1,1799 0,7428-0,5 0,9482 1,6848 2,8194 2,8223 1,6507 0,86480,5 1,0056 1,6341 2,5830 3,1136 1,8598 1,04461,5 0,7501 1,2126 1,8237 1,7379 1,1458 0,6887

Tabulka 4.9: Konfigurace 4, aritmeticky prumer jednotlivych merenı

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 -0,0382 0,0073 -0,0238 0,0428 -0,0311 0,0259-0,5 0,0374 -0,0371 0,0898 0,0927 -0,0712 -0,04600,5 0,0948 -0,0878 -0,1466 0,3840 0,1379 0,13381,5 0,0332 0,0016 0,1018 0,0160 -0,0652 -0,0282

Tabulka 4.10: Konfigurace 4, odchylky od referencnıch hodnot (Tab. 4.1)

K vyhodnocenı osvetlenı byl pouzit pomerne nızky pocet nejblizsıch fotonu, kterychbylo pro kazdy bod pouze 50. Stejne tak pocet vrzenych fotonu je pomerne nızky. Z techtoduvodu je prumerna relativnı smerodatna odchylka mezi jednotlivymi merenımi opet vy-soka, cinı 15,5%. Po zprumerovanı hodnot z jednotlivych merenı (tab. 4.9) vsak nejsouodchylky od referencnıch hodnot (tab. 4.10) prılis vysoke. Prumerna odchylka cinı 0,0739lx, coz dava relativnı odchylku 4,9%. Na pomer parametru, ktere umoznujı rychly vypocet,jsou to uspokojive hodnoty.

Konfigurace 5

• pocet primarnıch fotonu: 100 000

• vyhledavanı nejblizsıch: 50 fotonu

• pocet merenı: 5

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7386 1,0967 1,8659 1,5210 1,2917 0,6971-0,5 0,8888 1,5708 2,6099 3,1255 1,6003 0,78090,5 0,8448 1,6232 2,7810 2,7890 1,8089 0,88861,5 0,7500 1,1218 1,7985 1,7593 1,1764 0,6958

Tabulka 4.11: Konfigurace 5, aritmeticky prumer jednotlivych merenı

U konfigurace 5 byl pro stanovenı osvetlenı pouzit stejny pocet okolnıch fotonu, jakou konfigurace 4, a to 50. Pocet vrzenych fotonu vsak byl 100 000, tedy 10x vyssı. Je zajımave,ze vyssı pocet fotonu ve scene nezajistil mensı smerodatnou odchylku mezi hodnotamiz jednotlivych merenı. Prumerna relativnı smerodatna odchylka byla dokonce vyssı nezu konfigurace 4, cinila 16,7%. Stejne tak odchylky od referencnıch hodnot jsou dokoncemırne horsı, prumerna relativnı odchylka cinı 5,9%.

Z merenı s konfiguracı 4 a 5 se tedy zda, ze zvysenı poctu vrzenych fotonu pri zachovanıpoctu nejblizsıch fotonu pro stanovenı osvetlenı nezarucuje lepsı vysledek (ba naopak). Propotvrzenı tohoto faktu by vsak bylo treba provest jeste dalsı podobna merenı.

49

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,0217 -0,1143 0,1440 -0,2009 0,0807 -0,0199-0,5 -0,0220 -0,1511 -0,1197 0,3960 -0,1216 -0,12990,5 -0,0661 -0,0987 0,0514 0,0594 0,0870 -0,02221,5 0,0331 -0,0892 0,0766 0,0374 -0,0346 -0,0211

Tabulka 4.12: Konfigurace 5, odchylky od referencnıch hodnot (Tab. 4.1)

Konfigurace 6

• pocet primarnıch fotonu: 100 000

• vyhledavanı nejblizsıch: 500 fotonu

• pocet merenı: 5

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,7201 1,2072 1,7413 1,7467 1,2287 0,7226-0,5 0,9165 1,7290 2,7824 2,7057 1,7403 0,91760,5 0,8836 1,6815 2,6834 2,8152 1,6831 0,92271,5 0,7491 1,2027 1,7532 1,6912 1,1920 0,7638

Tabulka 4.13: Konfigurace 6, aritmeticky prumer jednotlivych merenı

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,0031 -0,0038 0,0194 0,0248 0,0176 0,0056-0,5 0,0057 0,0071 0,0528 -0,0239 0,0184 0,00680,5 -0,0273 -0,0404 -0,0462 0,0856 -0,0387 0,01191,5 0,0321 -0,0083 0,0313 -0,0307 -0,0190 0,0468

Tabulka 4.14: Konfigurace 6, odchylky od referencnıch hodnot (Tab. 4.1)

V tomto prıpade byl do sceny vyslan stejny pocet fotonu jako u konfigurace 5, ale pri sta-novenı osvetlenı v bode bylo pouzito 500 nejblizsıch fotonu, tedy 10x vıce. Na prvnı pohledje patrne, ze vysledky jsou vyrazne lepsı jak u predchozıho prıpadu. Prumerna smerodatnaodchylka mezi jednotlivymi vypocty cinı 5,4%. Prumery simulovanych hodnot (tab. 4.13)se vyrazne nelisı (tab. 4.14) od referencnıch hodnot (4.1). Prumerna odchylka je 0,0253 lx,tedy 1,7%. Na rozdıl od vyhledavanı s velkym fixnım polomerem, jsou v tomto prıpadehodnoty uspokojujıcı i v bodech s maximalnı intenzitou osvetlenı. V techto maximech jehustota fotonu vyssı, proto je obalova koule 500 nejblizsıch fotonu mensı a nedochazı takk nezadoucımu vyhlazovanı.

4.1.4 Zhodnocenı

Prestoze se pri nekterych konfiguracıch simulovane hodnoty pomerne vyrazne odchylujı odanalyticky spoctenych hodnot, je z vysledku merenı patrne (tab. 4.15), ze pri dostatecnempoctu vrzenych fotonu a vhodne zvolenych parametrech vyhledavanı, se simulovane hodnotyblızı hodnotam analytickeho vypoctu. Implementovany photon mapping lze tedy povazovatza pouzitelny pro vypocet intenzity osvetlenı.

50

c. konf. N r [m] n v [%] d% [%]

1 10 000 1,0 - 4,9 3,22 100 000 0,5 - 3,3 1,53 100 000 0,2 - 11,4 4,34 10 000 - 50 15,5 4,95 100 000 - 50 16,7 5,96 100 000 - 500 5,4 1,7

N pocet fotonu vrzenych svetelnym zdrojem do sceny

r polomer vyhledavanı fotonu pro stanovenı intenzity osvetlenı

n pocet nejblizsıch fotonu pro stanovenı intenzity osvetlenı

v variacnı koeficient (prumerna relativnı smerodatna odchylka) mezi hodnotami z jednotlivych merenı

d% prumerna relativnı odchylka od referencnıch hodnot

Tabulka 4.15: Vysledky porovnanı s vypoctem pomocı fyzikalnıho vzorce

Z provedenych simulacı vyplyva, ze pro dosazenı presnych vysledku je treba vetsı pocetvrzenych fotonu spolecne s vhodnou volbou vyhledavacıch parametru. I kdyz statistickylepsıch vysledku bylo dosazeno metodou s fixnım vyhledavacı polomerem, je treba mıtna pameti, ze u teto metody dochazı k vyhlazovanı (snizovanı) intenzity osvetlenı v jejıchlokalnıch maximech. Z tohoto pohledu se jevı jako presnejsı pouzitı fixnıho poctu nejblizsıchfotonu v okolı daneho bodu.

Je zrejme, ze pro vypocet primarnıho (neodrazeneho) osvetlenı takto jednoduche scenyje photon mapping nevhodny, protoze je vypocetne narocnejsı a dava mene presne vysledky,nez analyticky vypocet. Tato jednoducha scena vsak dobre poslouzila k overenı zakladnıfunkcnosti implementovaneho algoritmu, vyhoda photon mappingu by vsak mela nastavataz u komplikovanejsıch scen s pouzitım ruznych odrazovych materialu, kdy je analytickyvypocet prakticky nemozny.

4.2 Porovnanı s programem Wils

Pro testovanı funkcnosti implementovane aplikace byl pouzit program Wils (2.12.1). Abybylo mozne provadet v obou programech vypocty ekvivalentnıch scen, byl do programuWils pridan svetelny zdroj s rovnomernym vyzarovanım do prostoroveho uhlu 2π.

4.2.1 Porovnanı sceny: mıstnost s difuznımi stenami

Nejprve byl testovan vypocet na prazdne mıstnosti o rozmerech 6x4x3 m s bılymi difuznımistenami s odraznostı 50%. Do stredu stropu mıstnosti byl umısten jeden svetelny zdrojs vyzarovacım prostorovym uhlem 2π. Sledovany byly hodnoty v mrızce 6x4 bodu, kterabyla umıstena 75cm nad urovnı podlahy. U photon mappingu byly opet pouzity prumernehodnoty z peti simulacı se stejnymi parametry. Tento postup byl zvolen, aby mohla bytstanovena smerodatna odchylka vysledku photon mappingu. Referencnı hodnoty urceneprogramem Wils jsou uvedeny v tabulce 4.16. Symetricnost hodnot dokazuje, ze vypocetneobsahuje zadny nahodny cinitel.

Photon mapping byl proveden s nasledujıcımi parametry:

• pocet vrzenych fotonu: 100 000

51

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 1,32 1,86 2,40 2,40 1,86 1,32-0,5 1,55 2,30 3,30 3,30 2,30 1,550,5 1,55 2,30 3,30 3,30 2,30 1,551,5 1,32 1,86 2,40 2,40 1,86 1,32

Tabulka 4.16: Hodnoty spoctene programem Wils

• vyhledavacı polomer: 0,2m

• pocet merenı: 5

Prumerna relativnı smerodatna odchylka photon mappingu cinila 5,3%. To poukazuje nato, ze mohl byt pouzit vyssı pocet fotonu, nebo vetsı vyhledavacı polomer. Namerene hod-noty jsou uvedeny v tabulce 4.18. Prumerna relativnı odchylka od dat stanovenych Wilsemcinila 3,4%, coz lze pri pouzitych parametrech mapovanı fotonu povazovat za prijatelnouhodnotu.

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 1,3771 1,8339 2,4564 2,3998 1,7342 1,4944-0,5 1,5266 2,2127 3,1904 3,1191 2,2545 1,46270,5 1,5298 2,2128 3,2435 3,1444 2,2260 1,58061,5 1,3803 1,8162 2,4087 2,3803 1,8140 1,3922

Tabulka 4.17: Hodnoty spoctene mapovanım fotonu

-2,5 -1,5 -0,5 0,5 1,5 2,5

-1,5 0,0571 -0,0261 0,0564 -0,0002 -0,1258 0,1744-0,5 -0,0234 -0,0873 -0,1096 -0,1809 -0,0455 -0,08730,5 -0,0202 -0,0872 -0,0565 -0,1556 -0,0740 0,03061,5 0,0603 -0,0438 0,0087 -0,0197 -0,0460 0,0722

Tabulka 4.18: Odchylky od hodnot Wilsu

4.3 Vyhodnocenı

Prestoze aplikace nedava zcela presne vysledky, podle provedenych testovanı lze rıct, zesimulovane hodnoty se blızı hodnotam vypoctu jinymi metodami. Implementovany algorit-mus lze povazovat za korektnı simulaci sırenı svetla, prestoze spoctena intenzita osvetlenı jezatızena chybou. Ta je vsak dana zejmena stochasticnostı metody, kdy se casto vyskytovalyvyrazne rozdıly mezi jednotlivymi simulacemi s totoznymi parametry.

Jako stezejnı pro dosazenı spravnych vysledku se ukazala vhodna volba parametru ma-povanı fotonu. V soucasnem stavu je treba parametry simulace nastavovat rucne, do bu-doucna by bylo vhodne, kdyby aplikace automaticky nabızela vhodne parametry. Vhodneby bylo take zavedenı iterativnıho vypoctu, ktery by se automaticky zastavil po dosazenıpozadovane presnosti.

Aplikace svym fyzikalnım modelem poskytuje dobry zaklad pro dalsı rozsirovanı a zo-becnovanı jejı funkcnosti.

52

Kapitola 5

Zaver

V praci byly strucne zdokumentovany zakladnı prıstupy k vypoctu osvetlenı v pocıtacovegrafice. Z vyvoje je patrne stale castejsı uplatnovanı stochastickych metod, ktere vyplyvaz faktu, ze obecna zobrazovacı rovnice nenı analyticky resitelna. Pro potreby fyzikalnı si-mulace svetla jsou pouzitelne zejmena metody vypoctu globalnıho osvetlenı.

Praktickym vystupem je zakladnı aplikace demonstrujıcı vypocet intenzity osvetlenımetodou mapovanı fotonu. Byly implementovany moznosti jak interaktivnıho, tak i realis-tickeho zobrazenı simulovanych hodnot. Dobrym zakladem pro dalsı rozsirovanı jsou trıdysmerovych generatoru, zejmena pak trıda pro svetelny zdroj s vyzarovacı charakteristikoudanou maticı koeficientu. Osvedcil se take zpusob rızenı lomenych a odrazenych paprsku,ktery je popsan na zaklade nahodne distribuovanych elementarnıch plosek.

Dıky napojenı na knihovnu Open Scene Graph lze do sceny importovat prakticky libo-volne polygonove geometrie. Je vsak otazkou, jestli je pouzita knihovna vhodna z pohledurychlosti vypoctu prusecıku. Rychlost behu aplikace vsak nebyla nijak testovana, protozeucelem bylo zejmena implementovat funkcnı algoritmus, ktery se bude dale zdokonalovat.

Pro dalsı vyvoj bude stezejnı zejmena dalsı testovanı a analyza funkcnosti a zdokona-lovanı rızenı simulace.

53

Literatura

[1] Glassner, A. S. (editor): An introduction to ray tracing. London, UK, UK: AcademicPress Ltd., 1989, ISBN 0-12-286160-4.

[2] Goral, C. M.; Torrance, K. E.; Greenberg, D. P.; aj.: Modeling the interaction of lightbetween diffuse surfaces. In Proceedings of the 11th annual conference on Computergraphics and interactive techniques, SIGGRAPH ’84, New York, NY, USA: ACM,1984, ISBN 0-89791-138-5, s. 213–222, doi:http://doi.acm.org/10.1145/800031.808601.URL http://doi.acm.org/10.1145/800031.808601

[3] Jensen, H. W.: Global Illumination using Photon Maps. In Rendering Techniques,editace X. Pueyo; P. Schroder, Springer, 1996, ISBN 3-211-82883-4, s. 21–30.

[4] Kajiya, J. T.: The rendering equation. In SIGGRAPH, editace D. C. Evans; R. J.Athay, ACM, 1986, ISBN 0-89791-196-2, s. 143–150.

[5] Poland, J.: Three Diferent Algorithms for Generating Uniformly Distributed RandomPoints on the N-Sphere. 2000.URL http://www-alg.ist.hokudai.ac.jp/~jan/randsphere.pdf

[6] Schretter, C.: Computing Random Points on Sphere. 2007.URL https://svn.boost.org/trac/boost/raw-attachment/ticket/1059/random_

on_sphere.pdf

[7] Schroder, G.: Technicka optika. SNTL, 1981.URL http://books.google.cz/books?id=CyZEGQAACAAJ

[8] Walter, B.; Marschner, S. R.; Li, H.; aj.: Microfacet Models for Refraction throughRough Surfaces. Glass, 2007: str. 195–206.URL http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.

983&rep=rep1&type=pdf

[9] Weisstein, E. W.: Sphere Point Picking. 2012.URL http://mathworld.wolfram.com/SpherePointPicking.html

54

Prıloha A

Obsah CD

/bin spustitelna verze aplikace/doc zdrojove soubory zpravy v LATEX/src zdrojovy kod aplikace/test zaznamy testovanych datdp.pdf elektronicka verze zpravyreadme.txt informace k obsahu CD

55


Recommended