FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Rozměr: px
Začít zobrazení ze stránky:

Download "FAKULTA INFORMAČNÍCH TECHNOLOGIÍ"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA ŘEŠENÍ INTENZITY OSVĚTLENÍ SCÉNY METODOU MAPOVÁNÍ FOTONŮ DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR Bc. LUKÁŠ HÜBNER BRNO 2012

2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA ŘEŠENÍ INTENZITY OSVĚTLENÍ SCÉNY METODOU MAPOVÁNÍ FOTONŮ SCENE ILLUMINATION BY PHOTON MAPPING METHOD DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. LUKÁŠ HÜBNER Doc. Ing. PŘEMYSL KRŠEK, Ph.D. BRNO 2012

3 Abstrakt Práce se zabývá výpočtem osvětlení scény. Na osvětlení scény je nahlíženo z pohledu fyzikální simulace intenzity osvětlení v návaznosti na metody používané v současné počítačové grafice. Praktickou částí je implementace výpočtu globálního osvětlení scény metodou mapování fotonů. Abstract This thesis deals with the estimation of global illumination of a scene. Global illumination is expressed as a physical simulation in connection with illumination methods used in current computer graphics. In the practical part there is expressed an implementation of global illumination estimation using photon maps. Klíčová slova mapování fotonů, globální osvětlení scény, fotometrie, intenzita osvětlení Keywords photon mapping, global illumination, photometry, illumination Citace Lukáš Hübner: Řešení intenzity osvětlení scény metodou Mapování fotonů, diplomová práce, Brno, FIT VUT v Brně, 2012

4 Řešení intenzity osvětlení scény metodou Mapování fotonů Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením pana Doc. Ing. Přemysla Krška, Ph.D Lukáš Hübner 23. května 2012 Poděkování Děkuji vedoucímu mé práce panu Doc. Ing. Přemyslu Krškovi, Ph.D. za cenné připomínky a za nasměrování mých kroků k úspěšnému dokončení této práce. c Lukáš Hübner, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.

5 Obsah 1 Úvod 6 2 Teoretická analýza Úvod do fotometrie Světelné zdroje Svítivost Světelný tok Intenzita osvětlení Osvětlení v počítačové grafice Zobrazovací rovnice Paprsková optika Odraz na dokonale difuzním povrchu Odraz na dokonale lesklém povrchu Lom na dokonale lesklém povrchu Dvousměrná odrazová distribuční funkce (BRDF) Rozložení pravděpodobnosti orientace elementárních plošek Rychlé osvětlovací metody Radiozita Ray casting - vrhání paprsků Ray tracing - sledování paprsků Distribuovaný ray tracing Path tracing Mapování fotonů (Photon Mapping) Fotonová mapa Zobrazení výsledků Existující aplikace pro výpočet intenzity osvětlení Wils Návrh a implementace Objektový návrh Použité knihovny a nástroje Graf scény Fotonová mapa Generování náhodných čísel Grafické uživatelské prostředí Graf scény Geometrické uzly Uzly pro photon mapping

6 3.3.3 Kontrolní body Kontrolní mřížky Průchody scénou Generování náhodných směrových vektorů S využitím jednotkové krychle S využitím normálního rozložení pravděpodobnosti Pomocí sférické soustavy souřadnic Interpolované rozložení pravděpodobnosti Generátor směrů s definovanou charakteristikou Struktura fotonu Barva Index lomu Světelné zdroje Všesměrové světlo Konické světlo Světelný zdroj s definovanou charakteristikou Uchování světel ve scéně Materiály Šíření fotonů scénou Generování Zpracování Nalezení průsečíku a příslušného uzlu scény Odraz a lom Fotonová mapa Určení intenzity osvětlení Vyhledání množiny fotonů u paprskových metod Stanovení velikosti povrchu dopadové elementární plošky Vynesení hodnot osvětlení na polygonální sít Určení intenzity osvětlení ve vrcholu trojúhelníkové sítě Zobrazení výsledků Vizualizace fyzikálních hodnot Realistické zobrazení Hodnoty v kontrolních bodech Vstupní data Definice experimentu Definice světelných zdrojů Definice materiálů Definice prvků scény Výsledky a porovnání Porovnání s analytickým výpočtem Definování jednoduché scény Výpočet pomocí fyzikálních vzorců Simulace Zhodnocení Porovnání s programem Wils Porovnání scény: místnost s difuzními stěnami Vyhodnocení

7 5 Závěr 53 A Obsah CD 55 3

8 Seznam obrázků 2.1 Ukázka fotometrického diagramu světelného zdroje Grafické znázornění zobrazovací rovnice Odraz na difuzním (nerovném) povrchu Odraz na lesklém povrchu Lom paprsku Radiozita Ray casting Ray tracing Distribuovaný ray tracing Path tracing Mapování fotonů Ukázka vizualizace programu DIALux Izo diagram osvětlení stěny v programu Wils Diagram tříd - jádro aplikace Diagram tříd - struktury použité v grafu scény Nerovnoměrné rozložení bodů na povrchu koule Rovnoměrné rozložení bodů na povrchu koule Diagram tříd - světelné zdroje a generátory směrových vektorů Vizualizace intenzity osvětlení jako stupně šedi Vizualizace intenzity osvětlení barevnou škálou Barevná škála pro vizualizaci intenzity Zobrazení světla, dopadajícího na povrch Zobrazení světla, směřujícího do kamery

9 Seznam tabulek 4.1 Referenční hodnoty - vypočtené fyzikálním vzorcem Konfigurace simulace pro porovnání s výpočtem pomocí vzorce Konfigurace 1, aritmetický průměr jednotlivých měření Konfigurace 1, odchylky od referenčních hodnot (Tab. 4.1) Konfigurace 2, aritmetický průměr jednotlivých měření Konfigurace 2, odchylky od referenčních hodnot (Tab. 4.1) Konfigurace 3, aritmetický průměr jednotlivých měření Konfigurace 3, odchylky od referenčních hodnot (Tab. 4.1) Konfigurace 4, aritmetický průměr jednotlivých měření Konfigurace 4, odchylky od referenčních hodnot (Tab. 4.1) Konfigurace 5, aritmetický průměr jednotlivých měření Konfigurace 5, odchylky od referenčních hodnot (Tab. 4.1) Konfigurace 6, aritmetický průměr jednotlivých měření Konfigurace 6, odchylky od referenčních hodnot (Tab. 4.1) Výsledky porovnání s výpočtem pomocí fyzikálního vzorce Hodnoty spočtené programem Wils Hodnoty spočtené mapováním fotonů Odchylky od hodnot Wilsu

10 Kapitola 1 Úvod Intenzita osvětlení je důležitou veličinou pro lidské vnímání, její hodnota se mění v závislosti na tvaru a struktuře objektů a umocňuje tak prostorové vidění. Lidský zrak se dokáže přizpůsobit poměrně širokému spektru hodnot intenzity osvětlení, avšak z hlediska pohodlí, psychického i fyzického zdraví je pro nás vhodné relativně úzké rozmezí hodnot. Z těchto důvodů je snaha přizpůsobovat životní prostředí tak, aby osvětlení vyhovovalo potřebám lidského zraku. Nejčastěji se jedná o rozmist ování oken do objektů a instalaci umělého osvětlení. Protože přesné hodnoty intenzity osvětlení není triviální předem odhadnout a úpravy již instalovaného osvětlovacího systému (oken, světel) by mohly být nákladné, bývá součástí stavebních projektů simulace intenzity osvětlení, která má za úkol ověřit vhodnost navrženého osvětlovacího systému. V počítačové grafice existuje řada přístupů, které se zabývají výpočtem osvětlení, z nichž většina se zaměřuje zejména na realističnost zobrazení výsledného snímku. Účelem této práce je seznámit čtenáře s vybranými metodami a stanovit jejich použitelnost pro simulaci intenzity osvětlení. V praktické části se pak práce zabývá simulací intenzity osvětlení scény metodou mapování fotonů. Implementovaný algoritmus nahlíží na fotony jako na kvanta světelného toku, která se šíří scénou na základě optických zákonů. Pozornost je věnována zejména vhodné simulaci odrazu světla na obecném povrchu. Rozebírány jsou také možnosti generování fotonů ze světelného zdroje podle jeho směrové vyzařovací charakteristiky. 6

11 Kapitola 2 Teoretická analýza V současné době existují různé přístupy pro výpočet intenzity osvětlení. V počítačové grafice se používají různé osvětlovací přístupy pro realistické zobrazení scény. V následující části jsou nejprve zevrubně popsány fyzikální veličiny související s intenzitou osvětlení a následně přístupy používané v počítačové grafice pro jeho výpočet a zobrazení. 2.1 Úvod do fotometrie Z fyzikálního pohledu je světlo elektromagnetické záření a jako takové tedy přenáší energii. Lze jej tedy charakterizovat energií či výkonem, který prochází jednotkovou plochou. Ve viditelné oblasti spektra je často vhodné zkoumat světlo z pohledu vjemu, který vyvolává v lidském oku. Odpovídající veličiny a jejich jednotky se nazývají fotometrické Světelné zdroje Světelné zdroje můžeme na základě jejich vlastností dělit do různých tříd. 1. Podle velikosti Bodové - Jejich velikost je zanedbatelná vůči vzdálenosti kontrolního bodu od zdroje. Plošné - Jejich velikost není zanedbatelná, je třeba brát v úvahu, že světlo vychází z celé plochy světelného zdroje. 2. Podle směru vyzařování Izotropní - Vyzařují rovnoměrně do všech směrů. Anizotropní - Charakteristika vyzařování se v různých směrech liší. 3. Podle spektra Monochromatické - Vyzařuje světlo pouze jedné vlnové délky. Polychromatické - Vyzařuje světlo různých vlnových délek, z nichž některé mohou být více či méně dominantní. 7

12 Obrázek 2.1: Ukázka fotometrického diagramu světelného zdroje Svítivost Svítivost [7] je základní fotometrická veličina v soustavě SI a vyjadřuje schopnost bodového zdroje vyvolat v daném bodě zrakový vjem. Charakterizuje pouze bodové zdroje světla. Veličina se značí jako I (velké i) a její jednotkou je kandela. [I] = cd U anizotropních zdrojů je svítivost závislá na směru. U těchto zdrojů znázorňujeme rozložení svítivosti pomocí fotometrických diagramů Světelný tok Světelný tok [7] vysílaný bodovým zdrojem o svítivosti I do prostorového úhlu dω v daném směru je definován vztahem: dφ = I dω (2.1) [Φ] = lm Jednotkou světelného toku je lumen (lm). Je to světelný tok vyzařovaný do prostorového úhlu jednoho steradiánu bodovým zdrojem světla, jehož svítivost do všech směrů je jedna kandela (cd). Energetická veličina odpovídající světelnému toku Φ je zářivý tok Φ e. Zářivý tok udává množství energie nesené zařízením v daném směru za jednu sekundu. Udává tedy výkon zdroje v daném směru a jeho jednotkou je watt (W ). Podíl světelného toku Φ a odpovídajícího zářivého toku P hi e se nazývá světelnou účinností zdroje K. K = Φ Φ e (2.2) [K] = lm W 1 K závisí na vlnové délce a představuje křivku citlivosti oka na různá světelná spektra. Proto je také K = 0 pro záření neviditelných vlnových délek. 8

13 2.1.4 Intenzita osvětlení Obrázek 2.2: Grafické znázornění zobrazovací rovnice. Intenzita osvětlení [7] nebo též pouze osvětlení E udává poměr světelného toku Φ dopadajícího rovnoměrně na ozařovanou plochu o velikosti S. Jednotkou osvětlení je lux (lx). E = Φ S (2.3) Z výše uvedených vztahů lze dokázat, že [E] = lm m 2 = lx E = I cos α (2.4) r2 kde I je svítivost bodového světelného zdroje, r vzdálenost osvětlené plochy od zdroje a α je úhel k normále plochy, pod kterým dopadají světelné paprsky. Ze vztahu je zřejmé, že intenzita osvětlení klesá se čtvercem vzdálenosti a je tím slabší, čím,,šikměji dopadají paprsky na plochu. 2.2 Osvětlení v počítačové grafice Světla a stíny hrají významnou roli v tom, jak člověk vnímá své okolí. Měnící se intenzita světla napomáhá vnímání tvarů a polohy těles. Správné modelování osvětlení v počítačové grafice má proto významný vliv na realističnost zobrazované scény. V současné době existuje mnoho metod, které se více či méně přesně snaží o aproximaci zobrazovací rovnice definované v roce 1986 současně Davidem Immelem a Jamesem Kajiyou [4] Zobrazovací rovnice Zobrazovací rovnice 2.5 je integrální rovnice, která definuje intenzitu světla přeneseného z jednoho bodu povrchu do druhého jako sumu vyzařovaného světla a celkové intenzity světla, která je do bodu x vyzařována ze všech okolních směrů 2.2. Rovnici můžeme zapsat následovně: L o (x, ω o ) = L e (x, ω o ) + f r (x, ω i ω o )L o (y, ω i ) cos θ i dω i (2.5) Ω in L o (x, ω o ) je celkové množství světla vycházející z bodu x do směru ω o. 9

14 L e (x, ω o ) je světlo přímo vyzařované z bodu x do směru ω.... dω i je integrál nad polokoulí příchozích směrů. Ω in f r (x, ω i ω o ) je dvousměrná odrazová distribuční funkce (Bidirectional Reflectance Distribution Function - BRDF), která udává míru světla odraženou v bodě x ze směru ω i do směru ω o. L o (y, ω i ) je světlo přicházející do bodu x z bodu y ve směru ω i. cos θ i je utlumení světla v závislosti na úhlu dopadu. Prakticky všechny osvětlovací modely, které se dnes v počítačové grafice používají, se snaží o více či méně přesnou aproximaci této zobrazovací rovnice. Dalo by se říci, že jejich přesnost je přímo úměrná výpočetní náročnosti a proto se v rychlé (real-time) grafice uplatňují metody, které zanedbávají nebo odhadují některou ze složek zobrazovací rovnice, naopak v reálném zobrazování se aplikují metody, které jsou z ní přímo odvozeny. Jak vyplývá ze zobrazovací rovnice, osvětlení bodu x - tedy světlo jím vyzařované, závisí na množství světla vyzařovaného jinými body y i. Naopak osvětlení těchto bodů závisí mimo jiné na množství světla, které do nich přichází z bodu x. Všechny body se tedy mohou vzájemně ovlivňovat a proto pro správný výpočet osvětlení kteréhokoliv bodu scény je třeba znát osvětlení všech ostatních bodů. Výpočet osvětlení celé scény však může být velmi náročný a proto se mnoho algoritmů snaží aproximovat osvětlenost pouze viditelné části scény. Na základě toho dělíme osvětlovací modely na: Lokální - Výpočet osvětlení se snaží provádět pouze pro viditelnou část scény. Tyto metody počítají osvětlení pro každý snímek a jsou tedy vhodné i pro pohyblivé zdroje světla. Používají se většinou v real-time počítačové grafice. Jejich nevýhodou je většinou méně věrohodné zobrazení, např. problematické zobrazení měkkých stínů. Globální - Výpočet osvětlení je proveden pro celou scénu. Tyto metody mohou dosáhnout velmi realistického zobrazení, avšak jsou většinou velmi výpočetně náročné. Z tohoto důvodu se používají v oblastech, kde je důležitý reálný vzhled a čas výpočtu snímku nehraje takovou roli. 2.3 Paprsková optika Tyto metody vycházejí z paprskové optiky a zobrazují pomocí simulace prostupu paprsků scénou. Tímto způsobem je možné velmi dobře simulovat odrazy, průhlednost i stíny. Jednotlivé metody vrhání paprsků se liší zejména v tom, odkud a jak jsou paprsky do scény vrhány. Šíření paprsků scénou se řídí většinou základními fyzikálními zákony Odraz na dokonale difuzním povrchu Povrch difuzních materiálů není na rozdíl od těch lesklých dokonale rovný. Z mikroskopického hlediska se odraz paprsku od takového povrchu sice stále řídí zákonem o odrazu, avšak vzhledem k mikroskopické nerovnosti povrchu se z běžného pohledu jeví odraz od difuzních povrchů jako náhodný. Při odrazu od difuzního povrchu se proto nejčastěji paprsek odráží do náhodného směru v hemisféře dané (makroskopickou) normálou povrchu. 10

15 Obrázek 2.3: Odraz na difuzním (nerovném) povrchu. Obrázek 2.4: Odraz na lesklém povrchu Odraz na dokonale lesklém povrchu Povrch dokonale lesklých materiálů považujeme za absolutně rovný. Díky tomu pro odražené světlo platí zákon odrazu - tedy velikost úhlu odrazu je rovna velikosti úhlu dopadu a odražený paprsek zůstává v rovině dopadu Lom na dokonale lesklém povrchu Při průchodu paprsku z opticky řidšího do opticky hustšího prostředí se paprsek láme směrem ke kolmici. Úhel lomu je definován Snellovým zákonem 2.6 [7]. sin θ 1 sin θ 2 = n 2 n 1 (2.6) Ne všechna intenzita světla se však láme do nového prostředí. Intenzita odraženého světla závisí na úhlu dopadu a je možné ji vypočítat na základě Fresnelových rovnic 2.7 [7]. Pokud předpokládáme, že světlo není polarizováno, lze výpočet zjednodušit vztahem 2.9. R s = n 1 cos θ 1 n 2 cos θ 2 n 1 cos θ 1 + n 2 cos θ 2 (2.7) R p = n 1 cos θ 2 n 2 cos θ 1 n 1 cos θ 2 + n 2 cos θ 1 (2.8) R = (R s + R p ) 2 (2.9) Šíří-li se paprsky z opticky hustšího do opticky řidšího prostředí (n 1 > n 2 ) je při určitém úhlu dopadu úhel lomu θ 2 = 90. V takovém případě se θ 1 = θ m kde θ m je mezní úhel. Pokud je θ 1 > θ m pak dochází k tzv. totálnímu (úplnému) odrazu, při kterém do prostředí 2 neprochází žádné světlo a veškerá intenzita dopadajícího světla se odráží (R = 1). 11

16 Obrázek 2.5: Lom paprsku. 2.4 Dvousměrná odrazová distribuční funkce (BRDF) V předchozí části 2.3 byly vysvětleny principy chování světelného paprsku na dokonale lesklých a dokonale matných površích. V reálném světě však takové materiály prakticky neexistují a při odrazu světla se vždy jedná o určitý stupeň mezi dokonale lesklým a dokonale difuzním odrazem. Matematický popis světla odraženého od obecného povrchu však není zdaleka tak jednoduchý jako u povrchů dokonale lesklých či matných. Jak bylo ilustrováno na obrázku 2.3, matnost materiálu je dána mikroskopickou nerovností jeho povrchu. Povrch každého materiálů si lze tedy představit jako množinu elementárních plošek. Většina osvětlovacích modelů, které mají za účel co nejvěrněji simulovat reálné osvětlení, se snaží tuto skladbu povrchu simulovat. Jednou z možností jak odražené světlo popsat je rovnice 2.10 uvdená v [1]. kde I(λ) = F (λ, θ) D(α)G(N, V, L) π (N L)(N V) (2.10) I(λ) je odražená složka světla F (λ, θ) popisuje míru odrazu světla o vlnové délcd λ a s úhlem dopadu θ G(N, V, L) popisuje orientaci (normálu) elementární plošky D(α) udává rozdělení pravděpodobnosti orientace elementárních plošek N je normála povrchu L je vektor směřující z bodu plochy do světelného zdroje V je vektor směřující z bodu plochy do kamery Jako funkce F (λ, θ) se používá Fresnelův zákon (2.9). Asi nejdůležitější složkou rovnice je funkce D(α), která definuje rozdělení orientací elementárních plošek a tím určuje hrubost materiálu Rozložení pravděpodobnosti orientace elementárních plošek Rozdělení pravděpodobnosti orientace elementárních plošek říká, jaké množství je jich orientováno kolmo k danému vektoru H. V praxi se pro popis rozdělení používají různé funkce, které se liší přesností reprezentace reálného materiálu a výpočetní složitostí. K těm 12

17 Obrázek 2.6: Radiozita přesnějším patří například Beckmannova distribuční funkce. Hrubost povrchu je řízena parametrem m, který pro nižší hodnoty (např. 0,2) udává hladký povrch a pro hodnoty vyšší (např. 0,8) povrch hrubý (matný). D(m, α) = 2.5 Rychlé osvětlovací metody 1 m 2 cos 4 (α) e[tan(α)/m]2 (2.11) Jedná se výhradně o lokální metody. Integrální část zobrazovací rovnice je často nahrazována konstantním počtem směrů jako například u Lambertova osvětlovacího modelu, kde jsou brány směry pouze od světelných zdrojů (primární osvětlení). Existují modifikace některých pomalejších metod (jako je například radiozita), které vypočítávají osvětlení až v prostoru plátna (screen-space). Celkově však nelze tyto metody považovat za dostatečně realistické pro přesnou simulaci osvětlení. 2.6 Radiozita Radiozita [2] je metoda výpočtu globálního osvětlení scény. Její princip vychází ze zákona o zachování energie a byla inspirována výpočtem tepelného vyzařování. Scéna se dělí na elementární plošky, přičemž intenzita osvětlení (energie) každé z nich je rovna součtu vyzařované energie a integrálu (sumy) energií, které dopadají na danou plošku z ostatních plošek scény. V praxi se výpočet provádí iterativně. V prvním iteračním kroku se vypočítá míra energie dopadající na každou plošku ze světelných zdrojů, v dalších krocích se již počítá i s energií, kterou vyzařují všechny osvětlené plošky. B(x) = E(x) + R(x) B(y)F (x, y)dy (2.12) B(x) je radiozita plošky x. E(x) je energie vyzařovaná ploškou x R(x) je odrazivost plošky x 13

18 Obrázek 2.7: Ray casting F (x, y) je konfigurační vliv plošky x na plošku y. U plošek, které na sebe,,nevidí je F (x, y) = 0, jinak se určuje většinou vztahem F (x, y) = 1 πr 2 cos θ x cos θ y (2.13) θ x a θ y jsou úhly, které svírá spojnice plošek x a y s ploškou x resp. s ploškou y. Rovnice radiozity je na první pohled velmi podobná zobrazovací rovnici 2.5, avšak zcela zde chybí směrový argument ω o. To znamená, že radiozita plošky není závislá na směru a je do všech směrů stejná. Světlo L o (x, ω o ) vycházející z bodu plošky x do směru ω o je pak závislé pouze na radiozitě plošky x a úhlu θ o mezi ploškou x a vektorem ω o. Není tedy závislé na směrech světla, které do plošky x přichází. Z výše uvedených faktů vyplývá, že radiozita nesimuluje šíření světla v závislosti na směru jeho šíření a proto není schopna simulovat lesklé povrchy a průsvitnost. Pro dokonale difuzní materiály však při nekonečně malých elementárních ploškách konverguje v zobrazovací rovnici Ray casting - vrhání paprsků Ray casting je nejjednodušší metoda vrhání paprsků. Z pozice kamery jsou vrženy paprsky tak, aby každým bodem plátna procházel jeden. Na plátno je pak vykreslena barva nejbližšího bodu, do kterého příslušný paprsek,,narazí. Barva bodu dopadu může být vypočítána např. Phongovým osvětlovacím modelem nebo může být použita hodnota globálního osvětlení uložená ve scéně. 2.8 Ray tracing - sledování paprsků Jak je zřejmé z názvu, nejedná se už o pouhé vrhání paprsků k nejbližšímu průsečíku, ale jejich průběh je sledován. Stejně jako u ray castingu vychází paprsky z pozice kamery, prochází bodem plátna a,,naráží do nejbližšího objektu, který jim stojí v cestě. Zde však nastává zásadní změna oproti ray castingu. Z bodu dopadu paprsku P 0 jsou vrženy další paprsky: Paprsky směřující ke světelným zdrojům - Určují zda je bod osvícen daným světlem, nebo je ve stínu - paprsek nedorazí až do pozice světla. Podle toho zda je/není bod osvícen je upravena jeho barva. 14

19 Obrázek 2.8: Ray tracing Odrazový paprsek - Pokud není povrch modelován jako 100% difuzní, je podle úhlu dopadu paprsku v bodě P 0 vypočítán úhel odrazu a v jeho směru je vržen nový paprsek. Barva bodu P R, do kterého odrazový paprsek dopadne je pak podle míry odrazivosti materiálu přimíchána do barvy bodu P 0. Takto jsou dále rekurzivně odráženy i odrazové paprsky, dokud míra odrazové složky nedosáhne nízké (nastavené) hodnoty, nebo dokud nedojde k maximálnímu počtu odrazů. S odrazovými paprsky samozřejmě výrazně narůstá složitost výpočtu a proto je třeba vhodně nastavit meze tak, aby nedocházelo k příliš velkému počtu odrazů. Paprsek průhlednosti - Jestliže je materiál v bodě dopadu P 0 alespoň částečné průhledný, je na základě zákona o lomu světla vržen nový paprsek. Jeho barva je pak smíchána s barvou bodu P 0 podobně jako u odrazových paprsků. Stejně tak platí, že je třeba zajistit, aby hloubka rekurze nebyla zbytečně velká. Ray tracing je vhodný zejména pro zobrazování lesklých a průhledných povrchů. Dokáže zobrazit stíny, které jsou však tvrdé a proto nevypadají příliš realisticky. Problematické je také zobrazování difuzních povrchů a texturování, kde může docházet k aliasingu. Tyto nedostatky se snaží řešit distribuovaný ray tracing. 2.9 Distribuovaný ray tracing Distribuovaný ray tracing se snaží vyřešit některé problémy, které vznikají u běžného sledování paprsků. Stejně jako v předchozích metodách paprsky vycházejí z pozice kamery, avšak každým bodem plátna neprochází pouze jediný paprsek, ale více paprsků, které prochází bodem plátna v různých místech. Dále se pak šíří scénou stejně jako u běžného ray tracingu. Barva bodu plátna je aproximována z toho, co vrátí jednotlivé paprsky. Díky tomu je možné modelovat měkké stíny a zamezit aliasingu. Vzhledem k vyššímu počtu paprsků je však metoda výpočetně náročnější a stále nedokáže realisticky modelovat difuzní povrchy. 15

20 Obrázek 2.9: Distribuovaný ray tracing 2.10 Path tracing Obrázek 2.10: Path tracing Path tracing vychází z přímé simulace šíření světla ze světelného zdroje do kamery. Pro vyšší efektivitu jsou nicméně paprsky vrhány v opačném směru - z kamery. Algoritmus následně sleduje prostup paprsku scénou, dokud,,nenarazí do světelného zdroje nebo nedojde k dosažení maximálního počtu odrazů. Podle cesty, kterou světelný paprsek projde scénou, je následně upravena barva příslušného bodu plátna. Pro dosažení kvalitních výsledků bez šumu je třeba každým bodem plátna vrhnout velký počet paprsků, protože velká část z nich vůbec nedosáhne světelného zdroje. Pomocí náhodných odrazů paprsků lze modelovat i difuzní povrchy, větší množství paprsků také zabraňuje aliasingu a umožňuje správné zobrazení měkkých stínů. Jedná se o výpočetně velmi náročnou metodu, která však přímo aproximuje zobrazovací rovnici a při velkém množství vržených paprsků se blíží realistickému zobrazení. Z tohoto důvodu se používá jako referenční model pro porovnání výsledků jiných osvětlovacích modelů Mapování fotonů (Photon Mapping) Jak již název napovídá, jde o simulaci a záznam šíření fotonů scénou, přičemž pro simulaci šíření fotonů se používají stejné principy jako u paprskových metod, které byly popsány 16

21 Obrázek 2.11: Mapování fotonů v 2.3. Fotony jsou ze světelných zdrojů náhodně vrhány do scény, kde se následně šíří podle fyzikálních vlastností objektů, na které dopadají. Při každém dopadu fotonu na libovolný povrch je jeho pozice a barva zaznamenána do fotonové mapy [3]. Při zobrazování např. ray tracingem (2.8) se pak barva zobrazovaného bodu určí podle fotonů zaznamenaných v jeho okolí. Pokud bychom chtěli photon mapping vztáhnout na zobrazovací rovnici, dalo by se říci, že: Bod x není nekonečně malý, ale jedná se o plošku (okolí bodu) o velikosti, která je vůči velikosti scény zanedbatelná. Světlo L o (y, ω i ), které do bodu x dopadá, je reprezentováno náhodnými fotony ve fotonové mapě, které do okolí bodu x dopadly. Světlo L o (x, ω i ), které z bodu x vychází, je stejně jako v zobrazovací rovnici vypočítáno it s not okayze sumy dopadajícího světla (fotonů v okolí bodu x) a ze světla, které je z bodu x vyzařováno (je-li v bodě x světelný zdroj) Fotonová mapa Vyhledávání ve fotonové mapě je kritické pro rychlost i přesnost výsledné aplikace. Protože fotony se nachází většinou ve 3D prostoru, je vhodné pro jejich uložení použít nějakou metodu dělení prostoru. Nejčastěji se pro tento účel používají k-d stromy, které jsou určeny pro ukládání N-dimenzionálních dat a umožňují rychlé vyhledávání blízkých uzlů Zobrazení výsledků Samotný photon mapping se stará pouze o výpočet globálního osvětlení a neprovádí tedy zobrazení na plátno. K samotnému zobrazení scény je možné využít více technik, v principu však vždy dochází k určení osvětlení bodu na základě fotonů v jeho okolí. Vrhání paprsků Je možné použít ray casting (2.7), ray tracing (2.8) případně jejich modifikace (2.9) přičemž při každém dopadu paprsku se barva počítá z fotonů v okolí dopadu. Sledováním paprsku 17

22 Obrázek 2.12: Ukázka vizualizace programu DIALux v kombinaci s photon mappingem lze dosáhnout velmi realistického zobrazení včetně simulace odrazu a lomu světla. Vykreslování jednoho detailního snímku však může trvat značně dlouho (minuty i hodiny) a proto se zobrazení vrháním paprsku nehodí pro interaktivní zobrazení výsledků osvětlení. Mapování na vrcholy trojúhelníkové sítě Jinou možností jak zobrazit výsledek mapování fotonů je převedení osvětlené geometrie na trojúhelníkovou sít a výpočet osvětlení (barvy) pro každý vrchol (vertex) této sítě. Barva trojúhelníku pak vzniká interpolací mezi vrcholy podobně jako u Gouraudova stínování. Výhodou tohoto přístupu je, že po namapování barev na vrcholy lze měnit polohu kamery bez nutnosti vyhledávání ve fotonové mapě. Grafický výsledek však není zdaleka tak kvalitní jako při použití sledování paprsků Existující aplikace pro výpočet intenzity osvětlení Přestože aplikací, které se zabývají výpočtem globálního osvětlení, existuje nepřeberné množství, většina z nich se soustředí téměř výhradně na vizuální stránku simulovaného osvětlení. Vyhodnocováním exaktních hodnot se zabývají pouze specializované programy pro výpočet osvětlení projektovaných budov, silnic, sportovních stadionů a jiných veřejných prostor, kde hraje kvalita osvětlení významnou roli. Tyto aplikace jsou většinou úzce svázány s místními normami pro osvětlení a zahrnují také databázi dostupných svítidel. Patří mezi ně například program DIALux Německé společnosti DIAL GmbH 1 nebo v Česku pro tyto účely pravděpodobně nejpoužívanější program Wils vyvíjený firmou ASTRA MS Software s.r.o

23 Obrázek 2.13: Izo diagram osvětlení stěny v programu Wils Wils Aplikace se zabývá výpočtem umělého osvětlení vnitřních i venkovních prostor v návaznosti na aktuální České i Evropské normy. Mezi největší přednosti patří pravděpodobně rozsáhlá databáze charakteristik různých druhů svítidel. Samotný výpočet osvětlení scény však není příliš obecný. Geometrické objekty mohou být pouze z kvádrových těles a celkově je princip skladby scény poněkud zjednodušen. Výrobce uvádí, že výpočet se provádí bodovou metodou. Podle dostupných informací se jedná o algoritmus obdobný výpočtu radiozity (2.6), tomu nasvědčuje také to, že není možné nastavit lesklé materiály. Přestože se z pohledu simulace světla jedná o jednoduchou aplikaci, je v praxi poměrně hojně používána a její výsledky se s dostatečnou přesností blíží reálným hodnotám. 19

24 Kapitola 3 Návrh a implementace Cílem práce je na základě principů mapování fotonů implementovat výpočet exaktních hodnot intenzity osvětlení. Výsledek by měl být zobrazitelný jak realisticky tak i s podporou vizualizace vypočtených hodnot. Stejně tak by mělo být možné odečítat hodnoty osvětlení v přesně definovaných bodech scény. Jelikož je photon mapping dvouprůchodovou zobrazovací metodou, lze aplikaci v zásadě rozdělit na dva základní stavební bloky, které provádějí: Mapování fotonů do scény Zobrazení výsledků Mapování fotonů představuje samotnou simulaci šíření světla scénou, zobrazení výsledků pouze poskytuje přístup k hodnotám nasimulovaným šířením fotonů. Obě komponenty sdílí určitá společná data, jako například graf scény, ale jejich činnost by měla být vzájemně nezávislá a výsledek mapování fotonů do scény by měl být bez problémů zobrazitelný různými metodami. 3.1 Objektový návrh Struktura aplikace byla navržena tak, aby bylo možné jednotlivé části v budoucnu rozšířit či přeimplementovat. V návrhu jsou použity abstraktní třídy, které prakticky pouze definují rozhraní, např. pro světelný zdroj či fotonovou mapu. Díky tomu je možné v budoucnu do aplikace přidat další světelné zdroje, nebo použít jinou datovou strukturu pro uložení fotonové mapy. Struktura jádra aplikace je znázorněna diagramem tříd v obrázku 3.1. Hlavní část tvoří třída Experiment, která agreguje potřebná data a poskytuje metody pro řízení výpočtu. 3.2 Použité knihovny a nástroje Pro efektivní běh photon mappingu je nezbytné použití vhodných datových struktur a algoritmů. Pro implmentaci byl zvolen jazyk C++, který poskytuje dostatečný výkon a pro který jsou dostupné četné knihovny vhodné pro implementaci mapování fotonů. V následující části budou stručně popsány jednotlivé knihovny podle toho, kde jsou v aplikaci použity. 20

25 Obrázek 3.1: Diagram tříd - jádro aplikace 21

26 3.2.1 Graf scény Pro práci s grafem scény je použita knihovna Open Scene Graph. Tato knihovna je primárně určena pro manipulaci s grafem scény a pro jeho zobrazení pomocí OpenGL. Mimo jiné umožňuje: Načítání externích modelů ze souboru Hierarchické členění scény (obalová tělesa, k-d strom) Poměrně rychlý výpočet průsečíků Zobrazení polygonálních modelů Fotonová mapa Nejvhodnější strukturou pro uložení fotonové mapy je k-d strom. Existuje více knihoven pro C++, které implementují funkčnost k-d stromu, např. libkdtree++. Pro implementaci byla nakonec vybrána knihovna FLANN (Fast Linear Approximate Neares Neighbours), která je určena pro vyhledávání nejbližších n-rozměrných vektorů a je použita např. v knihovně OpenCV. Pro vyhledávání nejbližších sousedů poskytuje jak algoritmy využívající k-d strom, tak i rychlé aproximační algoritmy. Na rozdíl od libkdtree++ umí vyhledávat jak všechny sousedy ve fixní vzdálenosti, tak i fixní počet nejbližších sousedů Generování náhodných čísel Přesnost photon mappingu jako stochastické metody je přímo závislá na kvalitě náhodně generovaných čísel. Z tohoto důvodu by nebylo zřejmě zcela vhodné použít pro jejich generování pouze vestavěnou C++ funkci rand(). Pro generování náhodných čísel je proto využita knihovna boost, která poskytuje několik sofistikovaných generátorů náhodných čísel. Je možné použít také různá rozložení pravděpodobnosti Grafické uživatelské prostředí Demonstrativní aplikace je vytvořena s použitím frameworku Qt. Z Qt je také použita knihovna pro načítání XML souboru definujícího scénu experimentu. 3.3 Graf scény Jak již bylo zmíněno dříve (3.2.1), pro reprezentaci scény je využita knihovna Open Scene Graph. Speciální prvky scény pro účely photon mappingu jsou tedy odvozeny z jejích tříd pro uzly grafu scény. Struktury použité v grafu scény jsou znázorněny diagramem tříd v obrázku Geometrické uzly Jak již název napovídá, uzly tohoto typu představují geometrické útvary ve scéně. V aplikaci jsou k tomuto účelu využity objekty třídy osg::geode, které jsou určené pro zobrazování vykreslovatelných dat třídy osg::drawable. 22

27 Obrázek 3.2: Diagram tříd - struktury použité v grafu scény 23

28 3.3.2 Uzly pro photon mapping Při dopadu fotonu na povrch geometrického tělesa, je tento foton zaznamenáván do fotonové mapy. Naopak při následném zobrazování tělesa je intenzita osvětlení určena z fotonů, které na dané těleso dopadly. Z toho vyplývá, že jak při šíření fotonů, tak při následném zobrazování scény potřebujeme přístup pouze k fotonům příslušejícím ke zpracovávanému geometrickému tělesu. Proto má každá geometrie ve scéně svou vlastní fotonovou mapu. Velikost lokální fotonové je vždy menší, než by byla velikost mapy pro celou scénu. Z tohoto důvodu může být vyhledávání v ní výrazně efektivnější, protože už pouze určením geometrie, se kterou se pracuje, vlastně využíváme hierarchického členění. Určení aktuální geometrie naopak nepředstavuje žádnou práci navíc, protože jak při výpočtu průsečíku, tak při vykreslování máme k aktuální geometrii přístup. Použití lokálních fotonových map může navíc odstranit některé nežádoucí jevy photon mappingu, jako je napříkad přesvětlování v místě, kde jsou dvě geometrie od sebe vzdáleny méně, než je poloměr pro vyhledávání nejbližších fotonů. V aplikaci jsou uzly pro photon mapping implementovány jako třída PhotonMapNode, která je potomkem třídy osg::group. Objekt třídy PhotonMapNode agreguje tyto objekty: fotonová mapa pro geometrie uzlu seznam podřízených uzlů - geometrie materiál, definující vlastnosti povrchu všech podřízených geometrií Třída dále poskytuje metody pro práci s fotonovou mapou a s dalšími svými vlastnostmi Kontrolní body Mapování fotonů na geometrické uzly slouží k výpočtu intenzity osvětlení dopadající na plochu geometrického tělesa. Intenzitu osvětlení scény lze tedy stanovit pouze na povrchu geometrických těles. Kontrolní body jsou zavedeny pro určení intenzity osvětlení v bodech scény, kde se žádné těleso nenachází a mohou sloužit např. pro výpočet osvětlení, které by působilo v daném bodě na oči člověka. Protože intenzitu osvětlení lze stanovit pouze na určité ploše, je třeba aby kontrolní bod představoval jakousi virtuální elementární plošku. Pro intenzitu osvětlení na této plošce je stěžejní její orientace - normála. Kontrolní body jsou v programu implementovány tak, že mohou být orientovány šesti způsoby: v kladném směru osy X - bod zachytává pouze světelný tok dopadající na něj z kladného směru osy X v záporném směru osy X - bod zachytává pouze světelný tok dopadající na něj ze záporného směru osy X v kladném směru osy Y (obdobně jako u osy X) v záporném směru osy Y (obdobně jako u osy X) v kladném směru osy Z (obdobně jako u osy X) v záporném směru osy Z (obdobně jako u osy X) 24

29 V praxi je kontrolní bod implementován jako transparentní kruh, který pro každý průchozí foton vytváří zápis do fotonové mapy. Rozsah průchozích fotonů je řízen poloměrem R, ve kterém kontrolní bod fotony zachytává. Při výpočtu osvětlení je pak možné v mapě fotony vyhledávat, pro poloměr vyhledávání r však musí platit r <= R. V určitých případech by mohlo být žádoucí mít možnost orientovat elementární plošku kontrolního bodu libovolně, případně přijímat světelný tok ze všech směrů a počítat tak kulovou osvětlenost. Tyto typy kontrolních bodů mohou být předmětem dalšího rozšiřování aplikace. Funkčnost kontrolního bodu je implementována ve třídě ControlPoint, která je potomkem třídy osg::node a může být tedy navázána do grafu scény. Poskytuje metodu pro určení průsečíku procházejícího paprsku a metody pro práci s fotonovou mapou kontrolního bodu Kontrolní mřížky Pokud chceme zkoumat osvětlení v nějakém rozsáhlejším prostoru, bylo by pracné definovat jednotlivé kontrolní body. Proto aplikace nabízí element scény ControlGrid, která je potomkem třídy osg::group a agreguje definovaný počet kontrolních bodů. Kontrolní mřížka je vždy obdélníkového tvaru a leží v rovině kolmé na některou z os a je možné jí nastavit tyto parametry: počet bodů NxM horizontální a vertikální vzdálenost mezi jednotlivými body zachycovací poloměr všech bodů zachycovací směr všech bodů pozice středu mřížky Pro kontrolní mřížku platí, že je vždy kolmá na zachycovací směr jejích bodů Průchody scénou Pro různé činnosti aplikace je třeba procházet grafem scény a získávat z něj informace, případně jej modifikovat. Pro tyto účely slouží v aplikaci tzv. visitory. Jsou to třídy odvozené z tříd osg::nodevisitor nebo osgutil::intersectionvisitor, které jsou v knihovně Open Scene Graph určeny k procházení uzlů scény, potažmo přímo k výpočtu průsečíků se scénou. Některé z visitorů budou dále v textu popsány podrobněji, zde je stručný popis všech, které se v aplikaci nachází. ApplyLightVisitor ApplyLightVisitor vypočte intenzitu osvětlení pro vrcholy polygonových sítí (osg::geometry) v grafu scény. Vrcholům také přiřadí odpovídající barvy. ClearPhotonsVisitor ClearPhotonsVisitor vyprázdní záznamy o fotonech (fotonovou mapu) u všech uzlů s fotonovou mapou. 25

30 FindGeodesVisitor FindGeodesVisitor v grafu scény nalezne geody, aby mohly být následně nahrazeny uzly s fotonovou mapu PhotonMapNode. GetControlPointsVisitor GetControlPointsVisitor slouží pro nalezení kontrolních bodů ve scéně. MaterialColorVisitor MaterialColorVisitor aplikuje barvu materiálu na vrcholy polygonové sítě. MaxLightVisitor MaxLightVisitor nalezne maximální hodnotu intenzity osvětlení ve scéně. PhotonVisitor PhotonVisitor nalezne průsečík fotonu se scénou a vrátí příslušný uzel s fotonovou mapou. Používá se při šíření fotonů scénou. RayVisitor RayVisitorn nalezne průsečík paprsku se scénou. Používá se při ray tracingu. 3.4 Generování náhodných směrových vektorů Nezbytnou součástí photon mappingu je generování náhodných směrových vektorů, které jsou potřebné při vytváření fotonů ve světelných zdrojích nebo při difuzním odrazu. Rozložení pravděpodobnosti generovaných směrů nemusí být vždy rovnoměrné a záleží bud na vyzařovací charakteristice světelného zdroje, nebo na odrazové charakteristice materiálu. Všechny generátory náhodných směrů jsou potomky abstraktní třídy RandomDirectionGenerator, která definuje pouze jednu metodu Vector3 generate(), která slouží pro vygenerování jednoho náhodného normalizovaného vektoru. Základem generování náhodných směrových vektorů je generování s rovnoměrným rozložením na povrchu jednotkové koule. Existuje několik přístupů pro vytváření takovýchto vektorů, z nichž každý má své výhody a nevýhody S využitím jednotkové krychle Při tomto přístupu jsou vytvářeny vektory, kde každá souřadnice je generována s rovnoměrným rozložením od 0 do 1. Pokud se takto vygenerovaný vektor nachází uvnitř jednotkové koule, je normalizován a považován za výsledek. Pokud se uvnitř koule nenachází, generování se opakuje. Tato metoda je sice velmi jednoduchá avšak není příliš efektivní ani vhodná pro jiné než rovnoměrné rozložení, proto ani není v aplikaci použita [6]. 26

31 Obrázek 3.3: Nerovnoměrné rozložení bodů na povrchu koule Obrázek 3.4: Rovnoměrné rozložení bodů na povrchu koule S využitím normálního rozložení pravděpodobnosti Tohoto principu využívá například generátor v knihovně boost. Jednotlivé souřadnice jsou vygenerovány s normálním rozložením pravděpodobnosti a výsledný vektor je normalizován. Více informací a matematický důkaz metody je možné najít např. v [5]. Výhodou této metody je malá výpočetní náročnost, jednoduchá implementace a možnost generování n- rozměrných vektorů. V aplikaci je tato metoda použita pro generování vektorů s rovnoměrným rozložením na jednotkové kouli. Implementována je v třídě SphericalDirectionGenerator. Generátor je použit pro jednoduchá všesměrová bodová světla Pomocí sférické soustavy souřadnic Sférická soustava souřadnice definuje každý bod v prostoru jako trojici (r, ϕ, θ) kde: r je vzdálenost bodu od počátku souřadnicové soustavy ϕ je úhel odklonu polopřímky mezi počátkem a bodem od osy x θ je úhel odklonu polopřímky mezi počátkem a bodem od osy z Na první pohled by se mohlo zdát, že tedy stačí rovnoměrně generovat náhodný úhel ϕ [0, π] a úhel θ [0, 2π), rozmístění takto generovaných bodů by však nebylo rovnoměrné - pravděpodobnost by se směrem k pólům jednotkové koule zvyšovala. Tento fakt je ilustrován na obrázku 3.3. Z definice prostorového úhlu je možné elementární plošku koule popsat vztahem 3.1, který je funkcí úhlu ϕ, což způsobuje nelineární rozložení generovaných bodů na jednotkové kouli. dω = sin ϕdθdϕ (3.1) 27

32 Odvození rozložení pravděpodobnosti pro generování úhlů θ a ϕ je uvedeno např. v [9]. Výsledné vztahy pro generování náhodného jednotkového vektoru v kartézském souřadném systému jsou dány soustavou rovnic 3.3, kde u a v jsou náhodná čísla rovnoměrně rozložená v intervalu [0, 1]. Tento postup vede k rovnoměrnému generování bodů na povrchu koule jako je ilustrováno na obrázku 3.4. ϕ = 2π u (3.2) θ = arccos(2v 1) x = 1 cos 2 θ cos ϕ (3.3) y = 1 cos 2 θ sin ϕ z = cos θ Výhodou tohoto generátoru je možnost měnit rozsah úhlů sférických souřadnic. Díky tomu je možné generovat náhodné směrové vektory např. na povrchu jednotkové polokoule nebo jiného vrchlíku. Dále je možné měnit rozložení pravděpodobnosti pro generování veličin u a v a tím definovat různou hustotu pravděpodobnosti v různých směrech. Metoda je v aplikaci použita ve třídě ConicalDirectionGenerator, která s rovnoměrným rozložením pravděpodobnosti generuje body na povrchu vrchlíku jednotkové koule. Velikost vrchlíku je dána úhlem. Objekty této třídy jsou použity jak pro směrová světla, tak pro dokonale difuzní odrazy. Metoda je také použita ve třídě DefinedDirectionGenerator, která je blíže popsána v části Interpolované rozložení pravděpodobnosti V některých případech není možné jednoduše popsat rozložení pravděpodobnosti náhodně generované veličiny matematickou funkcí. Například vyzařovací charakteristika svítidel je často složitá. Pro potřeby photon mappingu představuje vyzařovací charakteristika funci rozložení pravděpodobnosti. Pokud ji tedy není možné popsat jednoduše matematicky, je třeba ji aproximovat. Třída InterpolatedDistribution implementuje rozložení pravděpodobnosti, kde je rozložení pravděpodobnosti P (x) dáno koeficienty předanými v poli libovolné velikosti. Předpokládá se, že koeficienty jsou lineárně rozmístěny v intervalu [0, 1] a představují hodnotu pravděpodobnostní funkce v daném bodě. Pro generování náhodných čísel je třeba znát distribuční funkci daného rozdělení. Ta se dá vyjádřit známým vztahem 3.4. F (x) = t x P (t) (3.4) Pro získání distribuční funkce jsou do pole uloženy její hodnoty pro každý koeficient rozložení pravděpodobnosti. Při generování náhodného čísla je rovnoměrně generováno číslo u z intervalu [0, 1] a následně je zjištěn index i koeficientu k i pro který platí 3.5. Pokud je počet koeficientů roven n a rozložení by mělo generovat čísla z intervalu [0, 1], pak se výsledné náhodné číslo x určí vztahem 3.6. V takovém případě však bylo rozložení pravděpodobnosti diskrétní. Pro zajištění spojitého rozložení pravděpodobnosti je využita lineárlní interpolace, kde výsledná náhodná hodnota x je určena vztahem 3.7. Čím více je koeficientů definujících pravděpodobnostní funkci, tím,,vyhlazenější je aproximace. 28

33 F (k i 1 ) < u F (k i ) (3.5) x = i n (3.6) i + u F (x i 1) F (x x = i ) F (x i 1 ) (3.7) n Pro získání náhodné veličiny V aplikaci je toto rozložení pravděpodobnosti použito u světel s definovanou vyzařovací charakteristikou. Generátor směrových vektorů s definovanou charakteristikou je blíže popsán v části Generátor směrů s definovanou charakteristikou Vyzařovací charakteristika nebo odrazová charakteristika materiálu může být popsána vyzařovacím diagramem (resp. diagramem svítivosti). Jedná se o funkci ve sférických souřadnicích, která pro úhly ϕ a θ definuje intenzitu záření (svítivost). Obecný vyzařovací diagram lze popsat např. maticí o velikosti 360x360, kde jsou v řádcích uloženy hodnoty záření pro velikosti úhlu ϕ a ve sloupcích hodnoty záření pro velikosti úhlu θ. Pro libovolný směr lze tedy určit (interpolovat) hodnotu záření. Z pohledu náhodných čísel představuje vyzařovací charakteristika funkci rozdělení pravděpodobnosti. Jednotlivé řádky pak udávají rozdělení pravděpodobnosti úhlu ϕ a sloupce úhlu θ. Jak již bylo popsáno v sekci 3.4.3, je možné generovat směrové vektory s definovaným rozložením pravděpodobnosti úhlů ϕ a θ sférické souřadnice vektoru. K vygenerování úhlů na základě vyzažovacího diagramu definovaného maticí koeficientů, je použito interpolované rozložení pravděpodobnosti popsané v části Generátor je implementován ve třídě DefinedDirectionGenerator a jeho charakteristiku je možné definovat maticí koeficientů prakticky libovolné velikosti. 3.5 Struktura fotonu Foton ve photon mappingu by měl v sobě uchovávat základní informace, kterými jsou jeho: Pozice Směr šíření Barva Samozřejmě s sebou může nést i další informace, jako je např. počet odrazů. Fotony v implementované aplikaci si uchovávají navíc index lomu prostředí, ve kterém se právě šíří, aby bylo možné řídit jejich odrazy a lom. Fotony jsou v aplikaci reprezentovány objekty třídy Photon. Uchování pozice a směru šíření je poměrně jasné a je definováno souřadnicí a směrovým vektorem. Naopak barva může být definována různými způsoby a proto zde bude tato problematika popsána více. 29

34 3.5.1 Barva Z fyzikálního hlediska je barva dána vlnovou délkou záření, nebo-li světla. Reálné světelné zdroje však často nevyzařují pouze jedinou vlnovou délku (nejsou monochromatické), ale určité spektrum vlnových délek. Světelný zdroj generující fotony, by tedy měl nastavovat jejich barvu na základě tohoto spektra. V zásadě tak lze učinit dvěma způsoby: generování náhodné vlnové délky na s rozložením pravděpodobnosti daným spektrem aproximace a uložení vyzařovaného spektra do fotonu Z pohledu fyzikální simulace a stochastičnosti photon mappingu se jeví jako vhodnější varianta náhodné generování vlnové délky podle spektra daného světelného zdroje. Je však zřejmé, že pro následné korektní zobrazení barvy osvětlení, by bylo třeba většího počtu fotonů, jejichž vlnová délka by se průměrovala. Takový přístup by měl smysl pokud bychom chtěli co nejvěrněji simulovat vlnové vlastnosti světla jako např. lom či difrakci. Pro účely zkoumání intenzity světla bohatě postačí uložení vyzařovaného spektra do fotonu. Hojně využívanou aproximací v počítačové grafice je formát RGB, který udává intenzitu červené, zelené a modré složky světla. V aplikaci jsou tedy všechny barvy uchovávány ve formátu RGB. Tento formát bohatě postačuje k přesnému simulování intenzity světla a k věrohodnému zobrazení barevné informace. Zároveň je při generování fotonů, odrazech a skládání barev práce s tímto formátem jednoduchá a rychlá Index lomu Index lomu je fyzikální veličina popisující šíření světla optickém prostředí. Jedná se o funkci vlnové délky, avšak protože účelem aplikace není dokonale přesná simulace barevné informace světla, lze jej bez přílišné ztráty přesnosti považovat za konstantu danou optickou hustotou daného materiálu. Pro účely lomu a určení intenzity lomené a odražené složky světelného paprsku je třeba znát index lomu prostředí, ve kterém se paprsek šíří a prostředí, na které paprsek dopadá (do kterého vstupuje). Pokud bychom nebrali v úvahu průhledná tělesa, šířil by se vždy paprsek v prostředí s indexem lomu vzduchu (či jiného okolního prostředí) a dopadal by na povrch s indexem lomu daného materiálem povrchu. Pokud však scéna obsahuje i průhledná tělesa, může se paprsek šířit i prostředím s jiným indexem lomu. Pro tyto účely je u fotonu uchováván index lomu aktuálního prostředí, kterým se šíří. 3.6 Světelné zdroje Světelný zdroj je dán zejména svou vyzařovací a spektrální charakteristikou. Jak již bylo popsáno u fotonu (3.5.1), jsou všechna barevná spektra v aplikaci aproximována modelem RGB, stejně tak je tomu i u světelných zdrojů. Vyzařovací směrová charakteristika pak může být popsána bud samotným typem světla, nebo maticí definující vyzařovací charakteristiku. Světelné zdroje v aplikaci využívají pro určení směrových vektorů fotonů náhodné generátory popsané v části 3.4. Všechna světla v aplikaci jsou potomkem abstraktní třídy Light a musí poskytovat přístup ke své celkové svítivosti. Dále pak musí implementovat metodu generatephoton(), která generuje jeden foton. Vztahy mezi jednotlivými třídami světelných zdrojů a generátorů směrových vektorů jsou znázorněny v diagramu tříd na obrázku

35 Obrázek 3.5: Diagram tříd - světelné zdroje a generátory směrových vektorů 31

36 3.6.1 Všesměrové světlo Tento bodový světelný zdroj vyzařuje světelný tok rovnoměrně do všech směrů. Ke generování fotonů je použit generátor popsaný v části Funkčnost světla je implementována v třídě SphericalLight Konické světlo Jedná se o bodový světelný zdroj s kuželovitou vyzařovací charakteristikou, generuje fotony rovnoměrně do daného prostorového úhlu. Parametrem je možné nastavit vrcholový úhel α vyzařovacího kuželu. Funkčnost je implementována v třídě ConicalLight, která pro určování směrů fotonů používá generátor popsaný v části Světelný zdroj s definovanou charakteristikou Generuje směry fotonů podle rozložení pravděpodobnosti daného maticí koeficientů, jak bylo popsáno v části Světelný zdroj je implementován v třídě DiagramLight Uchování světel ve scéně Protože by zakomponování světel do grafu scény nemělo žádný pozitivní přínos, jsou světla agregována v samostatném seznamu světel třídy LightList. Jedná se o prostý seznam, který pouze poskytuje funkci pro získání celkového světelného toku všech zdrojů v lumenech. Tato hodnota je důležitá pro řízení počtu generovaných fotonů a pro následné určení intenzity osvětlení z okolních fotonů. 3.7 Materiály Pro účely simulace šíření světla je vhodné, aby materiál každého tělesa definoval zejména tyto vlastnosti: barva optická hustota lesklost/matnost Další důležitou vlastností je míra absorbce světla. Ta úzce souvisí s barvou materiálu, kdy barva odpovídá vlnovým délkám, které nejsou materiálem pohlcovány - jsou odráženy. Stejně tak je tomu i v implementované aplikaci. Barva materiálu zároveň definuje i míru odrazu jednotlivých barevných složek. Materiály jsou v programu reprezentovány třídou Material. Ta mimo výše zmíněné vlastnosti obsahuje i metody pro výpočet směrového vektoru pro lesklý odraz, difuzní odraz a pro lomený paprsek. Materiál tak v sobě obsahuje definici dvousměrné distribuční funkce odrazu (BRDF, 2.2.1, 3.8.4) a použitím jiné třídy materiálu by tak bylo možné změnit simulaci odrazů v celé aplikaci. Přestože knihovna Open Scene Graph obsahuje třídu osg::material pro implementaci vlastností materiálu, není tato třída použita, protože nepočítá s uložením optické hustoty a naopak poskytuje jiné funkce, které by nebyly při simulaci použity. 32

37 3.8 Šíření fotonů scénou Propagace fotonů scénou a jejich záznam do fotonových map představuje vlastní simulaci šíření světla a první ze dvou kroků při zobrazová photon mappingem. K simulaci šíření fotonů jsou použity struktury, které byly v této kapitole popsány dříve. Pomyslný život fotonů ve scéně je řízen objektem třídy PhotonProcessor. Ta si uchovává ukazatel na graf scény a na seznam světelných zdrojů. Obsahuje také frontu fotonů určených ke zpracování. Poskytuje metodu pro zahájení výpočtu a pro vložení nového fotonu na konec fronty Generování Prním krokem pro šíření fotonů scénou je jejich vygenerování, děje se tak ihned po zahájení výpočtu. Podle nastavené hodnoty počtu fotonů na jednotku světelného toku (lumen) je každým světelným zdrojem vygenerován daný počet fotonů na konec fronty v procesoru fotonů. Protože počet těchto fotonů může být nemalý, jsou fotony simulovány postupně pro jednotlivé světelné zdroje. Nejprve jsou tedy vygenerovány a simulovány fotony pro první světelný zdroj, následně pro druhý atd. Díky tomu není nárůst paměti tak rapidní pamět se alokuje postupně, zároveň tento přístup nemá žádný vliv na výsledek výpočtu Zpracování Jakmile jsou fotony vygenerovány, jsou postupně odebírány z čela fronty a zpracovávány. Zpracování fotonu spočívá v nalezení nejbližšího průsečíku jeho trajektorie (polopřímky) s geometrií scény. Následně je vyvolána interakce fotonu s příslušným uzlem scény, který jej zaznamená do fotonové mapy a případně do fronty PhotonProcessoru vygeneruje další odražené, lomené paprsky. Každý foton je po dokončení této interakce odstraněn z paměti Nalezení průsečíku a příslušného uzlu scény Pro výpočet průsečíku trajektorie fotonu se scénou je v aplikaci implementována třída PhotonVisitor, která je potomkem třídy osgutil::intersectionvisitor. Výpočet průsečíku scény a úsečky je implementován již v předkovi osgutil::intersectionvisitor včetně práce s obalovými tělesy a geometriemi v k-d stromech. Třída PhotonVisitor pouze doplňuje funkčnost pro interakci s uzlem s fotonovou mapou (3.3.2) a s kontrolním bodem (3.3.3) Odraz a lom Jak bylo zmíněno v teoretické části 2.4, v reálném světě prakticky neexistují dokonale difuzní nebo dokonale lesklé povrchy. V aplikaci se tedy při dopadu paprsku na povrch nahlíží na daný materiál jako na množinu elementárních plošek, jejichž orientace je dána Beckmannovou distribuční funkcí Ta udává pravděpodobnost, že paprsek ze světelného zdroje L dopadne na plošku s takovou orientací, že je dokonale odražen do pozice kamery V. Pro účely photon mappingu je třeba tuto funkci převést do tvaru, kdy budeme podle daného rozdělení pravděpodobnosti náhodně generovat orientaci elementární plošky, na kterou dopadá paprsek fotonu. Postup není zcela triviální a je uveden např. v [8]. Výsledkem je vztah 3.8 pro náhodné generování odchylky θ normály elementární plošky m od normály dopadové plochy n. 33

38 θ = arctan α 2 log(1 ξ 1 ) (3.8) φ = 2πξ 2 (3.9) kde θ je odchylka normály elementární plošky od normály dopadové plochy φ je náhodná rotace normály elementární plošky kolem normály dopadové plochy α je míra drsnosti povrchu ξ 1 a ξ 2 jsou náhodná čísla generovaná s rovnoměrným rozdělením pravděpodobnosti v intervalu [0; 1) Jelikož nyní známe normálu elementární plošky m, můžeme pomocí vztahů 3.10 a 3.11 spočítat směrové vektory odraženého a lomeného paprsku o r a o t. o r = 2(i m)m i (3.10) ( n1 o t = (i m) 1 + n ) 1 ((i m) n 2 n 2 1) m n 1 i (3.11) 2 n 2 Bohužel pro stanovení distribuční funkce odražených paprsků nestačí pouze rozdělení pravděpodobnosti orientace elementárních plošek. Představme si, že normála elementární plošky je orientována tak, že se od ní paprsek odráží pod úroveň povrchu geometrického tělesa. V takovém případě by se měl paprsek opět odrážet od elementárních plošek tak dlouho, dokud jeho směr nebude svírat s normálou povrchu tělesa n úhel menší, než 90. Aby nebylo třeba tyto odrazy přímo simulovat, lze použít dvousměrovou maskovací funkci. Dvousměrová maskovací funkce G(i, o, m)(bsdf - bidirectional shadowing-masking function) popisuje jak velká část elementární plošky s normálou m je viditelná jak ze směru dopadu paprsku i tak ze směru odrazu paprsku o, přičemž platí, že 0 G(i, o, m) 1. Získání hodnoty této funkce není opět zcela snadné. Vzhledem ke složitosti je vhodné použít aproximační postupy popsané v [8]. Další váhu k pravděpodobnosti odrazu přidává u průsvitných těles poměr mezi odraženým a lomeným světlem daný Fresnelovými vzorci. Pro výpočet poměru odražené a lomené složky lze použít přizpůsobený vzorec c = (i m) (3.12) (n2 ) 2 g = 1 + c 2 (3.13) F (i, m) = 1 2 n 1 ( ) ( g c 2 g + c 1 + ( ) ) c(g + c) 1 2 c(g c) + 1 (3.14) Výsledná váha udávající míru přeneseného světla do generovaného směru o r případně o t se pak stanoví jako 3.15 případně

39 (i m)g(i, o, m) w(o r ) = F (i, m) (i n)(m n) (i m)g(i, o, m) w(o t ) = (1 F (i, m)) (i n)(m n) (3.15) (3.16) Nyní máme vygenerovány směry odraženého a lomeného paprsku a míru světla w(o r ) a w(o t ), které se má tímto směrem šířit. Nastává však problém, jak v simulaci tuto váhu uplatnit. Pouhé vynásobení intenzity fotonu danou váhou by porušilo zákon zachování energie ve scéně a proto není možné jej použít. Ideálním řešením by jistě bylo stanovení inverzní funkce k w(o r ) a w(o t ) a generování náhodných směrů přímo s tímto rozdělením pravděpodobnosti. Vzhledem ke složitosti samotných váhovacích funkcí by to bylo však příliš komplikované. Proto aplikace využívá jiný, stochastický přístup. Pro každý odraz (lom) je vygenerováno podle Beckmannovy distribuční funkce n odrazových (lomových) směrových vektorů a následně je každému z nich přiřazena váha funkcí w(o r ) případně w(o t ). Výstupní váha W (o i ) vektoru i je pak stanovena jako podíl váhy přiřazené funkcí w(o r ) nebo w(o t ) a součtu vah všech vygenerovaných směrů (3.17). W (o i ) = w(o i) n w(o j ) j=0 (3.17) Tím je zaručen jednotkový součet všech vah a tedy splněn zákon zachování energie. Intenzita každého odraženého či lomeného fotonu je následně násobena příslušnou váhou W (o i ) a tím je dodrženo správné rozdělení pravděpodobnosti alespoň pro danou dávku. Z principu je zjevné, že čím více nových fotonů bude generováno při jednom odrazu/lomu, tím bude aproximace distribuční funkce přesnější. Je zjevné, že uvedené řešení odrazů je výrazně výpočetně náročnější než uvažování ideálně lesklých a ideálně difuzních povrchů. Výpočet odrazů znatelně zpomaluje šíření fotonů ve scéně. V případě dalšího vývoje by bylo vhodné pokusit se tuto kritickou sekci programu optimalizovat. 3.9 Fotonová mapa Datová struktura pro uchování mapy má zásadní vliv na rychlost běhu celé aplikace. Fotonová mapa by měla umožňovat rychlé vyhledání bodů (trojrozměrných vektorů) v okruho okolo jiného bodu, ale vzhledem k počtu fotonů by nemělo být budování struktury příliš pomalé. Asi nejvhodnější a hojně používanou strukturou pro uchování fotonů jsou k-d stromy. Aplikace počítá s možností využití různých fotonových map, proto je vytvořena abstraktní třída PhotonMap, která definuje rozhraní pro fotonovou mapu. Každý potomek musí implementovat funkce pro vložení fotonu, vyhledání fotonů v okruhu určitého bodu a nalezení fixního počtu fotonů, které jsou nejblíže k danému bodu. V aplikaci je používána fotonová mapa třídy PMFlann, která implementuje tyto funkce s využitím knihovny FLANN (3.2.2). Mimo to byla testována také fotonová mapa s využitím knihovny libkdtree Určení intenzity osvětlení Fyzikánlní veličina intenzita osvětlení je definována vztahem 2.3, tedy jako podíl světelného toku a velikosti plochy, na kterou dopadá. Protože světelný tok, představuje množství světla, 35

40 které je světelným zdrojem vyzažováno do určitého prostorového úhlu, lze fotony šířené ve scéně považovat za jednotky (kvanta) světelného toku. Světelný tok, dopadající na plochu o velikosti S lze tedy určit jako sumu fotonů, které dopadly na plochu S. Pokud kvantum světelného toku nesené fotonem i označíme Φ i, lze vyjádřit světelný tok dopadající na plochu S vztahem 3.18, kde n je počet fotonů zaznamenaných na ploše S. Φ = n Φ i (3.18) i=0 S = 4πr 2 (3.19) Světelný tok, dopadající na plošku se tedy určí jako suma fotonů, které na danou plošku dopadly. Pro získání intenzity osvětlení je tedy třeba ještě světelný tok podělit velikostí povrchu plošky. Běžně se ve photon mappingu používá dělení povrchem koule (3.19), ve které byly fotony hledány. Pokud však chceme určit přesnou hodnotu intenzity osvětlení, není tento přístup příliš vhodný Vyhledání množiny fotonů u paprskových metod Při zobrazování scény osvětlené photon mappingem paprskovou metodou (např. ray tracingem) se osvětlení v bodě dopadu paprsku stanovuje na základě fotonů umístěných v okolí dopadu. K nalezení vhodné množiny okolních fotonů je možné použít v zásadě dva přístupy: nalezení geometricky blízkých fotonů nalezení N nejbližších fotonů Jako geometricky blízké fotony lze chápat např. ty, které leží v úrčitém okruhu od místa dopadu, tedy leží uvnitř koule se středem v bodě dopadu P a poloměrem r. Stanovení vhodné hodnoty poloměru r však může být někdy složitým úkolem. Vysoká hodnota poloměru příliš vyhlazuje výsledné osvětlení, tím zanedbává detaily a zvyšuje počet testovaných fotonů, což zpomaluje chod aplikace. Naopak při malé velikosti poloměru r dochází vlivem stochastičnosti metody k šumu a k typickému,,mramorování velkých ploch Stanovení velikosti povrchu dopadové elementární plošky Vhodnou hodnotu poloměru r je možné určit např. na základě celkového počtu zaznamenaných fotonů a velikosti scény. Jednou z možností je také dynamická změna poloměru na základě rozptylu množiny N nejbližších fotonů v okolí bodu dopadu, poloměr r je pak roven poloměru obalové jejich obalové koule. Je možné také obě mětody kombinovat v závislosti na hustotě fotonů v daném místě. Předpokládejme, že fotony pro určení intenzity osvětlení v bodě P byly nalezeny testem příslušnosti do koule se středem v bodě P a poloměrem r. Pokud by všechny dané fotony byly zaznamenány na stejné rovinné ploše, je zřejmé, že velikost plochy, na kterou dopadly, je rovna obsahu kruhu o poloměru r (3.20) a je tedy 4x menší než povrch odpovídající koule. S = πr 2 (3.20) Pokud bychom předpokládali, že poloměr vyhledávací koule je vzhledem k geometrii dopadové plochy zanedbatelně malý, lze považovat dopadovou plochu za rovinu a lze tedy 36

41 pro výpočet povrchu použít obsah kruhu. Ke stejnému vztahu dospějeme i za předpokladu, že by povrch měl tvar kulové plochy o poloměru větším, než je poloměr vyhledávací koule (r p > r). Tento fakt je dokázán v S = 2πr p v (3.21) v = r2 2r p S = 2πr p r 2 S = πr 2 Je zřejmé, že stanovení velikosti povrchu jako obsah kruhu není pro různé tvary ploch zcela přesné. Přesnější čísla by bylo možné získat například rekonstrukcí povrchu ze souřadnic nalezených fotonů. Takový přístup by však značně zkomplikoval a zpomalil proces výpočtu intenzity osvětlení, který je kritický pro časovou náročnost celé aplikace. Použití kružnice s poloměrem vyhledávací koule lze tedy považovat za vhodný kompromis, který je vhodné použít zejména při zobrazování paprskovými metodami, kdy paprsek dopadá do libovolného bodu povrchu geometrie. Je však třeba mít na paměti, že hodnoty osvětlení v místech s prudkou změnou povrchu (např. špičaté vrcholy nebo,,hrbolaté části), mohou být nepřesné Vynesení hodnot osvětlení na polygonální sít Pro účely interaktivního zobrazení scény v OpenGL či DirectX je vhodné nanést hodnoty osvětlení na povrch zobrazované trojúhelníkové či obecně polygonální sítě. V zásadě lze hodnoty osvětlení na polygonální sít nanést dvěma způsoby: jako texturu, kde jsou hodnoty osvětlení uloženy v texelech 2r p uložit hodnoty osvětlení pro jednotlivé vrcholy Použití textur vyžaduje jejich alokaci a nastavení texturovacích souřadnic pro na každý model scény. To by bylo příliš náročné jak na implementaci tak na pamět ovou složitost programu. Naopak stanovení hodnot pro jednotlivé vrcholy není (vertexy) nepředstavuje složitý problém a při dostatečné detailnosti sítě poskytuje dobré výsledky. Hodnoty osvětlení mezi vrcholy sítě jsou interpolovány podobně jako při Gouraudově stínování Určení intenzity osvětlení ve vrcholu trojúhelníkové sítě Při určování intenzity osvětlení ve vrcholu trojúhelníkové sítě lze využít stejného principu jako u paprskových motod. Intenzitu osvětlení lze tedy získat jako sumu fotonů, které se nachází uvnitř koule o poloměru r se středem v bodě vrcholu V a podělené plochou kruhu o poloměru r. Stejně jako v případě paprskových metod je však i v tomto případě kritické vhodné stanovení poloměru vyhledávací koule. Kromě výše uvedených postupů (3.10.1), lze u trojúhelníkové sítě při určování poloměru r vycházet také z geometrických vlastostí sítě, zejména pak z velikosti jejích primitiv. Jednou z možností je např. stanovení poloměru r jako poloviny průměru délek všech hran, které z daného vrcholu vycházejí. Další možností je přímo využití primitiv trojúhelníkové sítě. Pro každý trojúhelník sítě jsou testovány fotony zda leží uvnitř tohoto trojúhelníku. Nalezené fotony jsou následně 37

42 rozděleny na tři skupiny, podle toho ke kterému bodu trojúhelníku jsou nejblíže. Následně jsou poděleny obsahem plochy příslušící danému vrcholu a přičteny k jeho hodnotě osvětlení. Tímto způsobem dojde ke zpracování všech fotonů ve scéně a je tedy maximálně využita informace, kterou představují. Navíc se vyhlazení intenzity osvětlení dokonale přizpůsobuje detailu trojúhelníkové sítě v daném místě a nemělo by tak docházet k nadměrnému zanedbávání světelných detailů ani k šumu. Kvůli nutnosti testovat fotony na polohu v trojúhelníku a výpočtu ploch jednotlivých segmentů trojúhelníku je tato metoda výpočetně náročnější než vyhledávání koulí, avšak lépe určuje množinu fotonů, které jsou použity pro výpočet osvětlení ve vrcholu sítě. Hodnoty osvětlení mapované na vrcholy trojúhelníkové sítě lze využít jak při zobrazování pomocí OpenGL, tak při zobrazování paprskovou metodou, kdy místo hledání fotonů v místě dopadu je osvětlení stanoveno lineární interpolací mezi hodnotami ve vrcholech dopadového trojúhelníku. Z tohoto pohledu by také mohlo být zajímavé přiřazování fotonů k vrcholům sítě už při jejich šíření scénou, kdy by vrcholy trojúhelníkové sítě vlastně tvořily dělení prostoru pro fotonovou mapu Zobrazení výsledků Po stanovení intenzity osvětlení v jednotlivých částech scény, je třeba tyto hodnoty vhodně zobrazit uživateli. Uživatel by měl mít možnost názorně vidět jak zobrazení scény blížící se co nejvíce realitě, tak i vhodnou vizualizaci naměřených fyzikálních hodnot Vizualizace fyzikálních hodnot Vizualizace fyzikálních hodnot by měla uživateli především poskytovat možnost studovat nasimulované hodnoty v různých částech scény. Z tohoto důvodu je pro tento účel vhodné mapovat intenzitu osvětlení do vrcholů trojúhelníkové sítě a následně tuto sít zobrazit pomocí OpenGL. Díky tomu je možné si scénu interaktivně prohlížet a odečítat nasimulované hodnoty. Při zkoumání intenzity osvětlení určité plochy nás mohou zajímat různé veličiny. V aplikaci se zkoumají zejména tyto: intenzita osvětlení barva dopadajícího osvětlení Pro vizualizaci těchto hodnot poskytuje aplikace několik zobrazovacích režimů, které budou nyní popsány. Intenzita jako stupně šedi Intenzita osvětlení se zobrazuje jako stupně šedi, kdy nulová intenzita má odpovídá černé a maximální intenzita osvětlení ve scéně odpovídá bílé barvě. Před zobrazením scény je tedy nalezena maximální hodnota a podle ní jsou před zobrazením všechny hodnoty normalizovány. Mapování intenzity osvětlení na stupně šedi je lineární, barva s intenzitou černé 0,5 tedy odpovídá polovině maximální naměřené intenzity osvětlení ve scéně. 38

43 Obrázek 3.6: Vizualizace intenzity osvětlení jako stupně šedi Obrázek 3.7: Vizualizace intenzity osvětlení barevnou škálou 39

44 Obrázek 3.8: Barevná škála pro vizualizaci intenzity Obrázek 3.9: Zobrazení světla, dopadajícího na povrch Intenzita jako barevná škála Opět se jedná o zobrazení intenzity osvětlení. Pro vizualizaci však nejsou použity odstíny šedi, ale barevná škála, kdy tmavě modrá barva odpovídá nejnižším hodnotám osvětlení a červená barva značí nejvyšší intenzitu osvětlení ve scéně. Pro zobrazení trojúhelníkové sítě tímto způsobem je v aplikaci použit fragment shader intensityshader.fs, který pro každý pixel převede vstupní interpolovanou intenzitu osvětlení na příslušnou hodnotu RGB. Tím je zajištěno, že pokud by v jednom trojúhelníku sousedily vrcholy s intenzitou 0 a 1 (minimem a maximem), nebude výsledkem lineární přechod z tmavě modré na červenou, ale barva se bude postupně měnit podle definované škály od tmavě modré, přes zelenou a žlutou k červené. Použitá škála je ilustrována v obrázku 3.8. Barva dopadajícího osvětlení Zobrazuje barvu světla, které dopadá na příslušnou plochu. Nezobrazuje tedy barvu světla, které míří do kamery. 40

45 Obrázek 3.10: Zobrazení světla, směřujícího do kamery Barva odraženého světla Zobrazuje barvu světla, které je po dopadu na plochu odraženo zpět do prostoru. V aplikaci se jedná o součin barvy materiálu a barvy dopadajícího světla. Jde vlastně o realistickou metodu zobrazení osvětlení Realistické zobrazení Pro účely realistického zobrazení scény je v aplikaci implemetovány i tři základní paprskové zobrazovací metody: vrhání paprsku (2.7) sledování paprsku (2.8) distribuované sledování paprsku (2.9) Při určování intenzity osvětlení v místě dopadu paprsku jsou používány hodnoty okolních fotonů. Je možné zvolit poloměr koule, ve které budou fotony hledány nebo fixní počet nejbližších fotonů, které budou brány v úvahu, jak bylo popsáno v Paprskovými metodami je možné zobrazit jak realistický pohled na scénu, tak i vizualizovat naměřené hodnoty podobnými způsoby, jaké byly popsány v části o vizualizaci naměřených hodnot. Výsledný obraz je normalizován Hodnoty v kontrolních bodech Důležitou součástí aplikace je možnost odečtu konkrétních hodnot v různých bodech scény. K tomuto účelu slouží v aplikaci kontrolní body popsané v sekci Protože si každý kontrolní bod uchovává vlastní mapu fotonů, které prolétly v jeho okolí o poloměru R, je možné 41

Zobrazování a osvětlování

Zobrazování a osvětlování Zobrazování a osvětlování Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí E-mail: felkel@fel.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa

Více

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK PRAKTIKUM III Úloha č. IV Název: Měření fotometrického diagramu. Fotometrické veličiny a jejich jednotky Pracoval: Jan Polášek stud.

Více

Odraz světla, BRDF. Petr Kadleček

Odraz světla, BRDF. Petr Kadleček Odraz světla, BRDF Petr Kadleček 17. října 2011 Úvod V minulé přednášce jsme si představili matematický model scény včetně geometrie, materiálů, zdroje světla, kamery, atd. Ukázali jsme si, že při formulaci

Více

Světlo je elektromagnetické vlnění, které má ve vakuu vlnové délky od 390 nm do 770 nm.

Světlo je elektromagnetické vlnění, které má ve vakuu vlnové délky od 390 nm do 770 nm. 1. Podstata světla Světlo je elektromagnetické vlnění, které má ve vakuu vlnové délky od 390 nm do 770 nm. Vznik elektromagnetických vln (záření): 1. při pohybu elektricky nabitých částic s nenulovým zrychlením

Více

Charakteristiky optického záření

Charakteristiky optického záření Fyzika III - Optika Charakteristiky optického záření / 1 Charakteristiky optického záření 1. Spektrální charakteristika vychází se z rovinné harmonické vlny jako elementu elektromagnetického pole : primární

Více

Fyzikálně založené modely osvětlení

Fyzikálně založené modely osvětlení Fyzikálně založené modely osvětlení 1996-2015 Josef Pelikán, CGG MFF UK Praha http://cgg.mff.cuni.cz/~pepca/ pepca@cgg.mff.cuni.cz Physical 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 31 Historie

Více

Geometrická optika. předmětu. Obrazový prostor prostor za optickou soustavou (většinou vpravo), v němž může ležet obraz - - - 1 -

Geometrická optika. předmětu. Obrazový prostor prostor za optickou soustavou (většinou vpravo), v němž může ležet obraz - - - 1 - Geometrická optika Optika je část fyziky, která zkoumá podstatu světla a zákonitosti světelných jevů, které vznikají při šíření světla a při vzájemném působení světla a látky. Světlo je elektromagnetické

Více

Otázky z optiky. Fyzika 4. ročník. Základní vlastnosti, lom, odraz, index lomu

Otázky z optiky. Fyzika 4. ročník. Základní vlastnosti, lom, odraz, index lomu Otázky z optiky Základní vlastnosti, lom, odraz, index lomu ) o je světlo z fyzikálního hlediska? Jaké vlnové délky přísluší viditelnému záření? - elektromagnetické záření (viditelné záření) o vlnové délce

Více

Rekurzivní sledování paprsku

Rekurzivní sledování paprsku Rekurzivní sledování paprsku 1996-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 21 Model dírkové kamery 2 / 21 Zpětné sledování paprsku L D A B C 3 / 21 Skládání

Více

Jsou všechny žárovky stejné?

Jsou všechny žárovky stejné? Jsou všechny žárovky stejné? VÍT BEDNÁŘ, VLADIMÍR VOCHOZKA, JIŘÍ TESAŘ, Fakulta pedagogická, Západočeská univerzita, Plzeň Pedagogická fakulta, Jihočeská univerzita, České Budějovice Abstrakt Článek se

Více

Počítačová grafika III Radiometrie. Jaroslav Křivánek, MFF UK

Počítačová grafika III Radiometrie. Jaroslav Křivánek, MFF UK Počítačová grafika III Radiometrie Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Směr, prostorový úhel, integrování na jednotkové kouli Směr ve 3D Směr = jednotkový vektor ve 3D Kartézské souřadnice

Více

světelný tok -Φ [ lm ] (lumen) Světelný tok udává, kolik světla celkem vyzáří zdroj do všech směrů.

světelný tok -Φ [ lm ] (lumen) Světelný tok udává, kolik světla celkem vyzáří zdroj do všech směrů. Světeln telné veličiny iny a jejich jednotky Světeln telné veličiny iny a jejich jednotky, světeln telné vlastnosti látekl světelný tok -Φ [ lm ] (lumen) Světelný tok udává, kolik světla celkem vyzáří

Více

Počítačová grafika III Radiometrie. Jaroslav Křivánek, MFF UK

Počítačová grafika III Radiometrie. Jaroslav Křivánek, MFF UK Počítačová grafika III Radiometrie Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Směr, prostorový úhel, integrování na jednotkové kouli Směr ve 3D Směr = jednotkový vektor ve 3D Kartézské souřadnice

Více

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D EVROPSKÝ SOCIÁLNÍ FOND Základy 3D modelování a animace v CGI systémech Cinema 4D C4D PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Mgr. David Frýbert 2013 CGI systémy Computer - generated imagery - aplikace

Více

Fotonové mapy. Leonid Buneev

Fotonové mapy. Leonid Buneev Fotonové mapy Leonid Buneev 21. 01. 2012 Popis algoritmu Photon mapping algoritmus, který, stejně jako path tracing a bidirectional path tracing, vyřeší zobrazovací rovnice, ale podstatně jiným způsobem.

Více

Radiometrie, radiační metody

Radiometrie, radiační metody Radiometrie, radiační metody 1996-2018 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Radiometry 2018 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 34 Globální výpočet

Více

Elektrické světlo příklady

Elektrické světlo příklady Elektrické světlo příklady ZÁKLADNÍ POJMY SVĚTELNÉ TECHNIKY. Rovinný úhel (rad) = arc = a/r = a'/l (pro malé, zorné, úhly) a a' a arc / π = /36 (malým se rozumí r/a >3 až 5) r l. Prostorový úhel Ω = S/r

Více

Distribuované sledování paprsku

Distribuované sledování paprsku Distribuované sledování paprsku 1996-2015 Josef Pelikán, CGG MFF UK Praha http://cgg.mff.cuni.cz/~pepca/ pepca@cgg.mff.cuni.cz DistribRT 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 24 Distribuované

Více

Název a číslo materiálu VY_32_INOVACE_ICT_FYZIKA_OPTIKA

Název a číslo materiálu VY_32_INOVACE_ICT_FYZIKA_OPTIKA Název a číslo materiálu VY_32_INOVACE_ICT_FYZIKA_OPTIKA OPTIKA ZÁKLADNÍ POJMY Optika a její dělení Světlo jako elektromagnetické vlnění Šíření světla Odraz a lom světla Disperze (rozklad) světla OPTIKA

Více

Optika pro mikroskopii materiálů I

Optika pro mikroskopii materiálů I Optika pro mikroskopii materiálů I Jan.Machacek@vscht.cz Ústav skla a keramiky VŠCHT Praha +42-0- 22044-4151 Osnova přednášky Základní pojmy optiky Odraz a lom světla Interference, ohyb a rozlišení optických

Více

Geometrická optika. Vnímání a měření barev. světlo určitého spektrálního složení vyvolá po dopadu na sítnici oka v mozku subjektivní barevný vjem

Geometrická optika. Vnímání a měření barev. světlo určitého spektrálního složení vyvolá po dopadu na sítnici oka v mozku subjektivní barevný vjem Vnímání a měření barev světlo určitého spektrálního složení vyvolá po dopadu na sítnici oka v mozku subjektivní barevný vjem fyzikální charakteristika subjektivní vjem světelný tok subjektivní jas vlnová

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

Jana Dannhoferová Ústav informatiky, PEF MZLU

Jana Dannhoferová Ústav informatiky, PEF MZLU Počítačová grafika Křivky Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU Základní vlastnosti křivek křivka soustava parametrů nějaké rovnice, která je posléze generativně

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

Světlo jako elektromagnetické záření

Světlo jako elektromagnetické záření Světlo jako elektromagnetické záření Základní pojmy: Homogenní prostředí prostředí, jehož dané vlastnosti jsou ve všech místech v prostředí stejné. Izotropní prostředí prostředí, jehož dané vlastnosti

Více

Modelování blízkého pole soustavy dipólů

Modelování blízkého pole soustavy dipólů 1 Úvod Modelování blízkého pole soustavy dipólů J. Puskely, Z. Nováček Ústav radioelektroniky, Fakulta elektrotechniky a komunikačních technologií, VUT v Brně Purkyňova 118, 612 00 Brno Abstrakt Tento

Více

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Photon-Mapping Josef Pelikán CGG MFF UK Praha. Photon-Mapping 2009-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Photon-mapping 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 25 Základy Photon-mappingu

Více

Světlo x elmag. záření. základní principy

Světlo x elmag. záření. základní principy Světlo x elmag. záření základní principy Jak vzniká a co je to duha? Spektrum elmag. záření Viditelné 380 760 nm, UV 100 380 nm, IR 760 nm 1mm Spektrum elmag. záření Harmonická vlna Harmonická vlna E =

Více

Počítačová grafika Radiozita

Počítačová grafika Radiozita Počítačová grafika Radiozita V. Chalupecký chalupec@kmlinux.fjfi.cvut.cz Obsah 1 Literatura 1 2 Úvod 5 3 Radiometrie a fotometrie 6 3.1 Prostorový úhel.......................... 6 3.2 Zářivý tok.............................

Více

Počítačová grafika III Úvod

Počítačová grafika III Úvod Počítačová grafika III Úvod Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Syntéza obrazu (Rendering) Vytvoř obrázek z matematického popisu scény. Popis scény Geometrie Kde je jaký objekt ve scéně

Více

4. Napjatost v bodě tělesa

4. Napjatost v bodě tělesa p04 1 4. Napjatost v bodě tělesa Předpokládejme, že bod C je nebezpečným bodem tělesa a pro zabránění vzniku mezních stavů je m.j. třeba zaručit, že napětí v tomto bodě nepřesáhne definované mezní hodnoty.

Více

Počítačová grafika III Úvod

Počítačová grafika III Úvod Počítačová grafika III Úvod Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Syntéza obrazu (Rendering) Vytvoř obrázek z matematického popisu scény. Popis scény Geometrie Kde je jaký objekt ve scéně

Více

Přednáška č.14. Optika

Přednáška č.14. Optika Přednáška č.14 Optika Obsah základní pojmy odraz a lom světla disperze polarizace geometrická optika elektromagnetické záření Světlo = elektromagnetické vlnění o vlnové délce 390nm (fialové) až 790nm (červené)

Více

Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově 07_10_Zobrazování optickými soustavami 1

Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově 07_10_Zobrazování optickými soustavami 1 Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově 07_10_Zobrazování optickými soustavami 1 Ing. Jakub Ulmann Zobrazování optickými soustavami 1. Optické

Více

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: 1. 10. 2012. Číslo DUM: VY_32_INOVACE_20_FY_C

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: 1. 10. 2012. Číslo DUM: VY_32_INOVACE_20_FY_C Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: 1. 10. 2012 Číslo DUM: VY_32_INOVACE_20_FY_C Ročník: II. Fyzika Vzdělávací oblast: Přírodovědné vzdělávání Vzdělávací obor: Fyzika Tematický okruh:

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem 7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového

Více

A5M13VSO MĚŘENÍ INTENZITY A SPEKTRA SLUNEČNÍHO ZÁŘENÍ

A5M13VSO MĚŘENÍ INTENZITY A SPEKTRA SLUNEČNÍHO ZÁŘENÍ MĚŘENÍ INTENZITY A SPEKTRA SLUNEČNÍHO ZÁŘENÍ Zadání: 1) Pomocí pyranometru SG420, Light metru LX-1102 a měřiče intenzity záření Mini-KLA změřte intenzitu záření a homogenitu rozložení záření na povrchu

Více

Optika nauka o světle

Optika nauka o světle Optika nauka o světle 50_Světelný zdroj, šíření světla... 2 51_Stín, fáze Měsíce... 3 52_Zatmění Měsíce, zatmění Slunce... 3 53_Odraz světla... 4 54_Zobrazení předmětu rovinným zrcadlem... 4 55_Zobrazení

Více

VÝUKOVÝ SOFTWARE PRO ANALÝZU A VIZUALIZACI INTERFERENČNÍCH JEVŮ

VÝUKOVÝ SOFTWARE PRO ANALÝZU A VIZUALIZACI INTERFERENČNÍCH JEVŮ VÝUKOVÝ SOFTWARE PRO ANALÝZU A VIZUALIZACI INTERFERENČNÍCH JEVŮ P. Novák, J. Novák Katedra fyziky, Fakulta stavební, České vysoké učení technické v Praze Abstrakt V práci je popsán výukový software pro

Více

3.1 Laboratorní úlohy z osvětlovacích soustav

3.1 Laboratorní úlohy z osvětlovacích soustav Osvětlovací soustavy. Laboratorní cvičení 11 3.1 Laboratorní úlohy z osvětlovacích soustav 3.1.1 Měření odraznosti povrchů Cíl: Cílem laboratorní úlohy je porovnat spektrální a integrální odraznosti různých

Více

7. OSVĚTLENÍ. Cíl Po prostudování této kapitoly budete znát. Výklad. 7. Osvětlení

7. OSVĚTLENÍ. Cíl Po prostudování této kapitoly budete znát. Výklad. 7. Osvětlení 7. OSVĚTENÍ Cíl Po prostudování této kapitoly budete znát základní pojmy při práci se světlem charakteristické fyzikální vlastnosti světla důležité pro práci se světlem v počítačové grafice základní operace

Více

9 Prostorová grafika a modelování těles

9 Prostorová grafika a modelování těles 9 Prostorová grafika a modelování těles Studijní cíl Tento blok je věnován základům 3D grafiky. Jedná se především o vysvětlení principů vytváření modelů 3D objektů, jejich reprezentace v paměti počítače.

Více

Akustika. Rychlost zvukové vlny v v prostředí s hustotou ρ a modulem objemové pružnosti K

Akustika. Rychlost zvukové vlny v v prostředí s hustotou ρ a modulem objemové pružnosti K zvuk každé mechanické vlnění v látkovém prostředí, které je schopno vyvolat v lidském uchu sluchový vjem akustika zabývá se fyzikálními ději spojenými se vznikem zvukového vlnění, jeho šířením a vnímáním

Více

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1 SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1 (Souřadnicové výpočty 4, Orientace osnovy vodorovných směrů) 1. ročník bakalářského studia studijní program G studijní obor G doc. Ing. Jaromír Procházka, CSc. prosinec

Více

Odraz světla na rozhraní dvou optických prostředí

Odraz světla na rozhraní dvou optických prostředí Odraz světla na rozhraní dvou optických prostředí Může kulová nádoba naplněná vodou sloužit jako optická čočka? Exponát demonstruje zaostření světla procházejícího skrz vodní kulovou čočku. Pohyblivý světelný

Více

Měření osvětlení. 1. Proměřte průměrnou osvětlenost v různých místnostech v areálu školy.

Měření osvětlení. 1. Proměřte průměrnou osvětlenost v různých místnostech v areálu školy. Úloha č. 4 Měření osvětlení Úkoly měření: 1. Proměřte průměrnou osvětlenost v různých místnostech v areálu školy. 2. Hodnoty naměřených průměrných osvětleností v měřených místnostech podle bodu 1 porovnejte

Více

Jaký obraz vytvoří rovinné zrcadlo? Zdánlivý, vzpřímený, stejně velký. Jaký obraz vytvoří vypuklé zrcadlo? Zdánlivý, vzpřímený, zmenšený

Jaký obraz vytvoří rovinné zrcadlo? Zdánlivý, vzpřímený, stejně velký. Jaký obraz vytvoří vypuklé zrcadlo? Zdánlivý, vzpřímený, zmenšený Jan Olbrecht Jaký obraz vytvoří rovinné zrcadlo? Zdánlivý, vzpřímený, stejně velký Jaký obraz vytvoří vypuklé zrcadlo? Zdánlivý, vzpřímený, zmenšený Jaký typ lomu nastane při průchodu světla z opticky

Více

7 FYZIKÁLNÍ OPTIKA. Interference Ohyb Polarizace. Co je to ohyb? 27.2 Ohyb

7 FYZIKÁLNÍ OPTIKA. Interference Ohyb Polarizace. Co je to ohyb? 27.2 Ohyb 1 7 FYZIKÁLNÍ OPTIKA Interference Ohyb Polarizace Co je to ohyb? 27.2 Ohyb Ohyb vln je jev charakterizovaný odchylkou od přímočarého šíření vlnění v témže prostředí. Ve skutečnosti se nejedná o nový jev

Více

Fyzikální korespondenční seminář UK MFF 22. II. S

Fyzikální korespondenční seminář UK MFF  22. II. S Fzikální korespondenční seminář UK MFF http://fkosmffcunicz II S ročník, úloha II S Young a vlnová povaha světla (5 bodů; průměr,50; řešilo 6 studentů) a) Jaký tvar interferenčních proužků na stínítku

Více

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování problematika geometrického modelování manifold, Eulerova rovnost základní typy modelů hranový model stěnový model objemový model datové reprezentace modelů základní metody geometrického modelování těleso

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

FYZIKA II. Marek Procházka 1. Přednáška

FYZIKA II. Marek Procházka 1. Přednáška FYZIKA II Marek Procházka 1. Přednáška Historie Dělení optiky Základní pojmy Reflexe (odraz) Refrakce (lom) jevy na rozhraní dvou prostředí o různém indexu lomu. Disperze (rozklad) prostorové oddělení

Více

Návod k použití softwaru Solar Viewer 3D

Návod k použití softwaru Solar Viewer 3D Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a

Více

Její uplatnění lze nalézt v těchto oblastech zkoumání:

Její uplatnění lze nalézt v těchto oblastech zkoumání: RADIOMETRIE, FOTOMETRIE http://cs.wikipedia.org/wiki/kandela http://www.gymhol.cz/projekt/fyzika/12_energie/12_energie.htm M. Vrbová, H. Jelínková, P. Gavrilov. Úvod do laserové techniky, skripta ČVUT,

Více

3.2.5 Odraz, lom a ohyb vlnění

3.2.5 Odraz, lom a ohyb vlnění 3..5 Odraz, lom a ohyb vlnění Předpoklady: 304 Odraz a lom vlnění na rozhranní dvou prostředí s různou rychlostí šíření http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=16.0 Rovinná vlna dopadá šikmo

Více

Učební texty z fyziky 2. A OPTIKA. Obor zabývající se poznatky o a zákonitostmi světelných jevů. V posledních letech rozvoj optiky vynález a využití

Učební texty z fyziky 2. A OPTIKA. Obor zabývající se poznatky o a zákonitostmi světelných jevů. V posledních letech rozvoj optiky vynález a využití OPTIKA Obor zabývající se poznatky o a zákonitostmi světelných jevů Světlo je vlnění V posledních letech rozvoj optiky vynález a využití Podstata světla Světlo je elektromagnetické vlnění Zdrojem světla

Více

Maticová optika. Lenka Přibylová. 24. října 2010

Maticová optika. Lenka Přibylová. 24. října 2010 Maticová optika Lenka Přibylová 24. října 2010 Maticová optika Při průchodu světla optickými přístroji dochází k transformaci světelného paprsku, vlnový vektor mění úhel, který svírá s optickou osou, paprsek

Více

Radiometrie se zabývá objektivním a fotometrie subjektivním měřením světla.

Radiometrie se zabývá objektivním a fotometrie subjektivním měřením světla. 12. Radiometrie a fotometrie 12.1. Základní optické schéma 12.2. Zdroj světla 12.3. Objekt a prostředí 12.4. Detektory světla 12.5. Radiometrie 12.6. Fotometrie 12.7. Oko 12.8. Měření barev 12. Radiometrie

Více

Osvětlování a stínování

Osvětlování a stínování Osvětlování a stínování Pavel Strachota FJFI ČVUT v Praze 21. dubna 2010 Obsah 1 Vlastnosti osvětlovacích modelů 2 Světelné zdroje a stíny 3 Phongův osvětlovací model 4 Stínování 5 Mlha Obsah 1 Vlastnosti

Více

Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát

Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát Michal Veselý, 00 Základní části fotografického aparátu tedy jsou: tělo přístroje objektiv Pochopení funkce běžných objektivů usnadní zjednodušená představa, že objektiv jako celek se chová stejně jako

Více

UMĚLÉ OSVĚTLENÍ V BUDOVÁCH. Ing. Bohumír Garlík, CSc. Katedra TZB

UMĚLÉ OSVĚTLENÍ V BUDOVÁCH. Ing. Bohumír Garlík, CSc. Katedra TZB UMĚLÉ OSVĚTLENÍ V BUDOVÁCH Ing. Bohumír Garlík, CSc. Katedra TZB Praha 2008 1. PŘEDNÁŠKA 2. Měrné jednotky používané ve světelné technice: Měrové jednotky rovinného úhlu Rovinný úhel různoběžky: α je ten,

Více

Jednou z nejstarších partií fyziky je nauka o světle tj. optika. Existovaly dva názory na fyzikální podstatu světla:

Jednou z nejstarších partií fyziky je nauka o světle tj. optika. Existovaly dva názory na fyzikální podstatu světla: Optika Jednou z nejstarších partií fyziky je nauka o světle tj. optika. Existovaly dva názory na fyzikální podstatu světla: Světlo je proud částic (I. Newton, 1704). Ale tento částicový model nebyl schopen

Více

ZÁKLADNÍ FOTOMETRICKÉ VELIČINY

ZÁKLADNÍ FOTOMETRICKÉ VELIČINY ZÁKLADNÍ FOTOMETRICKÉ VELIČINY Ing. Petr Žák VÝVOJ ČLOVĚKA vývoj člověka přizpůsobení okolnímu prostředí (adaptace) příjem informací o okolním prostředí smyslové orgány rozhraní pro příjem informací SMYSLOVÉ

Více

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchický model 1995-2013 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchie v 3D modelování kompozice zdola-nahoru složitější objekty se sestavují

Více

Počítačová grafika RHINOCEROS

Počítačová grafika RHINOCEROS Počítačová grafika RHINOCEROS Ing. Zuzana Benáková Základní otázkou grafických programů je způsob zobrazení určitého tvaru. Existují dva základní způsoby prezentace 3D modelů v počítači. První využívá

Více

6. Vektorový počet Studijní text. 6. Vektorový počet

6. Vektorový počet Studijní text. 6. Vektorový počet 6. Vektorový počet Budeme se pohybovat v prostoru R n, což je kartézská mocnina množiny reálných čísel R; R n = R R. Obvykle nám bude stačit omezení na případy n = 1, 2, 3; nicméně teorie je platná obecně.

Více

Gymnázium Jiřího Ortena, Kutná Hora

Gymnázium Jiřího Ortena, Kutná Hora Předmět: Cvičení z matematiky Náplň: Systematizace a prohloubení učiva matematiky Třída: 4. ročník Počet hodin: 2 Pomůcky: Učebna s dataprojektorem, PC, grafický program, tabulkový procesor Číselné obory

Více

9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy. Vyučující: Ing. Jan Pacina, Ph.D.

9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy. Vyučující: Ing. Jan Pacina, Ph.D. 9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Lehký úvod Digitální modely terénu jsou dnes v geoinformačních systémech

Více

ODRAZ A LOM SVĚTLA. Mgr. Jan Ptáčník - GJVJ - Septima - Fyzika - Optika

ODRAZ A LOM SVĚTLA. Mgr. Jan Ptáčník - GJVJ - Septima - Fyzika - Optika ODRAZ A LOM SVĚTLA Mgr. Jan Ptáčník - GJVJ - Septima - Fyzika - Optika Odraz světla Vychází z Huygensova principu Zákon odrazu: Úhel odrazu vlnění je roven úhlu dopadu. Obvykle provádíme konstrukci pomocí

Více

EXPERIMENTÁLNÍ METODY I 11. Měření světelných veličin

EXPERIMENTÁLNÍ METODY I 11. Měření světelných veličin FSI UT v Brně, Energetický ústav Odbor termomechaniky a techniky prostředí prof. Ing. Milan Pavelek, CSc. EXPERIMENTÁLNÍ METODY I 11. Měření světelných veličin OSNOA 11. KAPITOLY Úvod do měření světelných

Více

Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora

Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora Předmět: Náplň: Třída: Počet hodin: Pomůcky: Cvičení z matematiky Systematizace a prohloubení učiva matematiky 4. ročník 2 hodiny Učebna s dataprojektorem, PC, grafický program, tabulkový procesor Číselné

Více

2. Vlnění. π T. t T. x λ. Machův vlnostroj

2. Vlnění. π T. t T. x λ. Machův vlnostroj 2. Vlnění 2.1 Vlnění zvláštní případ pohybu prostředí Vlnění je pohyb v soustavě velkého počtu částic navzájem vázaných, kdy částice kmitají kolem svých rovnovážných poloh. Druhy vlnění: vlnění příčné

Více

Zadání. Pracovní úkol. Pomůcky

Zadání. Pracovní úkol. Pomůcky Pracovní úkol Zadání 1. Najděte směr snadného průchodu polarizátoru užívaného v aparatuře. 2. Ověřte, že zdroj světla je polarizován kolmo k vodorovné rovině. 3. Na přiložených vzorcích proměřte závislost

Více

b) Maximální velikost zrychlení automobilu, nemají-li kola prokluzovat, je a = f g. Automobil se bude rozjíždět po dobu t = v 0 fg = mfgv 0

b) Maximální velikost zrychlení automobilu, nemají-li kola prokluzovat, je a = f g. Automobil se bude rozjíždět po dobu t = v 0 fg = mfgv 0 Řešení úloh. kola 58. ročníku fyzikální olympiády. Kategorie A Autoři úloh: J. Thomas, 5, 6, 7), J. Jírů 2,, 4).a) Napíšeme si pohybové rovnice, ze kterých vyjádříme dobu jízdy a zrychlení automobilu A:

Více

metodou Monte Carlo J. Matěna, Gymnázium Českolipská, Praha

metodou Monte Carlo J. Matěna, Gymnázium Českolipská, Praha Výpočet obsahu plošných obrazců metodou Monte Carlo J. Löwit, Gymnázium Českolipská, Praha jakub.lowit@gmail.com J. Matěna, Gymnázium Českolipská, Praha matenajakub@gmail.com J. Novotná, Gymnázium, Chomutov

Více

SBÍRKA ŘEŠENÝCH FYZIKÁLNÍCH ÚLOH

SBÍRKA ŘEŠENÝCH FYZIKÁLNÍCH ÚLOH SBÍRKA ŘEŠENÝCH FYZIKÁLNÍCH ÚLOH MECHANIKA MOLEKULOVÁ FYZIKA A TERMIKA ELEKTŘINA A MAGNETISMUS KMITÁNÍ A VLNĚNÍ OPTIKA FYZIKA MIKROSVĚTA ODRAZ A LOM SVĚTLA 1) Index lomu vody je 1,33. Jakou rychlost má

Více

Kristýna Bémová. 13. prosince 2007

Kristýna Bémová. 13. prosince 2007 Křivky v počítačové grafice Kristýna Bémová Univerzita Karlova v Praze 13. prosince 2007 Kristýna Bémová (MFF UK) Křivky v počítačové grafice 13. prosince 2007 1 / 36 Pojmy - křivky a jejich parametrické

Více

2 (3) kde S je plocha zdroje. Protože jas zdroje není závislý na směru, lze vztah (5) přepsat do tvaru:

2 (3) kde S je plocha zdroje. Protože jas zdroje není závislý na směru, lze vztah (5) přepsat do tvaru: Pracovní úkol 1. Pomocí fotometrického luxmetru okalibrujte normální žárovku (stanovte její svítivost). Pro určení svítivosti normální žárovky (a její chyby) vyneste do grafu závislost osvětlení na převrácené

Více

Fyzika aplikovaná v geodézii

Fyzika aplikovaná v geodézii Průmyslová střední škola Letohrad Vladimír Stránský Fyzika aplikovaná v geodézii 1 2014 Tento projekt je realizovaný v rámci OP VK a je financovaný ze Strukturálních fondů EU (ESF) a ze státního rozpočtu

Více

Počítačová grafika III Světlo, Radiometrie. Jaroslav Křivánek, MFF UK

Počítačová grafika III Světlo, Radiometrie. Jaroslav Křivánek, MFF UK Počítačová grafika III Světlo, Radiometrie Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Syntéza obrazu (Rendering) Vytvoř obrázek z matematického popisu scény. 2 Fotorealistická syntéza obrazu

Více

Matematika I 12a Euklidovská geometrie

Matematika I 12a Euklidovská geometrie Matematika I 12a Euklidovská geometrie Jan Slovák Masarykova univerzita Fakulta informatiky 3. 12. 2012 Obsah přednášky 1 Euklidovské prostory 2 Odchylky podprostorů 3 Standardní úlohy 4 Objemy Plán přednášky

Více

Laboratorní úloha č. 7 Difrakce na mikro-objektech

Laboratorní úloha č. 7 Difrakce na mikro-objektech Laboratorní úloha č. 7 Difrakce na mikro-objektech Úkoly měření: 1. Odhad rozměrů mikro-objektů z informací uváděných výrobcem. 2. Záznam difrakčních obrazců (difraktogramů) vzniklých interakcí laserového

Více

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika) Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika) Kartézská soustava souřadnic je dána počátkem O a uspořádanou trojicí bodů E x,

Více

Příklad 3 (25 bodů) Jakou rychlost musí mít difrakčním úhlu 120? -částice, abychom pozorovali difrakční maximum od rovin d hkl = 0,82 Å na

Příklad 3 (25 bodů) Jakou rychlost musí mít difrakčním úhlu 120? -částice, abychom pozorovali difrakční maximum od rovin d hkl = 0,82 Å na Přijímací zkouška z fyziky 01 - Nav. Mgr. - varianta A Příklad 1 (5 bodů) Koule o poloměru R=10 cm leží na vodorovné rovině. Z jejího nejvyššího bodu vypustíme s nulovou počáteční rychlostí bod o hmotností

Více

NUMERICKÉ MODELOVÁNÍ ZDROJŮ SVĚTLA

NUMERICKÉ MODELOVÁNÍ ZDROJŮ SVĚTLA VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

Více

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/ Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 Zrcadla Zobrazení zrcadlem Zrcadla jistě všichni znáte z každodenního života ráno se do něj v koupelně díváte,

Více

Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje

Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje Optické zobrazování Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje Základní pojmy Optické zobrazování - pomocí paprskové (geometrické) optiky - využívá model světelného

Více

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009.

PRAKTIKUM III. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009. Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK PRAKTIKUM III Úloha č. XXVI Název: Vláknová optika Pracoval: Jan Polášek stud. skup. 11 dne 23.4.2009 Odevzdal dne: Možný počet bodů

Více

Počítačová grafika III Světlo, Radiometrie. Jaroslav Křivánek, MFF UK

Počítačová grafika III Světlo, Radiometrie. Jaroslav Křivánek, MFF UK Počítačová grafika III Světlo, Radiometrie Jaroslav Křivánek, MFF UK Jaroslav.Krivanek@mff.cuni.cz Syntéza obrazu (Rendering) Vytvoř obrázek z matematického popisu scény. Fotorealistická syntéza obrazu

Více

plochy oddělí. Dále určete vzdálenost d mezi místem jeho dopadu na

plochy oddělí. Dále určete vzdálenost d mezi místem jeho dopadu na Přijímací zkouška z fyziky 01 - Nav. Mgr. - varianta A Příklad 1 (5 bodů) Koule o poloměru R=10 cm leží na vodorovné rovině. Z jejího nejvyššího bodu vypustíme s nulovou počáteční rychlostí bod o hmotností

Více

Úvod do počítačové grafiky

Úvod do počítačové grafiky Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev

Více

10.1 Šíření světla, Fermatův princip, refrakce

10.1 Šíření světla, Fermatův princip, refrakce 10 Refrakce 10.1 Šíření světla, Fermatův princip, refrakce 10.2 Refrakce - dělení 10.3 Způsoby posuzování a určování vlivu refrakce 10.4 Refrakční koeficient 10.5 Zjednodušený model profesora Böhma 10.6

Více

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D. Generování pseudonáhodných čísel při simulaci Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky V simulačních modelech se velice často vyskytují náhodné proměnné. Proto se budeme zabývat otázkou, jak při simulaci

Více

19 Eukleidovský bodový prostor

19 Eukleidovský bodový prostor 19 Eukleidovský bodový prostor Eukleidovským bodovým prostorem rozumíme afinní bodový prostor, na jehož zaměření je definován skalární součin. Víme, že pomocí skalárního součinu jsou definovány pojmy norma

Více

Vytyčení polohy bodu polární metodou

Vytyčení polohy bodu polární metodou Obsah Vytyčení polohy bodu polární metodou... 2 1 Vliv měření na přesnost souřadnic... 3 2 Vliv měření na polohovou a souřadnicovou směrodatnou odchylku... 4 3 Vliv podkladu na přesnost souřadnic... 5

Více

9. Geometrická optika

9. Geometrická optika 9. Geometrická optika 1 Popis pomocí světelných paprsků těmi se šíří energie a informace, zanedbává vlnové vlastnosti světla světelný paprsek = křivka (často přímka), podél níž se šíří světlo, jeho energie

Více