Martin Růžička. Návrh a vyhodnocení uživatelského rozhraní pro osvětlování filmových scén

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

Download "Martin Růžička. Návrh a vyhodnocení uživatelského rozhraní pro osvětlování filmových scén"

Transkript

1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Martin Růžička Návrh a vyhodnocení uživatelského rozhraní pro osvětlování filmových scén Kabinet software a výuky informatiky Vedoucí diplomové práce: Studijní program: Studijní obor: Ing. Jaroslav Krivanek, Ph.D. Informatika Softwarové systémy Praha 2011

2 Na tomto místě bych rád poděkoval svojí rodině za podporu, které se mi od nich během celého studia dostávalo. Dále bych chtěl poděkovat vedoucímu diplomové práce Ing. Jaroslavu Křivánkovi, PhD. za možnost spolupracovat sním na tomto zajímavém projektu.

3 Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona v platném znění, zejména skutečnost, že Univerzita Karlova v Praze má právo na uzavření licenční smlouvy o použití této práce jako školního díla podle 60 odst. 1 autorského zákona. V Praze dne... Podpis autora

4 Název práce: Návrh a vyhodnocení uživatelského rozhraní pro osvětlování filmových scén Autor: Martin Růžička Katedra: Kabinet software a výuky informatiky Vedoucí diplomové práce: Ing. Jaroslav Krivanek, Ph.D. Abstrakt: Tato diplomová práce se zabývá globálním osvětlením a celkovým procesem nasvětlování předpřipravených scén. Za tímto účelem byl napsán program pro práci se světlem. Ten dokáže pracovat s přímým i nepřímým osvětlením v interaktivním čase. Jednoduché a přehledné uživatelské rozhraní umožňuje přidávat, odebírat a měnit nastavení světel. Podporováno je několik druhů plošných i bodových světelných zdrojů. V průběhu celé práce přitom program neustále zobrazuje aktuální osvětlení ve scéně. Za pomoci této aplikace bude dále provedena série několika různých experimentů. Zde budeme zkoumat, jakým způsobem uživatelé během osvětlování postupují, jak vnímají vlastnosti globálního osvětlení, možnosti jeho ovládání a jeho srovnání s obyčejným přímým osvětlením. Klíčová slova: globální osvětlení, uživatelské rozhraní, uživatelská studie Title: Design and evaluation of a user inteface for cinematic lighting Author: Martin Růžička Department: Department of Software and Computer Science Education Supervisor: Ing. Jaroslav Krivanek, Ph.D. Abstract: This diploma thesis deals with global illumination and generally with the process of illumination of prepared scenes. A program for illumination management was written for this purpose. It can manage both direct and indirect illumination in interactive time. Simple and comfortable user interface allows for addition, deletion and change in light settings. Different types of both point and area lights are supported. In the course of all work, the program displays current illumination of the scene. With the help of this application, a series of different experiments will be carried out. We will explore the way users work during illumination, the way they perceive different properties of global illumination, various options of its control and its comparison with common direct illumination. Keywords: global illumination, user interface, user study

5 Obsah Úvod Význam světla Metody osvětlení Interaktivní metody Cíle práce Struktura práce Globální osvětlení Radiometrické veličiny Zářivý tok Intenzita ozáření Radiance Dvousměrová odrazová distribuční funkce Zobrazovací rovnice Formulace přes polokouli Formulace přes plochu Formulace separující přímé a nepřímé osvětlení Přímé osvětlení Phongův světelný model Výpočet viditelnosti Nepřímé osvětlení Direct-to-Indirect Transfer Fáze přípravy Výhledové vzorky Sběrné vzorky Přenosová matice Fáze výpočtu Uživatelské rozhraní Systém světel Typy světel Omni light Spot light Directional light

6 Area light Další parametry světel Barva Intenzita Útlum Směrovost Manipulace se světly Softimage XSI Maya Posun Otáčení Škálování Lokální a globální souřadný systém Zobrazovací část Okno s globálním osvětlením Pracovní okno Kamera Ovládací panel Rozvržení komponent rozhraní Editace undo & redo Nastavení uživatelského rozhraní Uživatelská studie Motivace Návrh a cíle Experiment Uživatelé Rozhraní Scény Zátiší Orion scéna Průběh Práce s předlohou Volný režim Otevřený režim Výsledky Implementace Vykreslovaní pracovního okna Proces vykreslovaní Render třídy AbstractRender Render UiRender Vertex Buffer Object správce

7 5.1.4 Textury Materiály Načítání dat ze souboru OBJ MTL Model Kamera Proces zpracování a zobrazení geometrie UML diagram vykreslování Okno s globálním osvětlením Měkké stíny Stíny pomocí DTIT algoritmu Stínové mapy Ray casting stíny Výhledové a sběrné vzorky Výpočet přímého osvětlení Cachování světelných zdrojů Progresivní stíny Výpočet nepřímého osvětlení Waveletová transformace Tok programu Implementace světel GUI AbstractAPP App App Porovnání App4 a App UiObject Řízení aplikace Logování průběhu práce Ukládání obrázků Záznam pracovního postupu Tvorba záložních souborů Undo & Redo Matematické knihovny Matice Vektor Bod Srovnání tříd Vektor a Bod Závěr Shrnutí práce Směr další práce Obsah DVD 79 6

8 Slovníček 80 Příloha A Hardwarové požadavky pro spuštění Instalace Qt knihovna Cg knihovna CUDA knihovna Kompilace Spuštění Příloha B Parametry uživatelského rozhraní Parametry konfiguračního souboru Kamera Model Materiál Světlo Seznam použité literatury 89 7

9 Seznam obrázků 2.1 BRDF Přímé osvětlení Phongův světelný model Měkké stíny Nepřímé osvětlení Výhledové vzorky Sběrné vzorky Přímé osvětlení na sběrných vzorcích Přímé osvětlení na výhledových vzorcích Nepřímé osvětlení na výhledových vzorcích DTIT algoritmus Všesměrové bodové světlo Reflektorové světlo Směrové plošné světlo Obecné plošné světlo HSV kruh HS diagram Translační ikona Rotační ikona Škálovací ikona Souřadné systémy Ovládání kamery Rozvržení uživatelského rozhraní Screenshot aplikace Rozhraní uživatelské studie Scéna Zátiší Scéna Orion Referenční předloha scény Orion Počáteční stav scény Orion Abstraktní předloha scény Zátiší Iniciální stav scény Zátiší Kreslící vrstva UiRender ukázka Vertex Buffer Object Texture manager

10 5.36 CAL soubor Vztah mezi OBJ a MTL soubory OBJ a MTL soubory ModelOBJ třída UML diagram třídy Model Třída Camera UML diagram vykreslování DTIT stíny Detail DTIT stínu Stínové mapy Detail stínové mapy Ray tracing stíny Detail ray tracing stínů Aproximace měkkých stínů Kvalitní měkké stíny Detail aproximovaných měkkých stínů Detail měkkých stínů Násobení přenosovou maticí Dyadická síť: Haarova transformace Implementace waveletovy transformace Diagram výpočtu globálního osvětlení UML diagram světel AbstractAPP SharedData UiObject Řízení aplikace FileLogger třída Logování obrázků Logování pracovního postupu Undo & redo

11 Úvod 1.1 Význam světla Zrak je náš hlavní smysl. Člověk jeho prostřednictvím přijímá až 80% veškerých informací. Orgánu, který nám tento smysl zprostředkovává, říkáme oko. Fotoreceptory obsažené v oku jsou citlivé na světlo a vyvolávají vzruchy, které náš mozek zpracovává a následně interpretuje. To nám ve výsledku umožňuje vidět. Odmyslíme-li chemické a biologické procesy probíhající v naší hlavě při zpracování těchto signálů, stane se pro nás fundamentální právě světelné záření. V závislosti na intenzitě a rozložení světla můžeme rozpoznávat různé tvary, vzdálenosti, povrchy a barvy objektů v našem okolí. Z fyzikálního pohledu můžeme na světlo nahlížet dvěma odlišnými způsoby: jako na elektromagnetické vlnění nebo jako na proud fotonů. Jejich význam dobře shrnuje následující citace. Světlo má dualistickou povahu, chová se jako vlny i jako částice. Vlnový popis je vhodný pro vysvětlení jevů jako je disperze, difrakce a interference světla. Částicovým popisem se pak může vysvětlit odraz světla, interakce s drsným povrchem materiálu a jiné [6]. 1.2 Metody osvětlení V předchozí části jsme naznačili význam světla. Z pohledu počítačové grafiky představuje výpočet osvětlení velkou výzvu a od počátku je mu věnována velká pozornost. Výpočet osvětlení je časově velmi náročný. Proto se metody jeho výpočtu přizpůsobovaly a měnily společně se zvyšujícím se výkonem počítačů. V počátcích se výpočet omezoval pouze na přímé osvětlení. Tyto modely byly postupně zdokonalovány a rozšiřovány o nejrůznější náhražky a aproximace nepřímého osvětlení, až k vlastnímu globálnímu osvětlení. Po celou dobu se přitom potýkáme se vzájemně protichůdnými cíli: přesnost osvětlení a rychlost jeho výpočtu. Volba ideálního poměru závisí na konkrétních potřebách aplikace. My se v této práci zaměříme na interaktivní aplikace. 10

12 1.3 Interaktivní metody Interaktivními metodami máme na mysli takové metody, které dokáží fungovat v téměř reálném čase. Konkrétně v naší aplikaci nesmí doba výpočtu osvětlení trvat déle než desítky, maximálně stovky milisekund. 1 Jedním z oblíbených a používaných způsobů aproximace osvětlení je kombinace klíčových a výplňových světel (tzv. key & fill lights). Klíčové světlo je zjednodušený světelný zdroj, u kterého ignorujeme jeho sekundární (odražené) paprsky. Výplňové světlo se naopak snaží napodobovat sekundární, rozptýlené světlo. Nevrhá proto stíny ani odlesky, jinak se však chová stejně jako primární světelný zdroj. Hlavní výhoda této metody spočívá ve výpočetní nenáročnosti, což umožnilo její praktické použití i před příchodem více jádrových procesorů a výkonných grafických karet. Uvedený způsob také poskytuje velkou volnost při nasvětlování. Tím umožňuje dosáhnout kontrastních kompozic světel a stínů. Toho se s oblibou využívá například u animovaných CG filmů. Největším problémem uvedeného přístupu je však potřebná zručnost a zkušenosti pro dosažení uvěřitelného nasvětlení scény. To je i důvod, proč je tato metoda často nepraktická a jsou potřeba i jiné osvětlovací metody. Na straně druhé stojí metody počítající plnohodnotné globální osvětlení. Hlavní doménou těchto algoritmů byly do nedávna především vysoce kvalitní off-line výpočty osvětlení a pro interaktivní práci byly v podstatě nepoužitelné. V posledních letech však začínají být tyto algoritmy velmi populární a to zejména v souvislosti s novými možnostmi moderních grafických karet. Ty nám umožňují za určitých okolností dosahovat interaktivních rychlostí. Tyto metody automaticky počítají kompletní osvětlení scény a uživateli tak při nasvětlování významným způsobem usnadňují práci v porovnání s dřívějšími způsoby. Zásadní nevýhodou je především vysoká výpočetní náročnost a odtud plynoucí důsledky. Určitou nevýhodou může být také celkově nižší kontrola nad světelnou kompozicí. 1.4 Cíle práce Tato diplomová práce vznikala jako součást skupinového projektu, který si kladl za cíl navrhnout a implementovat aplikaci pro práci s globálním osvětlením. Náš program při spuštění načte geometrii scény a seznam použitých světelných zdrojů z externího souboru. Prostřednictvím uživatelského rozhraní umožní aplikace uživateli přidávat i odebírat světelné zdroje a měnit jejich parametry. Po celou dobu práce přitom uživatel uvidí aktuální osvětlení scény. Aplikace bude postavena na výše zmíněných metodách osvětlení. To zahrnuje algoritmy pro výpočet přímého a nepřímého osvětlení, pracující v interaktivním čase. Podporovány budou plošné i bodové světelné zdroje. To sebou nese i nutnou implementaci měkkých a ostrých stínů. Výsledný program tak nabídne kombinaci klíčových a výplňových světel společně s možnostmi plnohodnotného globálního osvětlení. Za pomoci této aplikace bude dále provedena studie uživatelských preferencí při osvětlování předpřipravených scén. Zde se budeme 1 Rychlost aplikace by se ideálně měla držet na hranici kolem FPS. 11

13 snažit zjistit, jakým způsobem uživatelé postupují při práci se světlem. Pokusíme se zodpovědět, jaké metody uživatelé upřednostňují v různých situacích, jak vnímají vlastnosti nepřímého osvětlení, kdy preferují pouze přímé osvětlení před plnohodnotným globálním osvětlením a jak během nasvětlování využívají systému klíčových a výplňových světel. Velká pozornost zde přitom musí být věnována objektivnímu návrhu celého experimentu. Proto se studie se zaměří na uživatele bez předchozích zkušeností s nasvětlováním scén. S ohledem na navazující studii bude důraz kladen na jednoduché a intuitivní ovládání celé aplikace. 1.5 Struktura práce Celá práce je rozdělena do několika tématických kapitol. Kapitola Globální osvětlení se věnuje problematice osvětlení z pohledu teorie. Zavádí nutnou terminologii, fyzikální veličiny, vztahy a způsoby pro výpočet osvětlení. V kapitole Uživatelské rozhraní je popsán proces návrhu a výsledné možnosti uživatelského rozhraní aplikace. Následující kapitola je věnována vlastní uživatelské studii. V poslední kapitole jsou popsány některé bližší podrobnosti z implementace programu. Vzhledem ke skupinové povaze celého projektu bude v textu potřeba zřetelně odlišovat vlastní práci autora od zbytku pracovní skupiny. Na součásti projektu, na kterých autor přímo nespolupracoval, proto bude vždy explicitně upozorněno. 12

14 Globální osvětlení Pojmem Globální osvětlení označujeme algoritmy počítající fyzikálně korektní rozložení světla ve scéně. V této kapitole nejprve popíšeme fundamentální veličiny a principy výpočtu Globálního osvětlení a poté přistoupíme ke konkretním algoritmům, se kterými budeme dále pracovat. 2.1 Radiometrické veličiny Na úvod v krátkosti zmíníme základní pojmy z radiometrie se kterými pak budeme dále pracovat. Další informace je možné nalézt například v [1] nebo [4]. České názvosloví bylo částečně převzato z prací [2] a [3] Zářivý tok Základní veličinou radiometrie je zářivý tok (radiant flux). Zářivý tok vyjadřuje množství přenesené energie Q za jednotku času t, značit jej budeme písmenem Φ a jeho jednotkou je watt W Intenzita ozáření Φ = dq dt Intenzita ozáření (irradiance) vyjadřuje množství zářivého toku Φ na jednotku plochy A. Jednotkou intenzita ozáření je W/m 2, značíme jí písmenem E a formálně jí definujeme následovně: E = dφ da. 13

15 2.1.3 Radiance Radiance je množství zářivého toku na jednotku plochy promítnuté ve směru paprsku A a prostorového úhlu ω. Jednotkou je W/(sr m 2 ) a označuje se písmenem L. L = d2 Φ da dω = d 2 Φ da cos θ dω Radiance je nejdůležitější radiometrická veličina a typicky myslíme právě jí, mluvímeli bez bližší specifikace o světle nebo osvětlení. Je tomu tak zejména z následujících dvou důvodů. Ty jsou volně citovaným překladem z [1]. 1. Hodnota radiance se podél směru šíření nemění. 2. Odezva na senzoru je přímo úměrná hodnotě do něj dopadající radiance. 2.2 Dvousměrová odrazová distribuční funkce Dvousměrová odrazová distribuční funkce je český překlad převzatý z [6] pro Bidirectional reflectance distribution function, zkráceně BRDF [35]. Je to funkce popisující odrazové vlastnosti na povrchu materiálu. Značit ji budeme f r (x, Ψ Θ) a formálně ji definujeme jako: f r (x, Ψ Θ) = dl(x Θ) de(x Ψ) Každá takto definovaná funkce navíc musí splňovat následující podmínky: kde: 1. f r (x, Θ Ψ) = f r (x, Ψ Θ) (tzv. Helmholtzův princip reciprocity) 2. Ψ, x : Ω x f r (x, Ψ Θ) cos(n x, Θ) dω θ 1 (tzv. Zákon o zachování energie). x je bod na povrchu Θ je odchozí směr Ψ je příchozí směr N x je vektor kolmý na plochu v bodě x cos(n x, Ψ) je funkce počítající kosinus úhlu, který svírá normála plochy v bodě x s vektorem určeným směrem Ψ. 14

16 Obrázek 2.1: Dvousměrová odrazová distribuční funkce 2.3 Zobrazovací rovnice Globální osvětlení ve scéně vyjadřuje tzv. zobrazovací rovnice (rendering equation). Ta byla poprvé publikována v práci [5]. Platnost zobrazovací rovnice je podmíněná následujícími dvěma zjednodušeními: 1. přenos světla probíhá bez účasti okolního prostředí 2. ustálený světelný stav nastává okamžitě S ohledem na velikost našich scén a rychlost šíření světla jsou však tato zjednodušení zanedbatelná a dále je budeme ignorovat. Následující vztahy a notace použité v této podkapitole jsou, v lehce pozměněné verzi, převzaty a citovány z knihy [7]. Dříve, než formálně definujeme zobrazovací rovnici je potřeba vysvětlit značení, které v této souvislosti použijeme. L e (x Θ) značí vyzářenou (emitted) radianci z bodu x ve směru Θ. L r (x Θ) je odražená (reflected) radiance z bodu x ve směru Θ. Pomocí L(x Θ) budeme značit celkovou odchozí radianci z bodu x ve směru Θ. Obrácenou šipkou, tedy L(x Θ) naopak označujeme příchozí radianci v bodě x ze směru Θ. Nyní můžeme konečně začít s popisem vlastní zobrazovací rovnice. Celkovou radianci v každém bodě a směru můžeme vždy rozložit na následující rovnici. L(x Θ) = L e (x Θ) + L r (x Θ) Z uvedeného vztahu budeme dále vycházet v následujících částech. 15

17 2.3.1 Formulace přes polokouli Zobrazovací rovnici rozepíšeme nejprve pomocí formulace přes polokouli (hemispherical formulation). L(x Θ) = L e (x Θ) + L r (x Θ) L r (x Θ) = f r (x, Ψ Θ) L(x Ψ) cos(n x, Ψ) dω Ψ Ω x L(x Θ) = L e (x Θ) + f r (x, Ψ Θ) L(x Ψ) cos(n x, Ψ) dω Ψ Ω x Formulace přes plochu Jiný způsob zápisu používá tzv. formulaci přes plochu (area formulation): L(x Θ) = L e (x Θ) + L r (x Θ) L r (x Θ) = A f r (x, Ψ Θ) L(y Ψ) V (x, y) cos(n x, Ψ) cos(n y, Ψ) r xy 2 da y L(x Θ) = L e (x Θ)+ f r (x, Ψ Θ) L(y Ψ) V (x, y) cos(n x, Ψ) cos(n y, Ψ) A r 2 xy A je plocha scény, přes kterou integrujeme, r xy 2 značí vzdálenost bodů x, y v Eukleidovském prostoru a V (x, y) je funkce viditelnosti definovaná následovně: da y { 1 když jsou body x a y vzájemně viditelné x, y A : V (x, y) = 0 v ostatních případech Formulace separující přímé a nepřímé osvětlení Zobrazovací rovnici lze vyjádřit také separací přímého a nepřímého osvětlení. Tento přístup je kombinací obou předchozích metod popsaných v předchozích sekcích. L(x Θ) = L e (x Θ) + L r (x Θ) 16

18 L r (x Θ) = L direct (x Θ) + L indirect (x Θ) L direct (x Θ) = A f r (x, xy Θ) L e (y yx) V (x, y) cos(n x, xy) cos(n y, yx) r xy 2 da y L indirect (x Θ) = f r (x, Ψ Θ) L r (x Ψ) cos(n x, Ψ) dω Ψ Ω x Zde uvedené rovnice nám umožňují počítat přímé a nepřímé osvětlení odděleně a různými způsoby. Tento přístup je výhodný zejména kvůli odlišné povaze přímého a odraženého světla. Mezitím co přímé osvětlení obsahuje vysokofrekvenční signály v podobě ostrých přechodů mezi osvětlenými a zastíněnými oblastmi, je odražené světlo tvořeno téměř bez výjimek nízkými frekvencemi. Této skutečnosti později využijeme v našem osvětlovacím algoritmu. 2.4 Přímé osvětlení Přímým osvětlením nazýváme všechny světelné paprsky, které se na cestě od světelného zdroje do kamery odrazí od geometrie scény právě jednou. Formálně můžeme popsat přímé osvětlení pomocí Hackbertova popisu světelných cest [20] následujícím regulárním výrazem. L[D S]E kde: L je světelný zdroj (light) D je difúzní odraz (diffuse) S je lesklý odraz (specular) E je pozice pozorovatele (eye) 17

19 E L [D S] Obrázek 2.2: Přímé osvětlení Přehled a popis nejpoužívanějších světelných modelů přímého osvětlení jsou uvedeny v [8] a [9]. V této práci budeme k výpočtu přímého osvětlení používat modifikovaný Phongův osvětlovací model Phongův světelný model Phongův světelný model byl poprvé představen v [10]. Tento model se stal velmi oblíbeným zejména v oblasti real-time grafiky a od svého počátku byl několikrát upraven. Proto zde model ve stručnosti popíšeme. BRDF tohoto modelu je rozdělená na dvě části, difúzní a lesklou komponentu: 1 f r (x, Ψ Θ) = f rdiffuse (x, Ψ Θ) + f rspecular (x, Ψ Θ) = ρ d π + ρ n + 2 s 2π cosn α kde: α je úhel, který svírá dokonalý odraz ρ a odchozí směr Θ Ψ je směr příchozího světla x je bod dopadu světla ρ d je koeficient difúzního odrazu ρ s je koeficient lesklého odrazu n je exponent lesklého odrazu. 18

20 Obrázek 2.3: Phongův světelný model Takto definovaná funkce zřejmě splňuje Helmholtzův princip reciprocity a pokud přidáme podmínky ρ d + ρ s 0 a ρ d + ρ s 1, tak i nezápornost a Zákon o zachování energie Výpočet viditelnosti Z rovnice globálního osvětlení, separující přímé a nepřímé osvětlení popsané dříve, je zřejmé, že pro výpočet přímého osvětlení L direct je dále potřeba funkce pro výpočet viditelnosti, nebo stínů, což jsou v tomto případě ekvivalentní problémy. Existuje několik běžně používaných algoritmů jako například shadow volume [22], shadow mapping [21] nebo ray casting [23]. Velkou nevýhodou prvních dvou jmenovaných je jejich problematická aplikace pro výpočet měkkých stínů, které vznikají z plošných světelných zdrojů. Vrhání stínových paprsků naproti tomu nabízí dobře škálovatelné a kvalitní stíny, ale je pomalé a používané tak spíše v off-line renderech. Výpočet viditelnosti byl proto od počátku jedním z otevřených problémů projektu, se kterým se bude potřeba v průběhu práce vypořádat. Podrobnosti řešení budou popsány v kapitole věnující se implementaci. 19

21 Světelný zdroj Stínítko Polostín Stín Polostín Obrázek 2.4: Měkké stíny z plošného světelného zdroje 2.5 Nepřímé osvětlení Nepřímým osvětlením rozumíme všechny vícenásobné odrazy světelných paprsků, které na závěr dopadají do kamery. V řeči regulárních výrazů ho můžeme zadefinovat následovně. L[D S][D S] + E kde: L je světelný zdroj (light) D je difúzní odraz (diffuse) S je lesklý odraz (specular) E je pozice pozorovatele (eye) 20

22 [D S] E L [D S] Obrázek 2.5: Více násobně odražené světelné paprsky V posledních třiceti letech byly velmi intenzivně zkoumány metody nepřímého osvětlení a bylo publikováno množství algoritmů pro výpočet nepřímého osvětlení z nichž jmenujme alespoň ty nejzásadnější jako je [11], [12], [13], [14], [15], [17] a další. V oblasti interaktivní grafiky se staly populární zejména tzv. Many lights metody, vycházející z algoritmu Instant radiosity [16]. Z té částečně vychází i následující algoritmus Direct-to-Indirect Transfer Pro výpočet nepřímého osvětlení ve scéně pro nás bude klíčová publikace od Hašana a kolektiv Direct-to-Indirect Transfer for Cinematic Relighting [18]. V dalším jí budeme zkráceně označovat jako DTIT. Hlavními rysy algoritmu jsou zejména: vícenásobné nepřímé odrazy světla podpora difúzních i lesklých materiálů kvalitní per-pixel nepřímé osvětlení jednoduchá GPU implementace interaktivní rychlosti osvětlovacího algoritmu statická kamera a geometrie scény nutný off-line předvýpočet. DTIT algoritmus můžeme rozdělit do dvou částí: fáze přípravy a fáze vlastního výpočtu. 21

23 Fáze přípravy Příprava probíhá neinteraktivně a není přímou součástí této práce. Přesto zde pro úplnost algoritmus krátce popíšeme. Podrobné informace jsou uvedeny v původním článku [18]. V této fázi dochází k distribuci speciálních bodů po scéně, tzv. výhledových a sběrných vzorků (view & gather samples). Sběrné vzorky jsou rozmisťovány rovnoměrně po povrchu geometrie scény. Výhledové vzorky se generují pouze na povrchu geometrie, která je viditelná z pohledu kamery. Po jejich rozmístění je potřeba určit matici přenosu (transfer matrix). Tato matice vyjadřuje přenos světla ze sběrných vzorků na vzorky výhledové. Na závěr je tato matice zkomprimována pomocí waveletové transformace. Výstupem této fáze jsou soubory obsahující sběrné a výhledové vzorky a přenosovou matici. Tento předvýpočet v praxi realizuje modul napsaný pro GOLEM [19]. Výhledové vzorky Výhledové vzorky jsou množina všech bodů, které budou po projekční transformaci v 1 v 2 viditelné na obrazovce. Vektor těchto vzorků dále budeme značit V =.. v n Obrázek 2.6: Výhledové vzorky Sběrné vzorky Sběrné vzorky jsou body rozmístěné na povrchu celé scény. Značit je dále budeme g 1 g 2 vektorem G =.. g m 22

24 Obrázek 2.7: Sběrné vzorky Přenosová matice Přenosová matice představuje matici přenosu odraženého světla ze sběrných na výhledové vzorky a značit ji budeme T n,m = t 1,1 t 1,2 t 1,m t 2,1 t 2,2 t 2,m t n,1 t n,2 t n,m Protože je však výhledových vzorků řádově několik stovek tisíc (pro rozlišení 640x480 cca 300k) a sběrných vzorků řádově statisíce (pro dosažení kvalitního osvětlení v našich scénách jich používáme až 1M) je přenosová matice T neúnosně velká. Z důvodů úspory ji proto převedeme na řídkou matici uloženou ve waveletové bázi obsahující pouze stanovený počet nejdůležitějších koeficientů. Komprimovanou přenosovou matici budeme značit (t w 1,1, idx t w 1,1 ) (t w 1,2, idx t w 1,2 ) (t w 1,k, idx t w ) 1,k T w n,k = (t w 2,1, idx t w 2,1 ) (t w 2,2, idx t w 2,2 ) (t w 2,k, idx t w ) 2,k (t w n,1, idx t w n,1 ) (t w n,2, idx t w n,2 ) (t w n,k, idx t w ) n,k kde má každá dvojice (t w i,l, idx t w ) splňující podmínky 1 i n & 1 l k i,l následující význam: t w i,l je hodnota koeficientu t i,l uloženého ve waveletové bázi idx t w i,l je index příslušného sběrného vzorku ke kterému se koeficient t w i,l váže Fáze výpočtu Výpočet je interaktivní část algoritmu pracující s daty spočtenými v první fázi. V této části je potřeba určit hodnoty přímého osvětlení na výhledových a sběrných vzor- 23

25 cích. Spočtené vektory přímého osvětlení budeme značit písmeny V direct a G direct. Výsledné hodnoty přímého osvětlení na sběrných vzorcích je nutné následně převést do waveletové báze. Tuto skutečnost budeme značit G w direct. V dalším kroku je nutné určit hodnoty nepřímého osvětlení na výhledových vzorcích (obr 2.10). Tento výpočet provádíme roznásobením přenosové matice a vektoru přímého osvětlení na sběrných vzorcích ve waveletové bázi. Popsaný postup lze vyjádřit následujícími rovnicemi. V indirect = T w G w direct k v indirect [i] = t w i,j g w direct[idx t w i,j ] j=1 Na závěr sečteme hodnoty přímého a nepřímého osvětlení na výhledových vzorcích a tím získáme výsledné globální osvětlení na výhledových vzorcích. V final = V direct + V indirect Obrázek 2.8: Přímé osvětlení na sběrných vzorcích Obrázek 2.9: Přímé osvětlení na výhledových vzorcích Obrázek 2.10: Přenos přímého osvětlení ze sběrných na výhledové vzorky pomocí přenosové matice 24

26 Obrázek 2.11: Schématické zobrazení DTIT algoritmu. Obrázek pochází z původního článku [18]. 25

27 Uživatelské rozhraní Uživatelské rozhraní je základem každé desktopové aplikace a představuje klíčový spojník mezi uživatelem a vnitřní funkcionalitou programu. V našem případě je důraz kladen zejména na jednoduché a přehledné ovládání programu. Každý ovládací prvek rozhraní musí mít jasný, snadno uchopitelný význam a každému uživateli by měl být od prvního použití zřejmý jeho reálný efekt. S trochou nadsázky můžeme celou situaci shrnout následujícím citátem. Konstrukční dokonalosti není dosaženo tehdy, když už není co přidat, ale tehdy, když už nemůžete nic odebrat. Antoine de Saint-Exupéry 3.1 Systém světel Základním stavebním kamenem celého uživatelského rozhraní jsou světla a jejich správa. Hlavním problémem je obecně vysoký stupeň volnosti, kterým světelné zdroje disponují a s tím spojené důsledky. U každého světla je například možné nastavit pozici, barvu, intenzitu, útlum nebo přítomnost stínů a odlesků. U vybraných světelných zdrojů je dále možné specifikovat orientaci, velikost a směrovost zdroje. Abychom systém světel zjednodušili a zpřehlednili, rozdělili jsme světla do skupin podle charakteru chování a poté je parametrizovali prostřednictvím několika atributů Typy světel S ohledem na vytyčené cíle, uvedené v úvodní kapitole, musí uživatelské rozhraní podporovat několik různých druhů světel. Světla v uživatelském rozhraní můžeme rozdělit podle několika kritérií. Podle typu světelného zdroje je dělíme na plošná a bodová, dle směru záření na směrová a nesměrová a podle dalších vlastností na klíčová a výplňová světla. Věříme, že uvedené kategorie světel poskytují dostatečnou volnost při nasvětlování a současně jde s ohledem na navazující uživatelskou studii stále o rozumně malou skupinu světel, kterou uživatel rychle pochopí a zvládne. Všechna světla mohou dále fungovat v režimu přímého nebo globálního osvětlení 26

28 a kombinují tak dohromady obě v úvodu popsané osvětlovací metody. Jednotlivá světla nyní v krátkosti představíme Omni light Omni light je klasické všesměrové bodové světlo. V závislosti na tom, zda se jedná o klíčové nebo výplňové světlo, buď způsobuje spekulární odlesky a vrhá ostré stíny, nebo osvětluje pouze difúzní část povrchů a pak nevyvolává stíny. Obrázek 3.12: Všesměrové bodové světlo Spot light Spot light je rozšířením předchozího bodového světla. Jedná se opět o bodové světlo, které ovšem není všesměrové a jeho intenzita klesá s rostoucí odchylkou od svého primárního směru záření. Klíčový a výplňový režim se chová podobně jako u všesměrového bodového světla. Obrázek 3.13: Reflektorové světlo Directional light Directional light je plošné světlo, které vyzařuje pouze paprsky rovnoběžné s normálou. V případě režimu klíčového světla vrhá ostré stíny. Praktické využití tohoto světla je především ve výplňovém režimu a to nejčastěji k umělému dosvětlování scény. 27

29 Obrázek 3.14: Směrové plošné světlo Area light Area light je plnohodnotné plošné světlo s útlumem intenzity při odchýlení se od směru normály. V režimu klíčového světla nastavení vrhá měkké stíny. Obrázek 3.15: Obecné plošné světlo Další parametry světel V předchozí podkapitole jsme popsali implementovanou množinu světel a v této části se zaměříme na popis dalších parametrů světel Barva Velmi důležitým parametrem každého světla je jeho barva. Pro pohodlný a intuitivní výběr barvy a odstínu používáme jednoduchý HSV kruh nebo případně jeho zjednodušenou verzi v podobě HS diagramu 2. S nimi, podle našich testů, nemají uživatelé v průběhu práce žádné obtíže a dokáží je efektivně používat. 2 HSV je zkratka pro Hue Saturation Value 28

30 Obrázek 3.16: HSV kruh Obrázek 3.17: HS diagram Intenzita Dalším důležitým atributem světelných zdrojů je jejich intenzita. Ta z fyzikálního hlediska představuje výkon zdroje a jeho hodnotu lze upravovat klasickým posuvným sliderem. Tento slider mění intenzitu světla exponenciálně: kde: c 0 a c 1 jsou uživatelské konstanty I = (c 0 sliderv alue 1.0) c 1 sliderv alue je hodnota slideru nastavujícího intenzitu světelného zdroje. Pro větší volnost při osvětlování scény je zahrnut i slider pro nastavování intenzity odraženého světla daného zdroje. To dovoluje v případě potřeby sekundární paprsky vypnout, ztlumit nebo naopak zvýraznit. Tato vlastnost se hodí zejména při dolaďování světelné kompozice a práci s tzv. color bleedingem Útlum Prostřednictvím dalšího slideru lze nastavovat útlum světla v závislosti na vzdálenosti objektů od zdroje. Praktické využití je zde opět hlavně při jemnější práci s celkovou kompozicí scény. Útlum světla se počítá pomocí následujícího vztahu: att = 1 dsliderv alue kde: d je eukleidovská vzdálenost světla a místa v němž počítáme osvětlení sliderv alue je hodnota slideru, kterým se nastavuje světelný útlum. 29

31 Směrovost U reflektorových a plošných světel je k dispozici i slider pro nastavení velikosti útlumu intenzity od dominantního směru záření. Intenzita směrového světla se počítá podle vzorečku: I(ω) = I 0 cos k (ω, dir) kde: I 0 je intenzita světelného zdroje dir je dominantní směr vyzařování ω je směr ve kterém počítáme útlum sliderv alue k je exponent směrového útlumu daný formulí k = g 0 g 1 g 0 a g 1 jsou uživatelské konstanty sliderv alue odpovídá hodnotě slideru pro nastavování směrovosti Manipulace se světly Kromě výše popsaných parametrů disponuje každé světlo i pozicí a má-li to smysl, tak i orientací a velikostí. Ovládání těchto parametrů bude věnována následující podkapitola. Pro celou aplikaci je stěžejní intuitivní a snadno pochopitelné rozhraní pro manipulaci se světly. Světla je často potřeba přemisťovat, otáčet jimi a měnit jejich velikost. Naše testy ukázaly, že mnoha uživatelům bez předchozích zkušeností s modelovacími nástroji, může navigace v prostoru činit značné problémy. Vyzkoušeli jsme proto několik různých přístupů inspirovaných profesionálními modelovacími prostředími Softimage XSI První implementovaný systém manipulace vychází z prostředí Softimage XSI [36]. Ten umožňuje ovládání založené na následujícím paradigmatu. Přidržením jednoho ze tří dostupných tlačítek myši probíhá volba osy pohybu ve zvoleném souřadném systému. S pomocí dalšího tlačítka lze přepínat mezi lokálním a globálním souřadným systémem. Pohybem myši v horizontálním směru probíhá manipulace ve zvoleném směru. Tento způsob ovládání je poměrně jednoduchý na implementaci a dobře se osvědčil v jiných uživatelských studiích věnujících se nasvětlování scén [28]. To je ovšem v rozporu s námi provedenými testy, které došly ke zcela odlišným závěrům. Dle našich zjištění: 30

32 1. Pohyb myší pouze v horizontálním směru je matoucí. Uživatelé mají tendence pohybovat myší přímo ve směru zamýšleného pohybu. 2. Volba správného tlačítka myši pro pohyb v požadovaném směru není během prvních několika hodin práce dostatečně intuitivní. Často probíhá stylem pokusomyl. 3. Po překonání uvedených počátečních problémů může navigace probíhat velmi rychle. Usuzujeme proto, že tento ovládací systém je určen spíše zkušeným uživatelům a je tedy nevhodný pro účely naší studie, která je zaměřena pouze na začátečníky bez předchozích zkušeností s nástroji pro práci s 3D grafikou Maya S ohledem na závěry vyvozené z předchozí části, jsme dále vyzkoušeli metodu používanou v programu Maya [37]. Ta je postavená na tzv. principu táhni-a-pusť (drag & drop). Uživatel pomocí kurzoru myši vybere jednu z nabízených os pohybu, stiskem tlačítka myši ji označí a následným tažením kurzoru ve směru zvolené osy dochází k pohybu aktivního objektu. Posun Posun objektu probíhá výběrem jedné z nabízených os a následným pohybem myši ve zvoleném směru. Obrázek 3.18: Translační ikona: posun ve směru zvolené osy Otáčení Otáčení objektu probíhá výběrem jednoho z nabízených prstenců a následným pohybem myši kolem zvoleného prstence. 31

33 Obrázek 3.19: Rotační ikona: rotace kolem zvoleného prstence Škálování Změna velikosti objektu se provádí zvolením osy, na které chceme objekt škálovat a tažením myši v tomto směru. Obrázek 3.20: Škálovací ikona: změna měřítka na zvolené ose Lokální a globální souřadný systém Zmíněné operace je možné provádět v globálním i lokálním souřadném systému světla. Globální souřadný systém je nezávislý na orientaci světla. Lokální systém se naproti tomu během otáčení světla mění. Přepínání mezi souřadnými systémy probíhá přidržením pomocné klávesy. Tím dochází ke změně orientace manipulační ikony a uživatel tak ihned vidí možné směry pohybu. Podle našich pokusů dokáží uživatelé tuto logiku rychle a bez potíží používat. Obrázek 3.21: Globální systém a lokální souřadný systém 32

34 S takto navrženým ovládáním dokázali uživatele intuitivně pracovat a proto jsme ho využili i v našem rozhraní. 3.2 Zobrazovací část Vedle systému světel je dále potřeba navrhnout funkční systém vlastního zobrazování. V předchozí kapitole jsme popsali DTIT algoritmus pro výpočet nepřímého osvětlení. Ten ale funguje pouze se statickou kamerou. S tímto omezením je proto potřeba při návrhu uživatelského rozhraní počítat a přizpůsobit se mu. Naše uživatelské rozhraní používá dvou zobrazovacích oken Okno s globálním osvětlením První okno zobrazuje scénu ve vysoké kvalitě, pracuje s měkkými stíny a umí počítat globální osvětlení, tak jak to bylo popsáno dříve. Toto okno používá pouze statickou kameru a slouží proto výhradně k zobrazování výsledné světelné kompozice z pozice přednastavené kamery Pracovní okno Druhé okno má interaktivní charakter. Na rozdíl od předchozího okna zde klademe důraz na rychlost renderování namísto kvality. Obsah tohoto okna je kreslen prostřednictvím klasického OpenGL renderu [39] a nepoužívá žádný fyzikálně reálný osvětlovací model. Uživatel zde může volně hýbat kamerou a manipulovat se světly tak, jak bylo popsáno v předchozí části této kapitoly Kamera Hlavním přínosem Pracovního okna je především nastavitelná kamera. Ta je důležitá zejména proto, že je v praxi často potřeba umisťovat světla i mimo záběry statické kamery. V naší aplikaci jsme zvolili kameru obíhající kolem přednastaveného pivotu. Pozici pivotu je potřeba vyplnit v konfiguračním souboru ručně v závislosti na konkrétní scéně. Ideálně by to měl být bod v zorném poli statické kamery a ležící v hlavní oblasti zájmu. Tím zajistíme, že pohyblivá kamera bude z libovolné pozice pozorovat primární prostor scény. V některých případech však tento způsob může být nedostatečný a proto jsme přidali i možnost pohybu kamery v projekční rovině. Navigace ve scéně popsaným způsobem se nám osvědčila lépe než klasická free-look kamera. Popsanou situaci dokumentuje přiložený obrázek níže. 33

35 Obrázek 3.22: Otáčení kamery kolem pivotu umístěném ve středu koule a pohyb v rovině ρ 3.3 Ovládací panel Rozvržení komponent rozhraní Na úplný závěr této kapitoly shrneme výsledné rozvržení komponent uživatelského rozhraní. Použijeme k tomu pomocný obrázek. Levá horní část rozhraní (1) je vyhrazena referenčnímu obrázku použitém pro účely uživatelské studie. Zde uživatel vidí vzorovou předlohu, kterou má co nejlépe napodobit. V levé spodní části (2) je okno s globálním osvětlením. Pracovní okno leží v pravém dolním rohu (3). Pravá horní část je vyhrazena panelu s ovládacími prvky. Oblast 4.1 slouží k vytváření nových světelných zdrojů. Pod ní (4.2) je panel světel. Zde lze přepínat mezi jednotlivými světly ve scéně a případně je i odstraňovat. V části 4.3 se volí barva aktivního světelného zdroje a sekce 4.4 slouží k nastavení dalších atributů světla: intenzity, útlumu, směrovosti světla a dalších. V pravém horním rohu (4.5) lze zapínat a vypínat nepřímé osvětlení. Pod ním jsou umístěna editační tlačítka undo & redo. V oblasti 4.6 leží tlačítko pro přepínání mezi manipulací s kamerou a světly. Ve spodním rohu jsou konečně tlačítka pro volbu režimu manipulace: posun, rotace nebo škálování. Obrázek 3.23: Rozvržení uživatelského rozhraní 34

36 3.3.2 Editace undo & redo Undo & redo operace jsou jednou ze základních funkcionalit každého lepšího editoru. Možnost vrátit zpět provedené změny se tak pro většinu uživatelů stalo neodmyslitelnou součástí každé aplikace. Proto jsme tyto funkce implementovali i do našeho programu Nastavení uživatelského rozhraní Poslední významnou vlastností našeho uživatelského rozhraní je jeho dobrá konfigurovatelnost. Pomocí konfiguračního souboru je možné dodatečně upravovat nastavení uživatelského rozhraní. V tomto souboru je možné nastavit typy podporovaných světelných zdrojů, chování sliderů nebo případně deaktivovat některé z možností editoru. Schopnost konfigurace rozhraní jsme s výhodou využili v nadcházející uživatelské studii. V té jsme v rámci jednotlivých experimentů uživatelům zpřístupňovali různé možnosti editoru. Kompletní seznam parametrů konfiguračního souboru pro nastavení uživatelského rozhraní je popsán v příloze práce. Obrázek 3.24: Screenshot aplikace 35

37 Uživatelská studie 4.1 Motivace Práce se světly je jednou z fundamentálních činností grafika při tvorbě renderovaných scén. Vymodelované objekty je potřeba vhodně nasvítit a dosáhnout tím požadovaného vzhledu scény. V CG filmech zastávají tuto roli speciální osvětlovači, kteří scénu v souladu s režisérovými představami nasvětlují. Využívají k tomu různých metod a triků jako například kombinace klíčových a výplňových světel, záporných světelných zdrojů a jiné. Celkově tak jde o komplexní a náročný proces, který vyžaduje mnoho prostředků a zkušeností. 3 To je hlavní motivací pro hledání nových a jednodušších způsobů pro práci se světly. V minulosti byla navržena a vyzkoušena celá řada přístupů. Rozdělit je můžeme do několika skupin: 1. Přímé metody: Uživatel prostřednictvím rozhraní ovládá přímo parametry světla. Jde o nejčastěji používané paradigma, které je použito například v programech Maya [37], 3D Studio Max [38] nebo Softimage Xsi [36]. 2. Nepřímé metody: Uživatel nepracuje přímo s atributy světla, místo toho pomocí rozhraní aplikace ovlivňuje některé důsledky světelného zdroje. Ty potom zpětně mění atributy světla. Uživatel tak pracuje spíše s vlastnostmi světla než se světlem samotným. Příkladem může být ovládání světla pomocí stínů [30]. Uživatel v takové situaci ovládá pozici, velikost a intenzitu stínů, čímž nepřímo mění pozici a intenzitu světelného zdroje. 3. Kreslící metody: Prostřednictvím editoru vyznačí uživatel osvětlené nebo zastíněné oblasti a program rozmístí světelné zdroje tak, aby této vyznačené představě co možná nejlépe odpovídaly. Bližší informace je možné nalézt například v [29], [31] nebo [32]. Uvedené přístupy byly vzájemně srovnány v uživatelské studii [28]. Z výsledků studie lze usuzovat, že uživatelé preferují přímé a nepřímé metody před kreslením. Jako srovnatelně kvalitní se potom jevily metody přímého a nepřímého ovládání světel. Z 3 Například dostupné informace z filmu Shrek hovoří o více než 30 osvětlovačích, viz 36

38 těchto poznatků jsme vycházeli při návrhu našeho systému ovládání. Naše rozhraní je založené na metodě přímé kontroly světel. 4.2 Návrh a cíle V naší uživatelské studii budeme porovnávat dva odlišné přístupy používané při nasvětlování scén. 1. Přímé osvětlení: Jde o systém přímých světel, kdy se u světelných zdrojů zcela ignoruje sekundární odražené světlo. Nepřímé osvětlení se nahrazuje pomocí výplňových světel. Ty nevrhají stíny ani odlesky a mají tak podobné vlastnosti jako skutečné odražené světlo. 2. Globální osvětlení: Zdroje světla pracují s plnohodnotným globálním osvětlením. Započítává se tedy přímé i odražené světlo ve scéně, tak jak je tomu ve skutečném světě. Oba uvedené způsoby mají na první pohled své výhody i úskalí. Přímé osvětlení poskytuje velkou volnost při nasvětlování scény, jeho chování je dobře předvídatelné a celkově má tak uživatel nad osvětlením dobrou kontrolu. Na druhou stranu však může být obtížné dosáhnout realistického nasvětlení. To je dáno nutností simulovat vlastnosti nepřímého osvětlení manuálně využitím kombinace klíčových a výplňových světel. Tento proces může být poměrně zdlouhavý a vyžaduje od uživatele jisté zkušenosti. Naproti tomu zaručuje plnohodnotné globální osvětlení fyzikálně korektní distribuci světla ve scéně. To může být ovšem mnohdy omezující, špatně předvídatelné a celkově proto problematicky ovladatelné. Na naznačené otázky z předchozího odstavce se v průběhu studie pokusíme odpovědět. Abychom neupřednostňovali jeden způsob před druhým bude potřeba provést sérii experimentů vycházející ze skutečných a pokud možno objektivních situací a požadavků. 4.3 Experiment V této části zaměříme pozornost na konkrétní detaily kolem připravovaného experimentu. Hned na úvod je zde potřeba poznamenat, že autor diplomové práce byl během příprav experimentu pouze v roli pozorovatele. Zpracování experimentu zahrnující jeho návrh, přípravu, realizaci a vyhodnocení proto není autorova vlastní práce. Protože jde však o významnou součást původního projektu, představující jeho pomyslné vyústění a logické dokončení, je zde tato část pro úplnost uvedena. 37

39 4.3.1 Uživatelé Jako cílovou skupinu uživatelů jsme pro studii vybrali uživatele bez apriorní zkušenosti s modelovacími programy a nástroji pro práci se světelnou kompozicí scény. Tito uživatelé nemají v této souvislosti žádné dlouhodobě zažité pracovní postupy. Veškeré předložené mechanismy jsou tak pro uživatele nové a mají proto srovnatelnou výchozí pozici. Věříme proto, že tato skupina poskytne objektivnější výsledky, než by tomu bylo při volbě zkušenějších uživatelů Rozhraní Návrh uživatelského rozhraní byl detailně popsán v samostatné kapitole. Po prvotních testech s uživateli bylo rozhraní dále dodatečně zjednodušeno. Ukázalo se totiž, že stupeň volnosti rozhraní je předimenzovaně vysoký a uživatelé se ztrácejí ve velkém množství tlačítek. Bylo proto nutné funkcionalitu rozhraní omezit a učinit jej tak přístupnější cílové skupině uživatelů. Z uživatelského rozhraní byly pro účely studie odebrány panely pro nastavení útlumu světla, intenzity nepřímého osvětlení, volitelně nastavitelné ambient oclusion, stíny a lesklé odrazy. Zachována zůstala pouze barva a intenzita světla, směrovost zdroje, režim klíčového a výplňového světla a v některých případech i možnost vytvářet a odebírat světelné zdroje. Také systém světelných zdrojů byl v rámci provedených úprav zjednodušen. Byly tak například odstraněny všechny bodové světelné zdroje. Zachovány zůstaly pouze plošné světelné zdroje. Velikost plošných světel však lze upravovat a tím v případě potřeby úspěšně simulovat zdroje bodové. Ve výsledku jsou tak uživatelům k dispozici pouze dva druhy světelných zdrojů. 1. Plošné klíčové světlo 2. Plošné výplňové světlo Tím je množina dostupných světel zredukována na dva, vzájemně ortogonální druhy světel. Z pohledu uživatele tak došlo k maximálnímu zjednodušení možností světel. Oba typy světel mohou fungovat v režimu přímého nebo globálního osvětlení. Režim osvětlení je možné v rámci vybraných experimentů volně přepínat, jinde je naopak pevně přednastaven. 38

40 Obrázek 4.25: Rozhraní uživatelské studie Scény Výběr vhodných scén je pro uživatelskou studii velmi důležitý. Nevhodně zvolené scény by totiž mohli negativním způsobem ovlivnit výsledky studie. Pro účely měřené uživatelské studie byly vybrány dvě tématicky rozdílné scény: prostředí animovaného filmu a zátiší. Tyto scény jsou podrobněji popsány v následující části. Kromě těchto dvou hlavních scén bylo dále připraveno několik dalších scén pro testovací účely. Protože však nebyly tyto scény zahrnuty do vlastního měřeného experimentu, je zbytečné je v této práce blíže rozepisovat. 39

41 Zátiší První vybranou testovací scénou je zátiší. Ve scéně se vyskytuje několik umělecky naaranžovaných předmětů. Pozadí je vyplněno nevýrazným zašedlým ubrusem. Dobře pozorovatelné jsou měkké stíny vrhané od předmětů, které významným způsobem dotvářejí celkovou kompozici scény. Color bleeding mezi zašedlým ubrusem a barevnými hrníčky je naproti tomu takřka nepozorovatelný a scéna tak vytváří objektivní a nepředpojaté prostředí pro budoucí experimenty. Obrázek 4.26: Scéna Zátiší 40

42 Orion scéna Orion je scéna z prostředí animovaného filmu. V popředí scény stojí výrazně stylizovaná ženská postavička. Interiér místnosti potom slouží jako nenásilný doplněk v pozadí. Svým stylem a zpracováním je scéna podobná novodobým animovaným pohádkám jako je například Toy Story [45] nebo Coraline [44]. Vybraná scéna tak poskytuje konkrétní příklad možného využití a nejde proto o uměle vytvořené prostředí bez reálného uplatnění. Důležitou změnou je zde také vlastní povaha scény. Výrazné barvy a celkově pohádkové ztvárnění vhodným způsobem doplňuje předchozí realisticky pojatou scénu. Obrázek 4.27: Scéna Orion 41

43 4.3.4 Průběh Před zahájením vlastního experimentu byl každý účastník krátce obeznámen se smyslem celé studie. Prostřednictvím interaktivního tutoriálu jsou uživatelé seznámeni s rozhraním aplikace. Program uživatele formou několika dialogových zpráv společně s testovacím prostředím postupně provede ovládáním aplikace. Každý účastník experimentu si zde vyzkouší základy ovládání jako je práce s kamerou, manipulace se světly, změny atributů světel a ovládání stínů. Tutoriál slouží čistě k seznámení s programem a během vyhodnocování uživatelských postupů nebyl nijak zahrnut. Po ukončení tutoriálu začne vlastní měřený experiment. Ten je možné rozdělit do tří menších částí na: práci s předlohou, volný režim a otevřený režim. Všechny uvedené scénáře jsou časově omezeny Práce s předlohou V tomto režimu je uživateli předložen obraz referenční osvětlené scény a úkolem je se vzorové scéně co nejvíce přiblížit. Uživatel se stejnou scénou pracuje celkem dvakrát, pokaždé je přitom nucen využívat jiné prostředky. Mezitím co v první části má uživatel k dispozici pouze přímé osvětlení, ve druhé části pracuje naopak s globálním osvětlením. To nám umožňuje vzájemně porovnat oba pracovní přístupy. Po celou dobu práce je zafixován počet světel ve scéně. Uživatel tak nemůže přidávat ani odebírat světla. Věříme, že s pevně daným stupněm volnosti je vzájemné srovnání obou metod objektivnější a má větší informační hodnotu. Podobnost referenčního obrazu s obrazem vytvořeným uživatelem je potom vyhodnocena pomocí střední kvadratické odchylky. Obrázek 4.28: Referenční předloha Obrázek 4.29: Počáteční stav scény Orion Volný režim Volný režim nabízí v porovnání s předchozí variantou podstatně větší svobodu při nasvětlování. Uživatel, stejně jako v předchozím experimentu, postupně dvakrát pracuje 42

44 se stejnou scénou. Jednou v režimu přímého a podruhé v režimu globálního osvětlení. Uživatel zde může použít libovolný počet světel. Na rozdíl od předchozí varianty zde není výsledná světelná kompozice scény předem určená. Referenční předloha je v tomto případě pouze abstraktní a spíše než představu o tom jak by výsledek měl vypadat, vyjadřuje atmosféru. Samotnému uživateli je potom přenechána konkrétní realizace. Uživateli je tak úmyslně dán prostor pro jeho představivost, improvizaci a umělecké cítění. Mezitím co v předchozím režimu bylo možné výsledky objektivně vyhodnotit a vzájemně je tak porovnat, zde takovou možnost nemáme. Na druhou stranu odpovídá scénář volného režimu mnohem lépe reálným případům užití a rozhodli jsme se jej proto zahrnout do experimentu. Důležitější než výsledný obraz, je zde proto vlastní postup práce. Cílem režimu je především zaznamenat a poté zpětně analyzovat postup, jak uživatelé s jednotlivými metodami konkrétně pracují. Obrázek 4.30: Abstraktní předloha Obrázek 4.31: Počáteční stav scény Zátiší Otevřený režim Poslední částí měřeného experimentu je otevřený režim. V něm má uživatel k dispozici nejvíce funkcí z našeho editoru. Může proto podle uvážení a potřeb používat jak přímé tak i nepřímé osvětlení. Počet světel zde není nijak omezen. V ostatních aspektech kopíruje Otevřený režim předchozí dva experimenty. Uživatel zde pracuje jednak s referenční předlohou, kterou se snaží co nejvěrněji napodobit, jednak s abstraktním vzorem. Smyslem otevřeného režimu je přímé porovnání metod přímého a nepřímého osvětlení. Podle výsledného zastoupení jednotlivých světelných zdrojů a jejich konfigurace bude možné usuzovat jaké metody uživatelé v konkrétních případech preferují. 43

45 4.4 Výsledky V době před odevzdáním této diplomové práce byla připravena uživatelská studie a provedeno několik závěrečných zkušebních měření s uživateli. Tyto testy potvrdily celkovou vyzrálost rozhraní i navržených experimentů. Následně proto byla zahájena vlastní měřená série experimentů s větším množstvím uživatelů. Pro získání dostatečně reprezentativního vzorku dat, ze kterého je možné vyvodit konkrétní závěry, je zapotřebí provést měření alespoň deseti až dvaceti nezávislých subjektů. Tato měření však nebyla v době uzávěrky této práce zcela dokončena. Zpracované naměřené výsledky uživatelské studie proto budou publikovány až v připravovaném samostatném článku. 44

46 Implementace V průběhu práce na tomto projektu bylo potřeba implementovat velké množství nejrůznějších funkcí a tříd. Celý výsledný framework budeme souhrnně označovat jako Kodiak. Kodiak je postaven na knihovnách OpenGL [39], Cg [24], CUDA [25] a Qt [42]. OpenGL je použito pro vykreslování 3D grafiky. Cg a CUDA je využito pro tzv. GPU computing [26]. Jde o techniku, kdy se některé časově náročné výpočty počítají na grafické kartě namísto standardního procesoru. Qt naopak zajišťuje záležitosti kolem GUI. V této kapitole popíšeme některé důležité součásti projektu. Během popisu nebudeme zabíhat do zbytečných podrobností a spíše než na statický popis funkcí se zaměříme na obecný popis komponent a vztahů mezi nimi. 5.1 Vykreslovaní pracovního okna Důležitou součástí implementace je podpora pro vykreslování grafiky. Tu využijeme především v pracovním okně, které na rozdíl od druhého zobrazovacího okna pracuje s 3D geometrií a nepočítá globální osvětlení. Pro vykreslování byla napsána skupina vzájemně komunikujících tříd, která si klade za cíl zjednodušit a zpřehlednit proces kreslení. Navržený systém tříd slouží jako komunikační vrstva, poskytující určitou abstrakci a odstínění od vlastní nízkoúrovňové implementace, realizované prostřednictvím OpenGL. Tyto třídy budou popsány v této podkapitole. Obrázek 5.32: Podpora pro vykreslování je pomocná vrstva pro oddělení logiky a implementace vykreslování. 45

47 5.1.1 Proces vykreslovaní Rendering je poměrně složitý a komplexní proces. Kompletní postup od inicializace, zobrazení až po uvolnění použitých prostředků můžeme rozdělit na několik částí. 1. inicializace OpenGL 2. nahrání textur na GPU 3. nahrání geometrie na GPU 4. nastavení kamery, světel a objektů scény 5. render scény (odkazuje se na data nahraná na GPU ) 6. zobrazení vyrenderované scény v pracovním okně 7. smazání GPU dat 8. uvolnění ostatních OpenGL prostředků Render třídy V této sekci vysvětlíme návrh tříd pro kreslení grafiky. Základem je třída AbstractRender, která definuje abstraktní renderovací rozhraní. Od ní je odvozena třída Render. Ta k implementaci předepsaného rozhraní používá OpenGL. Poslední v hierarchii tříd je UiRender, která rozšiřuje předchozí třídu o některé další speciální funkce. Uvedené třídy v následující části blíže rozepíšeme a upřesníme některé další detaily AbstractRender AbstractRender je abstraktní bázová třída zajišťující rendering. Rozhraní třídy je přednostně uzpůsobeno možnostem a logice grafických karet. AbstractRender definuje základ společného rozhraní, které musí všechny odvozené renderovací třídy implementovat. Logiku a postup při práci s rozhraním můžeme shrnout v následující seznam. 1. nastavení parametrů třídy, specifikující kam a jakým způsobem renderovat 2. zahájení renderu nového snímku zavoláním metody beginframe() 3. vykreslení geometrie scény 4. ukončení renderu snímku a zobrazení výsledného obrázku zavoláním metody endframe() 46

48 Render Render třída je odvozena od AbstractRender a je určena pro rendering 3D grafiky a implementována je prostřednictvím OpenGL. Kromě základního rozhraní předepsaného třídou AbstractRender poskytuje třída množství dalších funkcí. Ty umožňují renderovat komplexnější geometrii jako jsou například 3D modely nebo 2D bitmapové sprity. Třída dále zjednodušuje správu OpenGL matic. Před začátkem renderu každého nového snímku tak stačí předat parametry kamery prostřednictvím funkce beginframe(const Camera& camera) a třída zajistí korektní zobrazení UiRender UiRender je potomkem třídy Render. Tato třída zajišťuje vykreslování obsahu pracovního okna aplikace. To zahrnuje zejména následující seznam činností. 1. Zobrazování manipulačních ikon: V závislosti na režimu zvolené manipulace se zobrazuje příslušná manipulační ikona. K dispozici jsou 3 základní režimy: translační, rotační a škálovací mód. 2. Zobrazování světel: Světla použitá ve scéně je potřeba zobrazovat v souladu s jejich parametry. 3. Kreslení geometrie scény: Geometrii načtenou z externích souborů je nutné zobrazit. Pro kreslení geometrie byl navržen speciální shader (viz kodiak/shaders/uiphong.cg). Ten si neklade za cíl realistický rendering ale spíše symbolický režim zobrazení, který umožní uživateli přehlednou a jednoduchou orientaci v prostoru scény. Toho bylo dosaženo stínováním podle kosinu úhlu mezi normálou polygonu a směrem pohledu. 47

49 Obrázek 5.33: Symbolické zobrazení světel a geometrii scény pomocí třídy UiRender Vertex Buffer Object správce VBOmanager je správce dat pro práci s grafickými primitivy uloženými přímo v paměti grafické karty. Prostřednictvím této třídy může uživatel nahrávat na grafickou kartu geometrii: pole vrcholů, normál a texturovacích souřadnic. K nim lze poté prostřednictvím vrácených OpenGL identifikátorů přistupovat. Tyto identifikátory jsou uloženy společně s uživatelem definovaným názvem do databáze. Prostřednictvím zadaného názvu je možné získat data uložená v databázi a dále s nimi potom pracovat. GPU vstupní geometrie VBOmanager ID geometrie Obrázek 5.34: Vertex Buffer Object: nahrání nové geometrie. 48

50 5.1.4 Textury TextureManager je třída sloužící ke správě OpenGL textur. TextureManager umožňuje nahrávat textury, mazat je a dále s nimi pracovat. Po vložení textury dojde k jejímu nahrání do paměti grafické karty. S nahranou texturou potom můžeme pracovat pouze nepřímo pomocí navráceného OpenGL identifikátoru. Tento identifikátor se spolu s uživatelsky definovaným názvem textury ukládá v databází. K texturovým OpenGL identifikátorům tak můžeme s pomocí databáze přistupovat i pod uživatelem zadaným názvem a s texturami tak pohodlně pracovat. GPU název textury TextureManager ID textury Obrázek 5.35: Texture manager: práce s texturou Materiály Třída Material je abstraktní bázová třída každého materiálu. Od ní je odvozena třída PhongMaterial. Ta obsahuje následující atributy materiálu. float ambient[3] RGB trojice ambientní složky materiálu. float diffuse[3] RGB trojice difúzní složky materiálu. float specular[3] RGB trojice lesklé složky materiálu. float exponent exponent určující chování lesklého materiálu Načítání dat ze souboru Kodiak podporuje načítání dat z externích souborů. Za tímto účelem byl navržen jednoduchý textový formát (*.CAL), prostřednictvím kterého je možné definovat světla, kameru, materiály a geometrii, kterou aplikace během inicializace načte do paměti a dále s ní potom pracuje. Kompletní specifikace formátu je popsána v příloze. Parsování formátu zajišťuje třída CALreader. Geometrii je možné načítat z OBJ formátu. S tímto formátem úzce souvisí formát pro popis materiálů MTL. 49

51 Obrázek 5.36: CAL soubor definuje vlastnosti kamery, seznam světel a soubory s materiály a geometrií. OBJ OBJ je poměrně oblíbený grafický formát, který je podporován většinou modelovacích nástrojů jako například [38] nebo [37]. Formální specifikace formátu je k dispozici na [40]. K jeho načítání slouží třída ModelOBJ. Ta přečte a naparsuje vstup ze souboru a vrátí zpracovaná data k dalšímu použití. Ty můžeme dále s pomocí třídy VBOmanager uložit na grafickou kartu. Obrázek 5.37: OBJ soubor se odkazuje na materiály definované v MTL souboru MTL MTL formát definuje vlastnosti materiálů a OBJ formát se do tohoto souboru odkazuje. Parsování zajišťuje třída MTLreader a správu materiálů potom třída MaterialManager. Kompletní specifikaci formátu je možné získat například zde [41]. Materiál kromě atributů popisující jeho vlastnosti (viz třída Material) může obsahovat i názvy textur, které používá. Textury jsou podobně jako geometrie uloženy ve VRAM paměti odkud je možné s nimi při kreslení rychleji pracovat (viz výše popsaný TextureManager). 50

52 *.obj soubor OBJreader ModelOBJ MeshObject *.mtl soubor MTLreader Obrázek 5.38: Proces zpracovaní *.obj a *.mtl souborů. ID geometrie post-processing VBOmanager (geometrie) materiály Material Manager PTR (materiálu) MeshObject Texture Manager ID (materiálu) MeshObject ModelOBJ Obrázek 5.39: ModelOBJ třída Model Třída Model slouží k reprezentaci komplexních objektů v 3-rozměrném prostoru. Pozice, velikost a orientace objektu je definována pomocí matice. Každý model se dále skládá z jedné nebo více homogenních částí definovaných trojúhelníkovou sítí, tzv. meshů. Mesh je skupina polygonů používající společnou sadu vrcholů, texturovacích souřadnic, normál, materiálů a textur. Mesh reprezentujeme prostřednictvím třídy MeshObject. MeshObject obsahuje informace o použitých texturách, materiálu a geometrii objektu. 51

53 Obrázek 5.40: UML diagram třídy Model Kamera Třída Camera slouží k práci s kamerou v 3-rozměrném prostoru. Nastavovat můžeme pozici nebo směr pohledu kamery a tím měnit pohled na scénu. Pro pohodlnější práci s kamerou nabízí třída řadu pomocných metod jako například posun kamery ve směru pohledu, otáčení kamery a další. Konfigurace kamery je určena následujícími atributy. Point 3 pos Určuje umístění kamery. Vector 3 look Určuje směr, kterým se kamera dívá. Vector 3 right Určuje kde je z pohledu kamery pravá strana. Vector 3 up Určuje kterým směrem je z pohledu kamery vzhůru. Dopočítává se automaticky jako kolmice na look a right vektor. 52

54 up pos right look Obrázek 5.41: Kamera Proces zpracování a zobrazení geometrie Celkový proces, od načtení, přes zpracování až k výslednému zobrazení geometrie můžeme shrnout v následující seznam operací. 1. Načtení geometrie: Nejprve je potřeba načíst a rozparsovat geometrii modelu ze souboru. Načítat lze geometrii ve formátu OBJ. To zajišťuje třída OBJreader. 2. Zpracování geometrie: Načtenou geometrii v další části převádíme do podoby kompatibilní s OpenGL Vertex Array a tu pak ukládáme prostřednictvím OpenGL Vertex Buffer Object do paměti grafické karty. Tím, že máme geometrii uloženou přímo na GPU výrazně snižujeme objem dat, který je potřeba během renderingu přenášet mezi CPU a GPU. Tím zásadním způsobem urychlujeme kreslení geometrie. Tuto část provádí VBOmanager. 3. Načtení materiálů a textur: V další části je potřeba načíst a zpracovat materiály a textury, které geometrie používá. Program podporuje nahrávání materiálů z formátu MTL. Načítání materiálů realizuje třída MTLreader. O vlastní správu materiálů se potom stará třída MaterialManager. Textury lze nativně načítat z formátu TGA, s pomocí knihovny Qt je ovšem možné načíst i jiné obrázkové formáty. Za záležitosti kolem textur zodpovídá TextureManager. 4. Tvorba modelu: V této chvíli máme načtenou a zpracovanou geometrii, textury a materiály modelu. Tyto data jsou uložené v paměti grafické karty a přístup k nim máme skrze třídy VBOmanager, TextureManager a MaterialManager. 53

55 Můžeme proto jednoduše vytvořit model využívající tuto geometrii, textury a materiály. Viz třídy ModelOBJ a Model. 5. Kreslení modelu: Na závěr můžeme vytvořený model jednoduše vykreslit prostřednictvím dříve popsané třídy Render UML diagram vykreslování Třídy popsané v této podkapitole můžeme nakonec shrnout následujícím UML diagramem. Obrázek 5.42: UML diagram vykreslování 54

56 5.2 Okno s globálním osvětlením V této části popíšeme proces výpočtu globálního osvětlení, s kterým pracuje druhé aplikační okno. Budeme přitom navazovat na myšlenky uvedené v kapitole Globální osvětlení, tentokrát ovšem z pohledu implementace Měkké stíny Problém s výpočtem měkkých stínů byl načrtnut v kapitole věnující se Globálnímu osvětlení. Měkké stíny vznikají z plošných světelných zdrojů. Ty byly od počátku plánovány jako jedna z klíčových vlastností celého projektu Stíny pomocí DTIT algoritmu Jednou z prvotních představ implementace měkkých stínů bylo využití DTIT algoritmu. V této souvislosti je potřeba si uvědomit, že matice přenosu obsahuje nepřímým způsobem informace o viditelnosti mezi výhledovými a sběrnými vzorky. Světelné zdroje umístěné na povrchu geometrie scény je proto možné simulovat nasvětlením příslušných sběrných vzorků, nacházejících se v této oblasti. Prostřednictvím matice přenosu se pak odtud osvětlení přenese na výhledové vzorky a to včetně požadovaného zohlednění viditelnosti. Omezením tohoto přístupu je nutnost umisťovat plošné světelné zdroje pouze po povrchu geometrie scény. Další nepříjemností jsou malá plošná světla. Zde vzniká problém s nedostatečně hustým pokrytím povrchu scény sběrnými vzorky v oblasti světelného zdroje, což v konečném důsledku znemožňuje korektní simulaci plošného zdroje. Naše testy však ukázaly i na další úskalí této myšlenky. Přenosová matice by pro kvalitní měkké stíny bez viditelného šumu musela obsahovat velké množství koeficientů waveletové báze. To však z důvodů omezené velikosti paměti na grafické kartě není realizovatelné. Proto jsme byli nuceni od tohoto záměru upustit a vyzkoušet jiné alternativy. 55

57 Obrázek 5.43: Ukázka stínů pomocí DTIT algoritmu Obrázek 5.44: Velmi detailní záběr DTIT stínů Stínové mapy Další možností bylo použití stínových map. Pro výpočet měkkých stínů by se z pohledu plošného světelného zdroje vygenerovalo několik vzájemně posunutých hloubkových map a ty se společně zkombinovaly k odhadu měkkých stínů. Tato metoda je technicky možná, nicméně výsledky této metody neodpovídaly našim představám (viz přiložený obrázek níže) a tento způsob jsme proto také zamítli. Obrázek 5.45: Ukázka stínů pomocí stínových map 56 Obrázek 5.46: Velmi detailní záběr stínových map

58 Ray casting stíny Poslední implementace měkkých stínů je založena na metodě vrhání stínových paprsků. Z místa, v němž chceme určit úroveň zastínění, vrháme paprsky směrem ke světelným zdrojům. Pokud paprsek po cestě ke zdroji světla neprotíná žádnou geometrii tak je oblast viditelná, jinak je zastíněná. Jako základ byl použit CUDA [25] ray traceru z práce [27]. Tento ray tracer se ukázal být dostatečně rychlý a také kvalita generovaných měkkých stínů byla řádově lepší než v případě předchozích metod. Proto byl ze všech uvedených přístupu zvolen právě tento a ray tracer byl zakomponován do našeho projektu. V rámci vymezení původní autorské práce je potřeba poznamenat, že se autor této diplomové práce nepodílel na řešení této komponenty projektu. Obrázek 5.47: Ukázka stínů pomocí vrhání stínových paprsků Obrázek 5.48: Velmi detailní záběr stínových paprsků Výhledové a sběrné vzorky Výhledové a sběrné vzorky jsou reprezentovány pomocí společné třídy CDTISample 4. Třída obsahuje množství atributů z nichž důležité jsou zejména následující. [19] CVector3D P Definuje pozici vzorku v prostoru. CVector3D N Definuje normálu vzorku v prostoru. float rho d[3] RGB trojice difúzní složky materiálu. 4 Ta je z důvodů kompatibility převzata v nezměněné podobě z renderovacího programu GOLEM 57

59 float rho s[3] RGB trojice lesklé složky materiálu. float brdfparams[2] další dodatečné parametry materiálu (například exponent lesklé složky) Výpočet přímého osvětlení Uvedená množina parametrů poskytuje všechny potřebné informace pro výpočet přímého osvětlení v daném bodě. Výpočet je realizován prostřednictvím již zmíněného CUDA ray traceru. Program na vstupu obdrží geometrii scény, parametry světel a seznam výhledových a sběrných vzorků a na výstup vrátí hodnoty přímého osvětlení vstupních výhledových a sběrných vzorků. Celý popsaný postup můžeme shrnout následujícím pseudokódem. Algoritmus 1 Výpočet přímého osvětlení for all light in Light list do for all sample in Gather & View sample list do lightsamples := generatelightsamples( light ) for all lightsample in lightsamples do hitpoint := castshadowray( sample, lightsample ) if hitpoint = lightsample then illumination := evaluatedirectillumination( sample, lightsample ) else illumination := 0 end if addilluminationcontribution( sample, illumination ) end for end for end for Přesto, že je použitý ray tracer velmi rychlý, bylo dále potřeba přidat několik dalších optimalizací pro dosažení interaktivní rychlosti při požadované kvalitě měkkých stínů Cachování světelných zdrojů Uživatel během práce s naším programem může měnit vždy vlastnosti nejvýše jednoho světla. Toho jsme s výhodou využili pro předpočítání osvětlení neaktivních světel. Ve výsledku je tak zapotřebí počítat přímé osvětlení vždy jen pro vybrané světlo. Tato optimalizace mění časovou složitost výpočtu přímého osvětlení v daném místě z O(n) na O(1), kde n odpovídá počtu světelných zdrojů ve scéně. 58

60 Progresivní stíny Pro výpočet kvalitních měkkých stínů je potřeba vrhat velké množství stínových paprsků 5. To se negativně odráží ve zpomalení celé aplikace a výpočet stínů bez viditelných artefaktů trvá i několik sekund. Proto jsme byli nuceni zavést progresivní vrhání stínových paprsků. Pokud dojde ke změně velikosti světelného zdroje nebo jeho umístění je vždy potřeba znovu přepočítat stíny změněného zdroje světla. To provádíme následovně. 1. V prvním kroku spočítáme hrubou aproximaci stínů pomocí několika málo stínových paprsků a tuto aproximaci zobrazíme. 2. Následně pak dochází k přepočítání a zpřesnění této prvotní aproximace, pokud se poloha světla ustálí a dále nemění. Uvedená optimalizace nám dovoluje zobrazovat aproximované dynamické stíny v interaktivních časech i vysoce kvalitní statické stíny. Obrázek 5.49: Přiblížení aproximovaných měkkých stínů Obrázek 5.50: Přiblížení kvalitních měkkých stínů 5 Pro výhledové vzorky je průměrně potřeba alespoň paprsků. 59

61 Obrázek 5.51: Velmi detailní záběr aproximovaných měkkých stínů Obrázek 5.52: Velmi detailní záběr kvalitních měkkých stínů Výpočet nepřímého osvětlení V dalším kroku je zapotřebí určit hodnoty nepřímého osvětlení na výhledových vzorcích. To v praxi znamená roznásobit přenosovou matici s hodnotami přímého osvětlení na sběrných vzorcích. Tento proces je z důvodů výpočetní složitosti realizován paralelně v Cg shaderu. Přenosová matice je reprezentovaná formou dvou 3-rozměrných textur, z nichž první reprezentuje přenosové koeficienty a druhá indexy do pole sběrných vzorků. Hodnoty osvětlení sběrných vzorků jsou uloženy v samostatné textuře. Obrázek 5.53: Násobení vektoru přímého osvětlení a přenosové matice. 60

62 Algoritmus 2 Násobení přenosové matice s vektorem přímého osvětlení na sběrných vzorcích v shaderu procedure matrixmultiplicationcg( fragmentpos, transferindices, transfervalues, gathersamples ) outputval = float3(0, 0, 0) for all layeridx in texturelayers do transferidx := float3( fragmentpos, layeridx ) gatheridx := tex3d( transferindices, transferidx ).xy gatherval := tex3d( gathersamples, gatheridx ).rgb transferval := tex3d( transfervalues, transferidx ).rgb outputval += gatherval * transferval end for return outputval end procedure Waveletová transformace Wavetová transformace v naší implementaci používá Haarovu vlnku (Haar wavelet) [33] coby základ nové báze. Ta byla použita i v původní implementaci DTIT algoritmu. Výhodou této wavelety je její jednoduchost. To je užitečné zejména s ohledem na vyžadovanou rychlou paralelní implementaci na GPU. Proces 1D Haarovy transformace můžeme vyjádřit pomocí jednoduché dyadické sítě. 61

63 Obrázek 5.54: Paralelní výpočet Haarovy waveletové transformace pomocí dyadické sítě. Z obrázku je zřejmé, že lze výpočet v rámci jednotlivých vrstev masivně paralelizovat. Toho využívá použitá Cg shader implementace. Shader na vstupu obdrží texturu floatů, která kóduje pole hodnot, které chceme transformovat. Pro každý počítaný fragment, potom provádíme součet nebo rozdíl odpovídajících hodnot získaných ze vstupní textury. Výsledek vydělíme číslem 2 a fragment pošleme na výstup. Tento shader voláme log 2 velikost pole -krát za sebou, přičemž pokaždé jej aplikujeme pouze na první polovinu výstupu vraceného z předešlé iterace. Pro konkrétnější představu jsou přiloženy i pseudokódy výpočtu. 62

64 Obrázek 5.55: Proces waveletovy transformace pomocí OpenGL a CG shaderu. Algoritmus 3 Výpočet jedné hladiny waveletových koeficientů procedure wavelettranformercg( fragmentpos, texturedata) idx := fragmentpos.x + fragmentpos.y * INPUT WIDTH texelpos1.x := ( 2 * idx ) % INPUT WIDTH texelpos1.y := ( 2 * idx ) / INPUT WIDTH value1 := tex2d( texturedata, texelpos1 ) texelpos2.x := ( 2 * idx + 1 ) % INPUT WIDTH texelpos2.y := ( 2 * idx + 1 ) / INPUT WIDTH value2 := tex2d( texturedata, texelpos2 ) if 2 * idx < INPUT WIDTH * INPUT HEIGHT then outputval := ( value1 + value 2 ) / sqrt( 2 ) else outputval := ( value1 - value 2 ) / sqrt( 2 ) end if return outputval end procedure Algoritmus 4 Kompletní výpočet waveletové transformace procedure tranformgl( srctexture, dsttexture ) bindtexture( srctexid ) bindshader( wavelettranformercg ) texsize := TEXTURE WIDTH * TEXTURE HEIGHT while texsize > 1 do renderquadintotexture( dsttexture, srctexture, texsize ); copytexturedatafromto( dsttexture, srctexture); texsize := texsize / 2; end while return dsttexid end procedure 63

65 5.2.6 Tok programu Celkově můžeme popsaný postup shrnout následujícím program flow diagramem. View samples Seznam světel Geometrie scény Gather samples Seznam světel Geometrie scény CUDA ray caster CUDA ray caster Přímé osvětlení (View samples) Přímé osvětlení (Gather samples) CG wavelet transformer Přímé osvětlení (vlnková báze) Transfer matrix CG matrix multiplier Nepřímé osvětlení (View samples) OpenGL blender Globální osvětlení (View samples) Obrázek 5.56: Diagram výpočtu globálního osvětlení. 5.3 Implementace světel Program disponuje velkým množstvím typově odlišných světel. Na jedné straně jsou to světla bodová, jako například Omni light nebo Spot light. Na straně druhé po- 64

66 tom stojí světla plošná, kam řadíme Directional light a Rectangle light. Detaily jednotlivých světelných zdrojů byly uvedeny v kapitole Uživatelské rozhraní. Uvedený seznam světel můžeme z hlediska implementace shrnout následujícím UML diagramem. Obrázek 5.57: UML diagram světel Všechny v diagramu uvedené typy světel je dále potřeba rozdělovat podle podtypu na výplňové a klíčové. S ohledem na uživatelskou studii vznikla dále potřeba konverzí mezi jednotlivými druhy světelných zdrojů. Tím se počet podporovaných světel začal rozrůstat nad udržitelnou mez a bylo nutné celý systém světel přeorganizovat. Jako nejjednodušší a zároveň do budoucna i nejflexibilnější varianta byl návrh tzv. super světla (uber-light). To vzniklo sjednocením atributů všech světelných typů. Nevýhodou takového přístupu je především zvýšená paměťová režie, kdy světla často obsahují nepotřebné atributy. Jako problém může být chápána i určitá ztráta typové bezpečnosti, kdy světla mohou obsahovat neplatné hodnoty právě nevyužívaných atributů. Na straně druhé jsou potom výhody v podobě triviální konverze mezi jednotlivými typy světelných zdrojů, snadná rozšiřitelnost o nové atributy a možnosti světel, zjednodušený výpis a načítaní parametrů světel a v neposlední řadě snadnější předávání parametrů světel externím aplikacím jako jsou Cg shadery [24] nebo CUDA ray tracer [27]. Ačkoliv není z pohledu objektového návrhu tento přístup úplně ideální, přihlédneme-li k faktu, že je výsledný program navržen pro účely uživatelská studie, která pracuje s menším množstvím světelných zdrojů ( řádově jde o jednotky, maximálně desítky ), považujeme toto sjednocení světelných zdrojů do jednoho univerzálního super světla za legitimní a snadno ospravedlnitelné. Na závěr je uveden kompletní seznam atributů výsledného super světla DTITLight. unsigned int id 65

67 Unikátní identifikátor světla LightType subtype Typ světelného zdroje (směrové, bodové, plošné,...). Point 3 position Souřadnice světla Vector 3 tangent Tangenta světla Vector 3 bitangent Bi-tangenta světla float intensity Intenzita světelného zdroje CTriCol color Barva světla float directionalexp Směrovost světla float attenuation Útlum světla se vzdáleností bool usehighlight Příznak, zda světlo vrhá spekulární odlesky bool multiplybyambientocclusion Příznak, zda aplikovat na daný světelný zdroj Ambient Occlusion [34] bool castshadow Příznak, zda světlo vrhá stíny float indirectfactor Intenzita odraženého světla bool useindirect Příznak, zda se má na světlo aplikovat algoritmus pro výpočet nepřímého osvětlení bool enableillumination Příznak, zda světelný zdroj osvětluje okolí bool ishidden Příznak, zda může být světlo editováno uživatelem prostřednictvím uživatelského rozhraní 66

68 5.4 GUI Uživatelské rozhraní je navržené a implementované pomocí knihovny Qt [42]. Ta poskytuje komplexní možnosti pro práci a tvorbu uživatelských komponent. Dříve než přistoupíme k popisu konkretních entit rozhraní, popíšeme stručně celkovou filozofii návrhu. V naší implementaci upřednostňujeme architekturu přirovnatelnou k modelu klientserver. Ovládací prvky (widgety) jsou vždy jednoduché objekty, které jsou spravovány pomocí jiných řídících objektů. GUI komponenty typicky pouze zobrazují data od řídících jednotek, případně jim přeposílají různé vzniklé zprávy a události. Zpracování zpráv, událostí a celkovou stavovou logiku zajišťují řídící autority. Ty podrobněji rozepíšeme v následujících částech AbstractAPP AbstractAPP je abstraktní třída určená pro řízení QGLWidget widgetu. QGLWidget třída je součástí knihovny Qt a definuje okno pro OpenGL rendering. Tento widget slouží jako bázová třída každého OpenGL okna. Od třídy QGLWidget je odvozená Kodiak třída GLwidget2. Ta rozšiřuje funkcionalitu svého předka a přeposílá třídě AbstractAPP formou callback funkcí zprávy o událostech vyvolaných v souvislosti s QGLWidget objektem. Potomci třídy AbstractAPP implementují chování na jednotlivé události obdržené od QGLWidget. Každé OpenGL okno je tedy reprezentováno instancí třídy GLwidget2 a napojeno na potomka třídy AbstractAPP. GLwidget2 zajišťuje umístění okna, jeho rozměry a OpenGL kontext. Potomci třídy AbstractAPP naopak implementují logiku okna. Tím je myšleno zejména následující. 1. Zpracování vstupu od uživatele: Zde lze definovat jakým způsobem má okno reagovat na vstup z klávesnice nebo myši. 2. Kreslení okna: Definuje obsah okna, který má být prostřednictvím OpenGL knihovny zobrazen. 3. Další události: Implementace ostatních událostí jako například inicializace okna, přepnutí focusu, destrukce okna, uvolnění alokovaných prostředků a jiné. Klíčovými potomky třídy AbstractAPP pro nás v dalším čtení budou zejména třídy APP4 a APP5. Funkce těchto tříd bude blíže popsána později. 67

69 Obrázek 5.58: UML diagram zobrazuje vztah mezi definovanými Kodiak třídami GLwidget2 a AbstractAPP App4 App4 je potomkem třídy AbstractAPP. Třída App4 definuje implementaci rozhraní svého rodiče a řídí logiku pracovního okna aplikace. V tomto okně se vykresluje geometrie scény, použitá světla a gizmo pro jejich manipulaci. Tato část aplikace je interaktivní, prostřednictvím kurzoru myši a klávesnice je možné měnit umístění i směr kamery a světel (viz informace uvedené v kapitole Uživatelské rozhraní) App5 App5 je potomkem třídy AbstractAPP. V okně řízeném třídou App5 se zobrazuje scéna s globálním osvětlením. Na rozdíl od App4 není toto okno interaktivní a není sním proto možné přímo pracovat. Okno pouze zobrazuje výstupní data z DTIT algoritmu, tedy globální osvětlení z pohledu staticky přednastavené kamery. 68

70 5.4.4 Porovnání App4 a App5 Obě třídy App4 a App5 jsou autonomními entitami, které na sobě nemají žádnou přímou závislost. V praxi jsou však obě třídy využívány současně v jedné společné aplikaci, kdy jedna doplňuje druhou. Třídy spolu sdílí některé společné prostředky jako například parametry světel, geometrii scény a další. Sdílení prostředků je realizováno za pomoci třídy SharedData. Tu můžeme pro ilustraci zobrazit pomocí zjednodušeného UML diagramu následovně. Obrázek 5.59: UML diagram třídy SharedData UiObject Třída UiObject je řídícím centrem celého uživatelského rozhraní. Stará se o správu a logiku uživatelského rozhraní tvořeného z tlačítek, posuvníků, zaškrtávacích polí, textových polí a tabulky. Události vyvolané těmito komponentami jsou vždy posílány třídě UiObject, kde se vyhodnotí, zpracují a případně rozesílají dalším objektům. Kromě přímé vazby na komponenty uživatelského rozhraní je třída UiObject dále propojena s APP4 a APP5. Dojde-li ke změně parametrů světel, režimu navigace nebo pohledu kamery je potřeba provést překreslení obsahu OpenGL oken. Ty jsou řízeny prostřednictvím dříve popsaných tříd APP4 a APP5. 69

71 Obrázek 5.60: UiObject je centrální logika uživatelského rozhraní Řízení aplikace Na závěr, když jsme popsali všechny důležité moduly programu můžeme konečně shrnout řízení aplikace. Každá ze tří hlavních částí aplikace má svou řídící jednotku. Třída App4 ovládá Pracovní okno, App5 zajišťuje zobrazování v DTIT okně a třída UiObject spravuje ovládací panely. Výsledný návrh aplikace tak můžeme shrnout pomocí následujícího obrázku. Obrázek 5.61: Třídy UiObject, App4 a App5 řídí logiku aplikace 70

72 5.5 Logování průběhu práce Pro analýzu a vyhodnocení výsledků uživatelské studie je pro nás klíčové detailně zaznamenávat pracovní postupy uživatelů. Pomocí kvalitních záznamů je možné tento postup zrekonstruovat a získat tak dobrou představu o způsobech, jakými uživatelé postupují. Za tímto účelem byla napsána třída FileLogger. Tato třída zaznamenává pracovní postup několika odlišnými způsoby. 1. ukládání obsahu oken do obrázků 2. zaznamenávání pracovního postupu v textové formě 3. tvorba záložních (back-up) souborů FilleLogger HDR BackUp Workflow Obrázek 5.62: FileLogger třída Ukládání obrázků Zaznamenávání pracovního postupu formou obrázků spočívá v ukládání obsahu interaktivního OpenGL a finálního DTIT okna do obrázků. Na těchto obrázcích tak vidíme kompozici scény a světel přesně tak, jak ji v době pořízení obrázků viděl uživatel. DTIT okno pracuje s floatovou přesností barev a proto jsou tyto obrázky ukládány do HDR formátu. Protože je proces tvorby a uložení obrázku poměrně náročný, pracuje třída FileLogger ve vlastním vlákně. To umožňuje ukládat obrázky v pravidelných časových intervalech bez znatelného zpomalení programu. Pro účely rozboru pracovního postupu je potom ze vzniklé posloupnosti obrázků například možné vytvořit video zobrazující postup nasvětlování. FileLogger Interaktivní okno DTIT okno obrázek (interaktivní okno) obrázek ( DTIT okno) Obrázek 5.63: Proces ukládání obrázků 71

73 5.5.2 Záznam pracovního postupu Uživatelský postup práce zaznamenáváme pomocí pravidelného ukládání stavu aplikace. Stav aplikace je definován konfigurací světel a zvoleným režimem navigace. Logování pracovního postupu proto spočívá převážně v průchodu seznamu použitých světel a výpisu jejich atributů do textového souboru. Takto zaznamenané informace jsou užitečné zejména pro strojovou analýzu pracovního postupu. Například tak můžeme pomocí programu Matlab [43] generovat formou přehledových tabulek a grafů, prováděné operace a z nich vyvozovat další závěry. FileLogger LightConfiguration Stack záznam postupu aktuální stav (světelné konfigurace) + aktualizovaný záznam postupu Obrázek 5.64: Proces ukládání pracovního postupu Tvorba záložních souborů Konfigurace světel doplněná o několik dalších informací nám zároveň dobře poslouží ke tvorbě záložních souborů. Tyto soubory obsahují kompletní informace o stavu programu a můžeme tak s jejich pomocí jednoduše implementovat save & load operace. Ačkoliv nejsou tyto operace pro naši uživatelskou studii přímo potřeba, používáme je pro automatickou tvorbu záloh. V případě, že je aplikace v průběhu studie předčasně ukončena nebo dojde k náhlé chybě programu a jeho selhání, lze experiment jednoduše obnovit a pokračovat v rozdělané práci. 5.6 Undo & Redo Undo & redo operace jsou v naší aplikaci implementovány prostřednictvím třídy LightConfigurationStack. Ta obsahuje zásobník s konfigurací světel. Pokud dojde ke změně konfigurace světel, uloží se vždy nová konfigurace na vršek zásobníku. Undo & redo operace potom jednoduše posunují ukazatel na aktivní konfiguraci světel v zásobníku. Undo posouvá ukazatel směrem na dno zásobníku, kde se nacházejí starší konfigurace světel. Redo posouvá ukazatel směrem na vrchol zásobníku, kde se nacházejí novější konfigurace světel. 72

74 S každým posunutím ukazatele v zásobníku je nakonec potřeba aktualizovat GUI a překreslit scénu podle konfigurace světel na kterou míří posunutý ukazatel. Pokud uživatel změní konfiguraci světel jinak než pomocí undo & redo dochází vždy ke smazání všech položek v zásobníku, které se vyskytují nad ukazatelem na aktuální konfigurací. Pro lepší představu viz série obrázků níže. Obrázek 5.65: Undo & redo implementace A: Zásobník obsahující 5 světelných konfigurací. Pomocná šipka ukazuje aktivní světelnou konfiguraci. B: Zásobník po jedné undo operaci. C: Změna konfigurace 1. část - odstranění všech konfigurací nad ukazatelem. D: Změna konfigurace 2. část - přidání nové konfigurace na vrchol zásobníku a nastavení ukazatele na novou konfiguraci. 73

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

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

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

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

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

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

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

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

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

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

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

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

Realistický rendering

Realistický rendering Realistický rendering 2010-2017 Josef Pelikán, CGG MFF UK http://cgg.mff.cuni.cz/ http://cgg.mff.cuni.cz/~pepca/ Festival fantazie, Chotěboř, 4. 7. 2017 1 / 47 Obsah přednášky co je realistický rendering?

Více

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se Kapitola 3 Úpravy obrazu V následující kapitole se seznámíme se základními typy úpravy obrazu. První z nich je transformace barev pro výstupní zařízení, dále práce s barvami a expozicí pomocí histogramu

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

Fotorealistická syntéza obrazu Josef Pelikán, MFF UK Praha

Fotorealistická syntéza obrazu Josef Pelikán, MFF UK Praha Fotorealistická sntéza obrazu 2006 Josef Pelikán MFF UK Praha Josef.Pelikan@mff.cuni.cz 10.4.2006 Obsah přednášk cíle a aplikace realistického zobrazování historie přehled používaných přístupů teoretické

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

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

Stojaté a částečně stojaté vlny

Stojaté a částečně stojaté vlny Stojaté a částečně stojaté vlny Interference 2 postupných vln Dokonalá stojatá vlna: interference 2 vln stejné amplitudy a antiparalelních vlnových vektorů Problém s radiometrickou definicí intensity pomocí

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

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

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

Tvorba kurzu v LMS Moodle

Tvorba kurzu v LMS Moodle Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce

Více

Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty Autor: Mgr. Tomáš Javorský Datum vytvoření: 06 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Anotace:

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

Středoškolská technika SCI-Lab

Středoškolská technika SCI-Lab Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce

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

Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz

Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Aplikace Pattern Constructor je navržena pro tvorbu osové souměrnosti tak, aby odpovídala úrovni dovedností dětí. Tím, že mohou jednoduše

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

Precomputed radiance transfer

Precomputed radiance transfer Precomputed radiance transfer Martin Bulant 11. dubna 2011 Reprezentace funkce na sféře Reálnou funkci na sféře G(x) aproximujeme pomocí lineární kombinace lineárně nezávislých bázových funkcí B i (x):

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

SYSTÉM SCREENS SYSTEM SCREENS

SYSTÉM SCREENS SYSTEM SCREENS SYSTÉM SCREENS SYSTEM SCREENS F. Vaněk 1.LF UK Praha, gyn.por.klinika Abstrakt Systém screens je softwarový nástroj na zvýšení kvality výuky, která je vázána na práci s PC. V základní podobě umožňuje vyučujícímu

Více

ColorNavigator Možnost snadného ručního ( okometrického ) sladění barev na monitoru s tiskem.

ColorNavigator Možnost snadného ručního ( okometrického ) sladění barev na monitoru s tiskem. ColorNavigator 7 1. AUTOMATICKÉ nastavení ICC profilu monitoru pouze jednoduchým stisknutím tlačítka MODE na monitoru a výběrem požadovaného video-režimu monitoru nebo jednoduše ručním nastavení požadovaných

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

Specifikace projektu Ocerus

Specifikace projektu Ocerus Specifikace projektu Ocerus Tým Vedoucí: Ondřej Sýkora (ondrasej@centrum.cz) Členové: Michal Čevora (macjariel@gmail.com) Lukáš Hermann (lukas.hermann@seznam.cz) Ondřej Mocný (hardwire@volny.cz) Tomáš

Více

Základní nastavení. Petr Novák (novace@labe.felk.cvut.cz) 13.12.2010

Základní nastavení. Petr Novák (novace@labe.felk.cvut.cz) 13.12.2010 Základní nastavení Petr Novák (novace@labe.felk.cvut.cz) 13.12.2010 Všechny testy / moduly používají určité základní nastavení. Toto základní nastavení se vyvolá stiskem tlačítka Globální / základní konfigurace

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

Více

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Animace a geoprostor První etapa: Animace 3. přednáško-cvičení Jaromír Landa jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Náplň přednáško-cvičení Nasvícení scény Světelné zdroje umělé

Více

1. Úvod do obsluhy AutoCADu

1. Úvod do obsluhy AutoCADu 1. Úvod do obsluhy AutoCADu Studijní cíl V této lekci se naučíme: Seznámíme se s potřebným zařízením. Způsoby ovládání. Nastavení AutoCADu. Doba nutná k procvičení 1,5 hodiny 1.1 AutoCAD AutoCAD je plnohodnotný

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

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

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

Globální matice konstrukce

Globální matice konstrukce Globální matice konstrukce Z matic tuhosti a hmotnosti jednotlivých prvků lze sestavit globální matici tuhosti a globální matici hmotnosti konstrukce, které se využijí v řešení základní rovnice MKP: [m]{

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

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010 FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku

Více

Rozšíření bakalářské práce

Rozšíření bakalářské práce Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE

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

Global illumination with many-light methods. Martin Kahoun (2011)

Global illumination with many-light methods. Martin Kahoun (2011) Zápisky z přednášky Global illumination with many-light methods Tomáš Zámečník (2012) Martin Kahoun (2011) 1 1 Výpočet globálního osvětlení 1.1 Zobrazovací rovnice v 3b formulaci V této úvodní části se

Více

Záznam dat Úvod Záznam dat zahrnuje tři základní funkce: Záznam dat v prostředí třídy Záznam dat s MINDSTORMS NXT

Záznam dat Úvod Záznam dat zahrnuje tři základní funkce: Záznam dat v prostředí třídy Záznam dat s MINDSTORMS NXT Úvod Záznam dat umožňuje sběr, ukládání a analýzu údajů ze senzorů. Záznamem dat monitorujeme události a procesy po dobu práce se senzory připojenými k počítači prostřednictvím zařízení jakým je NXT kostka.

Více

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice Návod k prezentačnímu mapovému portálu Obsah: 1. Úvod... 3 2. Obecná část mapového portálu...

Více

Dotyková obrázovká v prográmu TRIFID

Dotyková obrázovká v prográmu TRIFID Dotyková obrázovká v prográmu TRIFID Nastavení Nastavuje se volbou funkce SYSTÉMOVÉ FUNKCE/KONFIGURACE/WIN KONFIGURACE (spustí se tlačítkem )/LOKÁLNÍ PARAMETRY/ZÁLOŽKA PRODEJ. V této tabulce lze zapnout

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

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

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy

Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy Centrum Digitální Optiky Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy Výzkumná zpráva projektu Identifikační čí slo výstupu: TE01020229DV003 Pracovní balíček: Zpracování dat S-H senzoru

Více

ZJIŠŤOVÁNÍ CUKERNATOSTI VODNÝCH ROZTOKŮ OPTICKÝMI METODAMI

ZJIŠŤOVÁNÍ CUKERNATOSTI VODNÝCH ROZTOKŮ OPTICKÝMI METODAMI ZJIŠŤOVÁNÍ CUKERNATOSTI VODNÝCH ROZTOKŮ OPTICKÝMI METODAMI FILÍPEK Josef, ČR DETERMINATION OF SUGAR CONTENT IN WATER SOLUTIONS BY OPTICAL METHODS Abstract The content of saccharose in water solution influences

Více

Dell S2419H/S2419HN/S2419NX/ S2719H/S2719HN/S2719NX Dell Display Manager Uživatelská příručka

Dell S2419H/S2419HN/S2419NX/ S2719H/S2719HN/S2719NX Dell Display Manager Uživatelská příručka Dell S2419H/S2419HN/S2419NX/ S2719H/S2719HN/S2719NX Dell Display Manager Uživatelská příručka Model: S2419H/S2419HN/S2419NX/S2719H/S2719HN/S2719NX Regulatorní model: S2419Hc/S2419Nc/S2719Hc/S2719Nc POZNÁMKA:

Více

INOVACE PŘEDMĚTŮ ICT MODUL 9: CAD

INOVACE PŘEDMĚTŮ ICT MODUL 9: CAD Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 9: CAD Metodika Zpracoval: Ing. Miroslav Hrdý srpen 2009 Mezi hlavní cíle tohoto modulu patří zejména

Více

Světlo, které vnímáme, představuje viditelnou část elektromagnetického spektra. V

Světlo, které vnímáme, představuje viditelnou část elektromagnetického spektra. V Kapitola 2 Barvy, barvy, barvičky 2.1 Vnímání barev Světlo, které vnímáme, představuje viditelnou část elektromagnetického spektra. V něm se vyskytují všechny známé druhy záření, např. gama záření či infračervené

Více

i β i α ERP struktury s asynchronními motory

i β i α ERP struktury s asynchronními motory 1. Regulace otáček asynchronního motoru - vektorové řízení Oproti skalárnímu řízení zabezpečuje vektorové řízení vysokou přesnost a dynamiku veličin v ustálených i přechodných stavech. Jeho princip vychází

Více

VLNOVÁ OPTIKA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Optika - 3. ročník

VLNOVÁ OPTIKA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Optika - 3. ročník VLNOVÁ OPTIKA Mgr. Jan Ptáčník - GJVJ - Fyzika - Optika - 3. ročník Vlnová optika Světlo lze chápat také jako elektromagnetické vlnění. Průkopníkem této teorie byl Christian Huyghens. Některé jevy se dají

Více

NOVÉ GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ (GUI)

NOVÉ GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ (GUI) NOVÉ GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ (GUI) UŽIVATELSKÁ PŘÍRUČKA TYP DOKUMENTU: NÁVOD VYHOTOVIL: PETR VONDRÁČEK DATUM VYHOTOVENÍ: 29.3.2012 PLATNOST OD: 29.3.2012 CÍLOVÁ SKUPINA: UŽIVATELÉ B2B PORTÁLU GROW

Více

Uživatelská příručka mapový prohlížeč irso 4.0.

Uživatelská příručka mapový prohlížeč irso 4.0. Uživatelská příručka mapový prohlížeč irso 4.0. Obsah Koncepce mapového prohlížeče Uživatelské rozhraní Práce s mapou Vykreslování mapových podkladů a vrstev Koncepce mapového prohlížeče Prohlížeč slouží

Více

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY 3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY V této kapitole se dozvíte: jak popsat bod v rovině a v prostoru; vzorec na výpočet vzdálenosti dvou bodů; základní tvary rovnice přímky

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

Více

Dotyková obrázovká v prográmu TRIFID

Dotyková obrázovká v prográmu TRIFID Dotyková obrázovká v prográmu TRIFID V současné verzi je možné ovládat pouze klasický prodej, funkce pro variantu GASTRO (účtování na jednotlivé stoly, tisk do kuchyně) jsou zatím ve vývoji. Nastavení

Více

LABORATORNÍ CVIČENÍ Z FYZIKY

LABORATORNÍ CVIČENÍ Z FYZIKY ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE KATEDRA APLIKOVANÉ MATEMATIKY FAKULTA DOPRAVNÍ LABORATORNÍ CVIČENÍ Z FYZIKY Jméno Jana Kuklová Stud. rok 7/8 Číslo kroužku 2 32 Číslo úlohy 52 Ročník 2. Klasifikace

Více

Elektromagnetické pole je generováno elektrickými náboji a jejich pohybem. Je-li zdroj charakterizován nábojovou hustotou ( r r

Elektromagnetické pole je generováno elektrickými náboji a jejich pohybem. Je-li zdroj charakterizován nábojovou hustotou ( r r Záření Hertzova dipólu, kulové vlny, Rovnice elektromagnetického pole jsou vektorové diferenciální rovnice a podle symetrie bývá vhodné je řešit v křivočarých souřadnicích. Základní diferenciální operátory

Více

X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení. Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011

X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení. Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011 X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011 Vychýlené versus nestranné metody Vychýlené vs. nestranné odhady (Biased vs. Unbiased

Více

Hodnoticí standard. Počítačový 3D grafik (kód: N) Odborná způsobilost. Platnost standardu

Hodnoticí standard. Počítačový 3D grafik (kód: N) Odborná způsobilost. Platnost standardu Počítačový 3D grafik (kód: 82-030-N) Autorizující orgán: Ministerstvo kultury Skupina oborů: Umění a užité umění (kód: 82) Týká se povolání: Kvalifikační úroveň NSK - EQF: 5 Odborná způsobilost Název Úroveň

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

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

BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY

BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY ROTAČNÍ POHYB TĚLESA, MOMENT SÍLY, MOMENT SETRVAČNOSTI DYNAMIKA Na rozdíl od kinematiky, která se zabývala

Více

(Následující odstavce jsou zde uvedeny jen pro zájemce.) , sin2π, (2)

(Následující odstavce jsou zde uvedeny jen pro zájemce.) , sin2π, (2) Studium difrakčních jevů TEORIE doplněk: Odvození výrazů pro difrakční maxima (popř. minima) na štěrbině, dvojštěrbině a mřížce jsou zpravidla uvedena na středoškolské úrovni, což je založeno na vhodném

Více

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 38 KONTROLA A POHONY]

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 38 KONTROLA A POHONY] Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Aleš Najman [ÚLOHA 38 KONTROLA A POHONY] 1 ÚVOD Úloha 38 popisuje jednu část oblasti sestava programu Solid Edge V20. Tato úloha je v první části zaměřena

Více

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí

Více

2.5 Rovnováha rovinné soustavy sil

2.5 Rovnováha rovinné soustavy sil Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 2.5 Rovnováha rovinné soustavy sil Rovnováha sil je stav, kdy na těleso působí více sil, ale jejich výslednice

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 2 (POGR2)

Počítačová grafika 2 (POGR2) Počítačová grafika 2 (POGR2) Pavel Strachota FJFI ČVUT v Praze 19. února 2015 Kontakt Ing. Pavel Strachota, Ph.D. Katedra matematiky Trojanova 13, místnost 033a E-mail: pavel.strachota@fjfi.cvut.cz WWW:

Více

Obsah KAPITOLA 1 13 KAPITOLA 2 33

Obsah KAPITOLA 1 13 KAPITOLA 2 33 Obsah KAPITOLA 1 13 Seznámení s programem AutoCAD 13 Úvod 13 Spuštění programu AutoCAD 13 Okno aplikace AutoCAD 16 Ovládací prvky 17 Příkazový řádek 20 Dynamická výzva 24 Vizuální nastavení 24 Práce s

Více

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28. Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace

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

Popis funkcí tlačítek jednotlivých modulů programu OGAMA

Popis funkcí tlačítek jednotlivých modulů programu OGAMA Nevázaná příloha bakalářské práce VYUŽITÍ OPEN-SOURCE NÁSTROJŮ PRO PŘÍPRAVU, PRŮBĚH A VYHODNOCENÍ EYE-TRACKING EXPERIMENTŮ Popis funkcí tlačítek jednotlivých modulů programu OGAMA Michal KUČERA, 2014 Replay

Více

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project

Více

Dell P2018H Dell Display Manager Uživatelská příručka

Dell P2018H Dell Display Manager Uživatelská příručka Dell P2018H Dell Display Manager Uživatelská příručka Model monitoru: P2018H Regulatorní model: P2018Hc POZNÁMKA: POZNÁMKA označuje důležité informace, které pomáhají lépe využít počítač. Copyright 2017

Více

Dotykova obrazovka v programu TRIFID

Dotykova obrazovka v programu TRIFID Dotykova obrazovka v programu TRIFID V současném provedení je ve fázi testování, předpokládá se tedy její spouštění z hlavní nabídky programu TRIFID. K nastavení a spuštění je tedy nutné mít připojenou

Více

3D sledování pozice vojáka v zastavěném prostoru a budově

3D sledování pozice vojáka v zastavěném prostoru a budově 3D sledování pozice vojáka v zastavěném prostoru a budově Úvod Programový produkt 3D sledování pozice vojáka v zastavěném prostoru a budově je navržen jako jednoduchá aplikace pro 3D zobrazení objektů

Více

1. Teoretická mechanika

1. Teoretická mechanika 1. Teoretická mechanika 16 Teoretická mechanika 1.1 Integrální principy mechaniky V teoretické mechanice se hojně používá Einsteinova sumační konvence, diferenciálu a Lagrangeova věta o přírůstku. Pokud

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

Rozvoj tepla v betonových konstrukcích

Rozvoj tepla v betonových konstrukcích Úvod do problematiky K novinkám v požární odolnosti nosných konstrukcí Praha, 11. září 2012 Ing. Radek Štefan prof. Ing. Jaroslav Procházka, CSc. Znalost rozložení teploty v betonové konstrukci nebo její

Více

JEDNOTKY. E. Thöndel, Ing. Katedra mechaniky a materiálů, FEL ČVUT v Praze. Abstrakt

JEDNOTKY. E. Thöndel, Ing. Katedra mechaniky a materiálů, FEL ČVUT v Praze. Abstrakt SIMULAČNÍ MODEL KLIKOVÉ HŘÍDELE KOGENERAČNÍ JEDNOTKY E. Thöndel, Ing. Katedra mechaniky a materiálů, FEL ČVUT v Praze Abstrakt Crankshaft is a part of commonly produced heat engines. It is used for converting

Více

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2 6 Skalární součin Skalární součin 1 je operace, která dvěma vektorům (je to tedy binární operace) přiřazuje skalár (v našem případě jde o reálné číslo, obecně se jedná o prvek nějakého tělesa T ). Dovoluje

Více

Mobilní aplikace. Uživatelský manuál

Mobilní aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace a nastavení... 3 Nastavení přístupu... 4 Registrace docházky... 5 Editace vlastní docházky... 5 Ovládaní z mobilní aplikace... 6 Konfigurace mobilní aplikace...

Více

pro začátečníky pro pokročilé na místě (dle požadavků zákazníka)

pro začátečníky pro pokročilé na místě (dle požadavků zákazníka) Semináře pro začátečníky pro pokročilé na místě (dle požadavků zákazníka) Hotline telefonická podpora +420 571 894 335 vzdálená správa informační email carat@technodat.cz Váš Tým Obsah Obsah... -2- Úvod...

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Technické vybavení Polohovací zařízení Ing. Jakab Barnabáš

Inovace a zkvalitnění výuky prostřednictvím ICT Technické vybavení Polohovací zařízení Ing. Jakab Barnabáš Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Technické vybavení Polohovací zařízení

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

Souřadnicové prostory

Souřadnicové prostory Prostor objektu Tr. objektu Tr. modelu Prostor scény Souřadnicové prostory V V x, y z x, y z z -z x, y Tr. objektu V =V T 1 T n M Tr. modelu Tr. scény x, y Tr. pohledu Tr. scény Tr. pohledu Prostor pozorovatele

Více

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D. Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu

Více

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1)

Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1) Závěrečná práce AutoCAD Inventor 2010 (Zadání D1) Pavel Čurda 4.B 4.5. 2010 Úvod Tato práce obsahuje sestavu modelu, prezentaci a samotný výkres Pákového převodu na přiloženém CD. Pákový převod byl namalován

Více

Typografické konvence 11 Názvosloví 12. Co je Architectural Desktop 13 Objekty Architectural Desktopu 14

Typografické konvence 11 Názvosloví 12. Co je Architectural Desktop 13 Objekty Architectural Desktopu 14 Obsah Úvod 11 Typografické konvence 11 Názvosloví 12 Začínáme s Architectural Desktopem 13 Co je Architectural Desktop 13 Objekty Architectural Desktopu 14 Pracovní prostředí 15 Spuštění aplikace 15 Prvky

Více