Univerzita Karlova v Praze Matematicko-fyzikální fakulta. David Skupien. Experimentální systém pro vržené stíny. Katedra software a výuky informatiky
|
|
- Olga Ševčíková
- před 6 lety
- Počet zobrazení:
Transkript
1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE David Skupien Experimentální systém pro vržené stíny Katedra software a výuky informatiky Vedoucí bakalářské práce: Mgr. Petr Kmoch Studijní program: Informatika, Obecná informatika 2009
2 Na tomto místě bych rád poděkoval vedoucímu práce Mgr. Petru Kmochovi za odborné rady a vstřícný přístup v celém průběhu jejího vzniku. Dále děkuji své přítelkyni a rodině za trpělivost, kterou se mnou měli i v těch nejvíce stresujících chvílích. Prohlašuji, že jsem svou bakalářskou práci napsal samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne David Skupien 2
3 Obsah 1 Úvod Interaktivní vs. neinteraktivní zobrazování Motivace kdo potřebuje realistické stíny? Cíle práce Zobrazování stínů Světelné zdroje Stíny Přehled technik generování stínů Stínová tělesa a plošný příjemce Metoda plošného příjemce Metoda stínových těles Implementace Prostředí a použité knihovny Preprocesor Testovací prostředí Plošný příjemce Stínová tělesa Testy a výsledky Závěr Shrnutí Splnění cílů Diskuze a směr další práce
4 Literatura 34 A Obsah CD 35 B Uživatelská příručka 36 B.1 Systémové požadavky B.2 Instalace B.3 Spuštění aplikace B.4 Ovládání B.3 Konfigurace pomocí vstupního XML souboru C Přidávání stínových algoritmů 41 C.1 Základní vlastnosti C.2 Funkce Run() C.3 Funkce Init() C.4 Funkce SetupShaders()
5 Název práce: Experimentální systém pro vržené stíny Autor: David Skupien Katedra (ústav): Kabinet software a výuky informatiky Vedoucí bakalářské práce: Mgr. Petr Kmoch vedoucího: petr.kmoch@mff.cuni.cz Abstrakt: Vykreslování vržených stínů patří již od zrodu grafiky jako takové k základním metodám navození atmosféry a dojmu realističnosti. Je to velmi těžká úloha, kterou v minulosti, ale i v současnosti řeší specializované stroje v řádech minut na jeden snímek. Díky rychlému rozvoji specializovaného hardwaru se stala zvládnutelnou i pro oblast interaktivní grafiky, a posunula se od jednoduchých geometrických náhražek na rovné podložce až k velmi přesvědčivým imitacím stínů. Cílem této práce je vytvořit grafické prostředí, ve kterém se dají vizuálně i výkonově porovnávat různé metody řešící zobrazování vržených stínů, a následně některé z nich implementovat. Vybrán byl jednoduchý algoritmus pro zobrazování stínů na plošné příjemce a pokročilý algoritmus stínových těles. Oba jsou implementovány v základní a rozšířené variantě, kde je jejich výkon v rozmezí desítek až tisíců snímků za sekundu. Klíčová slova: programování GPU, fotorealistické zobrazování, stínová tělesa, vržené stíny 5
6 Title: Experimental System for Shadowing Algorithms Author: David Skupien Department: Department of software and computer science education Supervisor: Mgr. Petr Kmoch Supervisor s address: petr.kmoch@mff.cuni.cz Abstract: From the advent of computer graphics is rendering of cast shadows one of the basic methods to evoke an atmosphere and give an observer a realistic impression. It has been a very difficult task solved by specialized machines in the order of minutes not only in the past but also in the present. However, thanks to rapid progress of dedicated graphics hardware, it is easy now to master it even for interactive graphics. It has moved from simple geometric excuses on planar receivers to convincing shadow imitations. The aim of this thesis is to develop a graphical environment capable of comparing visual and efficiency properties of different methods specialized for shadow casting and subsequently implement some of them. Two algorithms have been chosen. The first one is a simple algorithm specialized for rendering shadows on planar receivers, the second one is an advanced algorithm called shadow volumes. Both are implemented in a basic and enhanced version and capable of achieving rates from tens to thousands of FPS. Keywords: GPU programming, photorealistic rendering, shadow volumes, cast shadows 6
7 Kapitola 1 Úvod Jedním z hlavních důvodů vzniku počítačové 3D grafiky bylo přání co nejvěrněji modelovat svět, který nás obklopuje. Dnes se rozděluje do mnoha rozdílných odvětví, ale věrohodné (fotorealistické) zobrazování je stále tím hlavním. Základem všeho je světlo. Dalo by se říci, že pokud pomineme neméně důležité fyzikální vlastnosti, jako jsou pohyb a deformace, jediné a zásadní, co počítačová 3D grafika řeší, je chování světla. Zde se hovoří o reakci pevných materiálů, kapalin a plynů, které světlo různě odrážejí, propouští nebo pohlcují. Tato práce se zaměřuje na simulaci jedné z jeho vlastností částečnou nebo úplnou nepřítomnost na nějakém místě scény. 1.1 Interaktivní vs. neinteraktivní zobrazování Počítačová grafika je dnes nedílnou součástí filmového průmyslu. Proč je animace v dnešních filmech mnohem realističtější než u počítačových her? Odpověď je jednoduchá čas. Film má dnes standardně 25 snímků za sekundu (FPS 1 ). Pokud byl nějaký z nich obohacen o animaci, čas na jeho renderování není z pravidla tolik omezen. Pro každý snímek jsou k dispozici řádově minuty procesorového času na velmi výkonných strojích. Případně u fotografií nemusí být výjimkou i hodiny. V interaktivním světě je situace zcela odlišná. Minimální hodnota FPS 1, kdy lidské oko není schopno rozeznat jednotlivé snímky, je zpravidla 25. Avšak u některých druhů počítačových her (například FPS 2 ) je pro plynulost požadováno 60 snímků a více. Navíc se všechny musí kompletně zpracovat a zobrazit v reálném čase. 1 FPS = Frames Per Second (snímky za vteřinu) 2 Zde jde o shodu zkratky, ale význam je First-person Shooter (podžánr akčních PC her) 7
8 1.2 Motivace kdo potřebuje realistické stíny? Proč se zabývat stíny? Stín je veličina, na kterou jsme podvědomě zvyklí a bez které pro nás nebude téměř žádná scéna vypadat realisticky čím je stín kvalitnější, tím je kvalitnější i zážitek z pohledu na ni. Některé hry jsou pro svůj efekt na stínech více či méně založené. Za zmínku stojí například Doom III (obrázek 1.1) nebo F.E.A.R. Proto ve všech scénách, kde se kamera pohybuje blízko nějakých objektů, které jsou osvětleny alespoň jedním světelným zdrojem, by stíny v žádném případě neměly chybět už jen kvůli jejich nutnosti pro rozeznávání polohy objektů pozorovatelem. Hlavním problémem veškerých interaktivních aplikací je potřeba jejich okamžité reakce na změnu libovolných parametrů scény stíny se hýbou v závislosti na pohybu těles a světel. Jak uvidíme v následujících kapitolách, s kvalitou rostou rapidně i nároky na výkon počítače. Obrázek 1.1: Ukázka stínů ze hry Doom III. 1.3 Cíle práce Má práce se zaměřuje na splnění následujících cílů: 1. Prostudovat současné techniky pro zobrazování stínů v reálném čase. 2. Implementovat základní verze některých z těchto technik, následně je po vizuální stránce vylepšit. 3. Vytvořit testovací platformu, do které bude možnost algoritmy přidávat, vyvíjet je a testovat třetí stranou. 8
9 Kapitola 2 Zobrazování stínů 2.1 Světelné zdroje Světla jsou velmi důležitou součástí každé uměle vytvořené scény. Ačkoli pro syntézu reálného obrazu by byl potřeba fyzikálně velmi věrohodný model, v počítačové grafice se používají zjednodušené varianty kvůli výpočetní složitosti. Stefan Brabec [1] uvádí následující světelné zdroje (zde jsou vybrány jen ty nejdůležitější). Základním světelným zdrojem je bodové světlo (angl. point light). Paprsky se šíří z jednoho bodu všemi směry. Je vhodné pro scény, kde se zdroj nachází v blízkosti objektů. Jeho upravenou variantou je směrové světlo (angl. spot light), pod kterým si můžeme představit laser nebo reflektor, který vytváří světelné paprsky šířící se v kuželu definovaným výřezovým úhlem (angl. cutoff angle). Další variantou jsou lineární světla (angl. linear light), pod kterými si za jistých okolností můžeme představit zářivky nebo neony. Velmi často používaná plošná světla (angl. area light) jsou důležitá pro navození realističnosti při generování měkkých stínů. V reálném světě kromě plošné varianty jiné typy zdrojů světla prakticky neexistují, ale v závislosti na vzdálenosti od příjemce je můžeme zjednodušovat do předchozích variant 1 (obrázek 2.1). V počítačové grafice existují i komplexnější modely, ale nejčastěji se používají bodová, plošná, směrová světla a jejich kombinace. 1 Napřiklad žárovka je považována za bodově světlo, ale ve vzdálenosti 10 cm od krabičky sirek tak rozhodně nepůsobí. 9
10 a) bodové b) směrové c) lineární d) plošné Obrázek 2.1: Světelné zdroje. 2.2 Stíny Při vytváření realistických stínů je třeba kontrolovat dopad paprsků světla na všechny body zobrazené scény. Některá místa mohou být mimo kužel světla nebo mohou být zastíněna jinými tělesy. Cílem algoritmů pro generování realistických stínů je tato místa nalézt a správně zobrazit geometrii, která stín vytváří. Samozřejmě existují aproximativní metody navozující pouze dojem stínu, ale těmi se tato práce nezabývá. Dalším zajímavým aspektem jsou měkké vs. tvrdé stíny, které vznikají v závislosti na druhu zdroje světla. Tvrdé stíny jsou následkem bodových zdrojů světla. Jejich hrany jsou ostré po celém obvodu, tato část stínu se nazývá umbra (Stín). Naopak měkké stíny vznikají interakcí tělesa s plošným zdrojem světla. Tím dostáváme opravdu přirozené a věrohodné stíny (obrázek 2.2), kde je patrná absolutně zastíněná část umbra a částečně zastíněná část penumbra (Polostín). Měkký stín je ale v mnoha případech výpočetně náročnější, právě kvůli částečně zastíněné ploše. Podle [2] se vyzařování způsobené homogenním plošným světlem dá vyjádřit jako: (2.1) 10
11 kde θ i je úhel, pod kterým dopadá paprsek světla na povrch tělesa, θ l je úhel mezi paprskem světla a normálou světla, L je intenzita světla a V maska viditelnosti která je nastavena na 1 pro paprsky viditelné z daného bodu a 0 pro ostatní. Mnoho technik tento integrál zjednodušuje na: (2.2) kde N je počet vzorkování pro jedno plošné světlo a ATT činitel útlumu. světelný zdroj světelný zdroj osvětleno umbra osvětleno osvětleno penumbra umbra penumbra osvětleno a) tvrdý stín b) měkký stín Obrázek Přehled technik generování stínů Existuje velké množství prací zaměřených na toto téma. Zde se zaměřím pouze na nejznámější a nejpoužívanější metody generování stínů pro interaktivní aplikace. Většina z nich využívá techniky pro odstraňování geometrií, které nejsou vidět z pohledu kamery, známé z OpenGL nebo DirectX. V tomto případě je pro část výpočtu považován zdroj světla za oko pozorovatele. Místa, která nejsou z jeho pozice vidět, se následně odstraní Paprsky stínů Použitím metody vrhání paprsků, se zjišťuje činitel útlumu bodových nebo lineárních zdrojů světla. Pro tuto metodu se používá hrubá síla pro zjištění interakce všech paprsků s veškerými objekty ve scéně. Tento proces může být přesunut pomocí programovatelných vertex a fragment shaderů přímo na GPU 2, kde se scéna dá reprezentovat pomocí textur [3]. Následně se ve fragment shaderu spočítají interakce a promítnou stíny. Tato metoda je ale vhodná pouze pro středně komplexní scény. Na druhou stranu se s ní dají generovat měkké stíny reprezentací plošného zdroje světla například větším množstvím zdrojů bodových. 2 Grafický procesor (z angl. Graphics Processing Unit) 11
12 2.3.2 Geometrická analýza Zde jde o poměrně složitou metodu, kde se pomocí geometrické analýzy hledají místa ve scéně, ze kterých světlo, případně jen jeho část, není vidět. Vhodným postupem je projekce scény z pohledu světelného zdroje [4] a následné stínování každého bodu buďto analyticky nebo opětovným vzorkováním. Na první pohled je patrné, že tento postup není příliš vhodný pro interaktivní aplikace, ale existují implementace, které dokážou celý proces aproximovat [5] Stíny na plošných příjemcích Pro velmi specifické situace, kde se stín promítá na rovnou podložku, není třeba složitě generovat stín, ale stačí promítnout celé těleso. Tato metoda je vhodná z důvodu téměř nulové náročnosti jen se každé těleso bez složitých úprav zobrazí podruhé (obrázek 2.3). Je třeba pouze provést projekci vyjádřitelnou pomocí matice o rozměrech 4x4 (podrobněji v kapitole 3). a) ilustrativní příklad b) jednotlivé stěny c) výsledný stín Obrázek 2.3: Stín na plošném příjemci Stínové mapy Stínové mapy (angl. Shadow Maps) patří v dnešní době mezi velmi oblíbené algoritmy. V roce 1978 předvedl ve svém algoritmu Lance Williams [6] základní myšlenku generování stínů pomocí zjednodušené reprezentace scény. V prvním kroku je scéna zpracována z pohledu světelného zdroje. Do dvourozměrného pole (mapy stínů) se následně uloží hodnoty depth bufferu reprezentující nejbližší viditelná místa (obrázek 2.4). Ve druhém kroku je scéna opět zobrazena, tentokrát z pohledu kamery. Každý pixel je následně transformován do souřadnicového systému světelného zdroje pro porovnání jeho vzdálenosti s mapou stínů. Nevýhodou algoritmu jsou nekvalitní okraje stínů způsobené rozlišením stínové mapy. Většina úprav základního algoritmu se zabývá hlavně odstraněním této vady. 12
13 a) b) Obrázek 2.4: Příklad scény (a) a náležící stínové mapy (b). Obrázky převzaty z [1] Stínová tělesa Stínová tělesa (angl. Shadow Volumes) se stala od svého uvedení Franklinem C. Crowem v roce 1977 [7] oblíbeným algoritmem obzvlášť pro svou vysokou kvalitu generovaných stínů. Je rozdělen do 3. kroků. V prvním jsou všechna tělesa zpracována z pohledu světelného zdroje. Pro každý objekt a světlo je vytvořena silueta na hraně mezi jeho osvětlenou a neosvětlenou částí. Tato silueta je následně protažena do nekonečna. V místech, ze kterých není světelný zdroj vidět, vzniká stínové těleso. Druhý a třetí krok se mírně liší podle implementace, kde se s použitím stencil bufferu označí veškerá neosvětlená místa ve scéně podrobněji v kapitole 3. 13
14 Kapitola 3 Stínová tělesa a plošný příjemce V této kapitole bych chtěl podrobněji představit základní verze metod plošného příjemce a stínových těles. Zmínit jejich výhody, nevýhody a nedostatky. Hlavně u stínových těles, které jsem se ve své implementaci snažil vizuálně vylepšit. Obě metody jsou vizuálně, výkonově i obtížností jejich implementace zcela odlišné, proto byly vybrány a implementovány pro demonstraci těchto rozdílů. 3.1 Metoda plošného příjemce Jak bylo zmíněno v předchozí kapitole, jedná se o velmi jednoduchý algoritmus vhodný pouze pro speciální případy, kde stín dopadá na rovnou podložku, a kde není třeba řešit jeho interakci s ostatními tělesy. V té chvíli je metoda plošného příjemce ideálním kandidátem pro požadovanou aplikaci. Není třeba složitě zjišťovat zakrytá místa, stačí pouze vytvořit transformační matici, která promítne osvětlené těleso na podložku. Pro jednoduchost předpokládáme polohu podložky ve výšce y=0. Projekci p bodu v na podložku podle světla l lze vyjádřit následovně: (3.1) (3.2) Algoritmus takto trpí dvěma nedostatky. V případě menšího plošného příjemce může stín přesahovat přes jeho hranu (obrázek 3.1 a). Tento 14
15 problém se ale dá vyřešit použitím stencil bufferu. Druhým nedostatkem je projekce stínu i v případě, že světelný zdroj je v poloze mezi objektem a příjemcem (obrázek 3.1 b). Řešení je opět jednoduché, stačí pouze otestovat polohu světla. a) b) Obrázek 3.1: Nedostatky plošného příjemce. 3.2 Metoda stínových těles Myšlenka vrhání stínů pomocí stínových těles patří ke starším metodám, ale od prvního uvedení Franklinem C. Crowem [7] je stále hojně používaná. Dalo by se říci, že jde o základní a stěžejní metodu pro vrhání realistických stínů. Od uvedení původní verze se objevilo velké množství úprav a vylepšení algoritmu co se týče vlastností a místa zpracování (CPU, GPU a jejich kombinace) Základní princip V případě, že je algoritmus použit v dynamické scéně, kde se hýbou objekty nebo světla, je potřeba každý snímek vykonat následné kroky: 1. vytvořit aktuální stínové těleso 2. zobrazit přední stranu stínového tělesa a inkrementovat stencil buffer v místech viditelných z pohledu kamery (depth test projde). Vše s vypnutým zápisem do frame a depth bufferu. 3. zobrazit zadní stěnu stínového tělesa a dekrementovat stencil buffer v místech viditelných z pohledu kamery (depth test projde). Vše s vypnutým zápisem do frame a depth bufferu. Tyto 3 kroky se týkají původní Crowovy depth-pass verze. Ostatní úpravy se více, či méně liší ve všech krocích. Největší rozdíl je ve tvaru stínových těles (první krok), kdy různé metody požadují uzavření horní 15
16 a spodní podstavy, případně protažení tělesa do nekonečna. Navíc pro statické scény stačí stínové těleso vytvořit pouze jednou při inicializaci. Druhý a třetí krok se liší hlavně v práci se stencil bufferem Vytváření stínového tělesa Prvním krokem vytváření stínových těles je nalezení siluety objektu, tj. hranice (z pohledu světla) viditelné a zakryté části. Ta je tvořena hranami, buďto dvojice osvětlených a neosvětlených trojúhelníků, nebo hranami trojúhelníků bez sousedů. Zjistit, zda je trojúhelník osvětlen, se dá velmi snadno testem, jestli je světelný zdroj na přední straně jeho plochy. Tento krok musí být uskutečněn při každé změně polohy trojúhelníku nebo světla. V případě mé implementace se celé stínové těleso aktualizuje každý snímek. Základní postup hledání siluety popisuje následující algoritmus v pseudokódu: for všechny trojúhelníky if trojúhelník osvětlen zkontroluj jeho hrany jestli: a) jsou sdíleny s neosvětleným trojúhelníkem b) jsou na okraji objektu if jedna z podmínek splněna, hrana je součástí siluety end end Je dobré zmínit, že tato operace se svou složitostí O(n 2 ) patří ke dvěma výpočetně nejdražším částem celého algoritmu. Pokud ale trojúhelník z inicializace zná své sousedy, složitost se zmenší na O(n), paměťové nároky však vzrostou. Posledním úkolem je promítnout siluetu standardně do nekonečna. Dvojice bodů každé hrany siluety je promítnuta do předem definované vzdálenosti, případně do nekonečna použitím homogenního 4D souřadnicového systému 1. Tím vznikne čtyřúhelník reprezentující jednu ze stěn stínového tělesa. Takto vznikne nekonečná geometrie, kterou je požadované stínové těleso. V depth-fail verzi je naopak třeba konečné stínové těleso s uzavřenou podstavou. Pokročilejší algoritmy hledání siluety představili například Norman Chin a Steven Feiner [8], kteří upravili BSP 2 schéma. Pro každé světlo je 1 (x, y, z, w), kde hodnota w je 1 pro body a 0 pro vektory 2 BSP = Binary Space Partitioning 16
17 vytvořen BSP strom, který reprezentuje celé stínové těleso. Poté následovalo ještě několik úprav pro zvýšení rychlosti zpracování, ale i tak BSP stromy nejsou pro dynamické scény ideální. McCool [9] v roce 2000 představil algoritmus, který vytváří stínové těleso pomocí hloubkové mapy. V té se hledají nespojitosti, ze kterých se stanou ohraničující polygony stínového tělesa. Tato metoda ale trpí jejím nízkým rozlišením, vedoucím k nežádaným artefaktům na ploše příjemce. Další možností je přesunout celý výpočet přímo na GPU a využít tak jeho masivního paralelismu, které přináší ještě další výhody v případě, že budeme objekty na grafické kartě deformovat. Tento postup s použitím světového souřadného systému a 4D textur představil v roce 2003 Stefan Brabec [1]. Jako hlavní důvody pro přenos výpočtu uvádí nutnost synchronizace GPU a CPU v původní verzi. Aplikace navíc získá více procesorového času, který algoritmus prakticky úplně přestane využívat. Dalším důvodem jsou rozdíly v přesnosti výpočtů mezi CPU a GPU, kde například sqrt(x) může na obou jednotkách vést k významně rozdílným výsledkům vedoucím k chybám obrazu Depth-pass vs. depth-fail Crowova depth-pass verze algoritmu má jedinou, ale zásadní nevýhodu. V případě, že se kamera dostane dovnitř stínového tělesa, algoritmus přestane fungovat v druhém kroku se neinkrementuje stencil buffer, protože není vidět přední stěna stínového tělesa. Řešení (ale zároveň i další problémy) přinesl John Carmack, Bill Bilodeau a Mike Songy v algoritmu známém jako Carmack s reverse [10]. Základní myšlenka se liší v 2. a 3. kroku: 2. Zobraz zadní stěnu stínového tělesa. V případě, že selže depth test (stěna není vidět), inkrementuj stencil buffer. Opět s vypnutým zápisem do frame a depth bufferu. 3. Zobraz přední stěnu stínového tělesa. V případě, že selže depth test, dekrementuj stencil buffer. Vše s vypnutým zápisem do frame a depth bufferu. Díky této úpravě algoritmus funguje i v případě, že kamera vstoupí do stínového tělesa. Problémy ale nastanou, jakmile stínové těleso narazí na zadní clipping plane hranice, za kterou se již nic nezobrazuje. V tu chvíli se promítnou fragmenty inverzního stínu přímo na zastíněnou plochu. Tento problém se dá v některých případech snadno vyřešit uzavřením stínového tělesa ve vhodné vzdálenosti vytvořením podstavy, 17
18 nebo ještě lépe jejím promítnutím přímo na clipping plane. Někdy je bohužel třeba pokročilejší metoda. Další zajímavé a velmi elegantní řešení problému se vzdáleností zadní clipping plane je její posunutí do nekonečna. Tím stínové těleso prakticky nemá šanci clipping plane protnout ale je stále třeba ho uzavřít, navíc se mírně zhorší přesnost depth bufferu. Úpravu projekční matice pro tuto situaci v OpenGL představil Eric Lengyel [11]. Depth-pass verze má ale podobný problém naopak s přední clipping plane. Je možné ho řešit projekcí stejně jako u dept-fail (Diefenbach [12], obrázek 3.2), ale v některých případech se objevují chyby v nepřesnosti výpočtů a vznikají tzv. díry, navíc jde o výpočetně složitou operaci. Triviální metoda řešící tento problém bohužel neexistuje, ale na druhou stranu se projevuje jen v malém počtu situací. Obrázek 3.1 ilustruje příklad tohoto problému. přední clipping plane přední clipping plane stín? otevřené stínové těleso uzavřené stínové těleso a) b) Obrázek 3.2: Problém s přední clipping plane u depth-pass verze algoritmu. Ani jedna z těchto dvou metod není dokonalá (rychlost, robustnost), ale jejich kombinací, a vyhýbáním se velmi specifickým situacím, lze dosáhnout opravdu robustního generování kvalitních stínů. Zde je jejich souborné srovnání: výhody: Depth-pass jednodušší na implementaci nevyžaduje uzavírání stínových těles je rychlejší nevýhody: nefunguje s kamerou uvnitř stínového tělesa problém s přední clipping plane nemá triviální řešení 18
19 výhody: Depth-fail robustní metoda nevýhody: výpočetně i implementačně náročnější může vyžadovat nekonečnou perspektivní projekci vyžaduje uzavření obou podstav stínového tělesa Měkké stíny Stínová tělesa nejsou příliš vhodná pro generování měkkých stínů. Algoritmus naopak vytváří velmi přesně a ostře ohraničený okraj stínu, který se následně musí uměle změkčovat. První možností je několikanásobné vzorkování, což podstatně zvýší složitost algoritmu. Dále již delší dobu existuje algoritmus uvedený Tomoyukim Nishitou a kol. [13] v roce Ten konstruuje zvlášť stínové těleso pro měkkou i tvrdou část stínu. Pro plošná světla byl v roce 2003 představen algoritmus nazvaný penumbra wedges [14], který generuje klíny místo jednoduchých stěn stínového tělesa. Výpočet těchto klínů je komplikovaný, ale přesto v jisté míře použitelný pro interaktivní grafiku. 19
20 Kapitola 4 Implementace Cílem této části mé práce bylo vytvořit samostatnou aplikaci vhodnou pro testování a vyvíjení stínových algoritmů. Byl kladen důraz na snadné přidání nových algoritmů a jednoduchou konfiguraci testovací scény. V aplikaci lze použít libovolný objekt definovaný v standardně používaném OBJ formátu (.obj), použít libovolné textury v standardním grafickém formátu (.bmp,.emf,.gif,.ico,.jpg,.wmf,.tga) a vytvořit tak libovolnou scénu konfigurací vstupního souboru (.xml). 4.1 Prostředí a použité knihovny Programovací jazyk zvolený pro implementaci prostředí i jednotlivých stínových algoritmů je C++. A to hlavně díky své rychlosti, rozšířenosti ve světě počítačové grafiky a počtu použitelných knihoven. Pro shadery implementovaných algoritmů byl použit jazyk CG. Aplikace byla vytvořena pro operační systém Windows XP nebo vyšší. Vývoj byl proveden na Windows XP SP3. Při implementaci byly použity následující knihovny: GLUT Volně šiřitelná knihovna fungující jako nadstavba OpenGL, která obstarává vytvoření oken a menu, dále kontroluje reakci na myš a klávesnici. expatpp Načítání konfiguračních XML dokumentů. TextureLoader Plné zpracování textur různých vstupních formátů. Zde děkuji Chrisu Leathleymu za volnou distribuci jeho knihovny [15]. 20
21 Licence jednotlivých knihoven jsou k dispozici v souboru licences.txt na přiloženém disku CD-ROM. Všechny jsou platformě nezávislé. 4.2 Preprocesor Veškeré zpracování vstupních dat si aplikace provede sama při každém spuštění v závislosti na konfiguraci vstupního XML souboru. Toto předzpracování se týká hlavně spočtení chybějících normál objektů nebo zjištění sousednosti trojúhelníků, která je důležitá pro snížení výpočetní složitosti běhu algoritmu stínových těles. 4.3 Testovací prostředí Testovací prostředí (nazvané Shadow Algorithms) je důležitou součástí této práce z důvodu jeho použitelnosti pro vývoj a testování algoritmů jiných autorů. Bylo navrženo a zdokumentováno tak, aby případný zájemce mohl velmi snadno přidat nové algoritmy a případně prostředí rozšířit nebo upravit. Je rozděleno do modulů obstarávající základní funkce vhodné pro stínové algoritmy jako například zobrazení objektů, transformace matic, vektorů, atd. Navíc, díky knihovně expatpp, je možné jednoduše přidávat další parametry konfiguračního XML souboru. Program je sestaven tak, aby veškeré funkce byly intuitivně seskupeny podle svého účelu. Kromě stínových algoritmů, knihovny pro načítání XML a modulu pro zobrazování primitiv není objektově orientovaný z důvodu potřeby algoritmů rychle přistupovat ke globálním proměnným. Některé potřebují vidět prakticky na všechny proměnné, se kterými prostředí pracuje. V tu chvíli objektový návrh ztrácí smysl. Veškeré podrobné informace jsou v programátorské dokumentaci na přiloženém disku CD- ROM. Z důvodu potřeby některých stínových algoritmů pracovat různě s testovací scénou, povinnou vlastností každého z nich je zobrazit všechny objekty buďto voláním funkcí, které nabízí prostředí, nebo jejich vlastní implementací, která se většinou liší pouze v detailech. Jediné, co prostředí ze scény zobrazí, jsou světla, čítač FPS a clipping planes. Prostředí je velmi jednoduše ovladatelné pomocí klávesnice a myši. Za běhu programu je možné přepínat algoritmy, případně měnit jejich parametry, vypínat/zapínat shadery a světla. Kamera se může libovolně pohybovat a natáčet po celé scéně. 21
22 4.4 Plošný příjemce Metoda plošného příjemce byla implementována ve 2 variantách. Nebyl na ni kladen takový důraz jako na stínová tělesa, proto obě verze kontrolují pouze polohu světla kvůli falešnému stínu, ale přesah přes hranu příjemce neřeší. První varianta promítá objekt v černé barvě 0.03 jednotky nad příjemce z důvodu nepřesnosti ve výpočtech u čísel s plovoucí řádovou čárkou se při promítání přímo na podložku stín může s rostoucí vzdálenosti kamery ztrácet. Druhá varianta pracuje shodně, pouze oblast stínu místo začernění ztmaví. 4.5 Stínová tělesa Stejně jako u plošného příjemce byl algoritmus implementován ve dvou variantách. První z nich je naprosto standardní verze popsaná v kapitole 3. Vzhledem k vizuálním nedostatkům ale vznikla ještě druhá varianta, která tyto neduhy originálního algoritmu zcela odstranila. Obě varianty jsou typu depth-pass. Oba algoritmy jsou shodné svými požadavky. Při jejich inicializaci je potřeba najít, popřípadě načíst, sousedy každého trojúhelníku testovací aplikace ve své inicializaci převádí veškeré konvexní mnohoúhelníky na trojúhelníky, takže jiné geometrie není třeba řešit. Hledání sousedů je operace s kvadratickou složitostí, proto je pro detailnější objekty možné zpracovanou sousednost uložit do souboru ve formátu.txt (podrobněji v uživatelské příručce). Z kapitoly 3 společně s potřebou inicializovat sousednost je patrné, že stínové těleso je vytvořeno na CPU. Vzhledem k velkému rozmachu vícejádrových procesorů jsem nepovažoval za nutné příliš šetřit procesorový čas. Paměťové nároky tak vzrostly o 3*32*n bitů, kde n je počet trojúhelníku, ale odměnou je zrychlené hledání siluety osvětleného tělesa se složitostí O(n). Za účelem co nejvíce oddělit stínové algoritmy od testovacího programu mají obě implementace stínových těles pro svou potřebu upravené kopie všech objektů ve scéně, ale zároveň využívají originální objekty a ostatní globální proměnné, ke kterým mají neomezený přístup. Neuzavřené stínové těleso je složeno průměrně z méně jak polovičního počtu trojúhelníků původního tělesa. U velmi jednoduchých objektů jich může být více, ale i tak jsou jeho paměťové nároky zanedbatelné. Po vytvoření stínového tělesa se začínají verze lišit. První se drží popsaného 22
23 algoritmu a pro každé světlo provede všechny 3 kroky. Do stencil bufferu se tak uložilo každé místo scény, které není osvětleno alespoň jedním světlem. Tyto oblasti jsou následně ztmaveny a algoritmus končí. Na první pohled má tento postup několik nedostatků: 1. Všechny stíny od různě intenzivních světelných zdrojů jsou stejně tmavé, navíc jejich překřížením nevzniká tmavší zastíněná oblast. 2. Stíny nereagují na barevnost světelných zdrojů. 3. Zastíněná oblast reaguje na ambientní i spekulární složku. 4. Na zaoblených objektech vzniká nepřirozená hranice mezi osvětlenou a zastíněnou částí, což je vizuálně nejnepříjemnější vlastnost algoritmu, způsobená jednolitým ztmavením všech míst dopadu stínu včetně odvrácené strany objektu, bez ohledu na jakékoliv stínování. Druhá verze přistupuje k problému odlišným způsobem. V první fázi se do akumulačního bufferu zobrazí celá scéna pouze s ambientním osvětlením. Dále se zvlášť pro každé světlo připíše osvětlená část scény, neosvětlená část se ztmaví bylo to nutné, protože jinak vznikaly inverzní stíny. Tímto postupem scéna se shodnými parametry působí tmavším dojmem, ale odstraňuje všechny zmíněné nedostatky originálního algoritmu. Zobrazí se tak velmi pěkné a barevně propracované stíny. Obrázek 4.2 demonstruje vizuální rozdíly u 1. a 2. nedostatku původní verze (a) a jejich eliminace u druhé verze (b), při použití dvou různobarevných světelných zdrojů. a) b) Obrázek 4.2: Reakce na dva různobarevné světelné zdroje obou verzí algoritmu. Díky opětovnému vykreslování nezastíněných částí scény pro každý světelný zdroj se v oblasti stínu neprojeví difuzní a spekulární složka. Obrázek 4.3 demonstruje scénu, s jedním světelným zdrojem s šedou ambientní, červenou difuzní a zelenou spekulární složkou, první (a) a druhé 23
24 (b) verze algoritmu. Druhá verze tento problém eliminuje i při použití dvou a více světelných zdrojů. a) b) Obrázek 4.3: Problém reakce na ambientní i spekulární složku světla uvnitř stínu. Původní verze (a), opravená verze (b). Posledním eliminovaným nedostatkem původního algoritmu jsou ostré hrany přechodu mezi zastíněnou a osvětlenou částí objektu. U obou algoritmů je použito Phongovo stínování, které uměle zaobluje hrany mezi trojúhelníky. Pozorovatel díky tomu vidí objekt jako jednolitou plochu, na které jsou zamaskovány plošky jednotlivých trojúhelníků. Oproti tomu pro stínová tělesa je bohužel relevantní pouze hranice mezi trojúhelníky viditelná na obrázku 4.4 (a) původního algoritmu, kde jsou použity 3 světelné zdroje. U více světelných zdrojů má použití akumulačního bufferu (u druhé verze algoritmu) za následek zjemnění rozdílů mezi těmito oblastmi, které demonstruje obrázek 4.4 (b). a) b) Obrázek 4.4: Přechody mezi osvětlenou a zastíněnou částí objektu. 24
25 4.6 Testy a výsledky Nejprve, než se dostaneme k samotným testům, bych rád podrobněji popsal testovací aplikaci a samotné algoritmy. Výsledky poté budou srozumitelnější. Poměrně často se setkávám se situací, kdy na internetu naleznu pěkný objekt ve formátu.obj, který bohužel ve své definici nemá přiloženy normálové vektory, které jsou kriticky nutné pro použité Phongovo stínování. V konfiguračním XML souboru je možnost normály objektu po zpracování uložit nebo načíst. V případě, že objekt je nemá definované a není zadán soubor pro jejich načtení, program je nejprve vytvoří kolmé na plochu svého trojúhelníku, a následně změní jejich směr podle sousedů. To má hned dva následky. Hranaté objekty bez normál se budou jevit zaobleně a pro složitější objekty bude výpočet trvat delší dobu. Totéž platí i pro hledání sousednosti pro stínová tělesa, kde je již pro 7000 trojúhelníků výpočet opravdu dlouhý. Tato příprava není stěžejní částí mé práce, proto nebyla optimalizována. Navíc, při dalším spuštění tento problém odpadá. Všechny algoritmy je možné používat s vypnutými i zapnutými shadery, ale nastavení světelných zdrojů testovacích scén bylo optimalizováno pro jejich použití s vypnutými shadery se scéna jeví přepáleně. Testovací program disponuje předpřipraveným Phongovým stínováním, které používají všechny algoritmy kromě rozšířené verze stínových těles. Ta má svou upravenou verzi pracující pro každé světlo zvlášť. Vzhledem k potřebě Phongova stínování normalizovat normálové vektory přímo ve fragment shaderu GPU, se jedná o jediný zásadně zpomalující prvek grafického jádra. Plošný příjemce je jednoduchý algoritmus, který pro svou jedinou operaci (vytvoření stínové matice) využívá CPU. Obě varanty stínových těles vyžadují synchronizaci CPU a GPU, kdy optimalizovaná verze vytváření stínového tělesa zatěžuje jedno jádro CPU standardně na 100%. GPU obstarává stínování a stencil buffer spolu s akumulačním bufferem u druhé varianty. Phongovo stínování a vytváření stínového tělesa jsou dvě nejnáročnější operace, což se razantně projevuje na výkonu. Teď k samotnému testování. Testy probíhaly na pracovní stanici s procesorem Intel Core 2 Duo 2,8 GHz s operační pamětí 2 GB DDR2 800MHz a grafickou kartou Nvidia GeForce 9600 GT s 512MB GDDR3 VRAM v rozlišeních 1024x768, 1280x1024, 1600x1200 a 1920x
26 Pro test byly použity 2 scény. První s 5 objekty o celkovém součtu 74 trojúhelníků (Obrázek 4.5 a), druhá s jediným objektem a 7446 trojúhelníky (Obrázek 4.5 b). Celkem jsem provedl 8 testů nazvaných T 1 -T 8, každý ve všech uvedených rozlišeních: Test # Světelných zdrojů Shadery Scéna T 1 1 vypnuté č.1 T 2 1 zapnuté č.1 T 3 3 vypnuté č.1 T 4 3 zapnuté č.1 T 5 1 vypnuté č.2 T 6 1 zapnuté č.2 T 7 3 vypnuté č.2 T 8 3 zapnuté č.2 Rozdíl testů je v počtu světelných zdrojů, použití shaderů a použité scéně. Vzhledem ke koncepci programu, kdy se stínová tělesa a stínové matice počítají i v případě, kdy objekt není vidět, pohyb kamery neměl na měřené výsledky téměř žádný vliv. Proto všechny následující hodnoty jsou zprůměrovány a zaokrouhleny směrem dolů za 10s běhu se statickou kamerou. V žádné z testovacích scén není vidět zadní clipping plane, právě proto byl každý druhý test proveden s vypnutými shadery pro ilustraci složitosti Phongova stínování. Obrázek 4.6 ilustruje výkon algoritmů u první scény s vypnutými shadery (test T 1 ). První verze stínových těles je hned v závěsu za oběma variantami plošných příjemců. U vylepšené verze je naopak patrný vliv akumulačního bufferu, který výkon omezuje. Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.6: Test T 1 26
27 Obrázek 4.7 ilustruje shodnou scénu se zapnutými shadery. Zde se právě ony stávají omezujícím článkem, a všechny algoritmy mají velmi podobné výsledky. Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.7: Test T 2 Přidání dvou světelných zdrojů s vypnutými shadery nemá na plošného příjemce prakticky žádný efekt. Zatímco u obou variant stínových těles je pozorovatelný propad výkonu až o 40% (viz obrázek 4.8): 3500 Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.8: Test T 3 Opětovnou aktivací shaderů při použití 3 světelných zdrojů jsou všechny algoritmy výkonnostně podobné (obrázek 4.9). Pouze u upravených stínových těles se opět projevuje zpomalení zaviněné několikanásobným zobrazováním scény do akumulačního bufferu. 27
28 Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.9: Test T 4 U druhé scény je situace zcela rozdílná. Při použití jediného světelného zdroje s vypnutými shadery je výkon prvního algoritmu stínových těles zcela zřetelně omezen CPU (obrázek 4.10). Tento fakt je prokazatelný ze stabilní hodnoty FPS ve všech rozlišeních. Graf také ukazuje, že optimální rozlišení této scény pro vyváženou spolupráci CPU a GPU u stínových těles je 1920x1200. Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.10: Test T 5 Po zapnutí shaderů se upravená stínová tělesa drží na téměř totožných hodnotách, tentokrát je rovnoměrné rozložení sil CPU a GPU na jejich straně. Ostatní algoritmy ztrácí vinou shaderů (viz obrázek 4.11). 28
29 700 Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.11: Test T 6 Přidáním dalších dvou světelných zdrojů je na výkonu stínových těles stále patrnější vliv CPU a již obě varianty začínají na plošného příjemce ztrácet (viz obrázek 4.12). Snímky za sekundu (FPS) x x x x1200 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Rozlišení Obrázek 4.12: Test T 7 Aktivace shaderů opět sráží výkon obou plošných příjemců na úroveň stínových těles. Upravená stínová tělesa si ale drží stabilní výkon (obrázek 4.13). 29
30 Snímky za sekundu (FPS) x x x x1200 Rozlišení plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa Obrázek 4.13: Test T 8 Jen pro shrnutí výsledků ještě přikládám tabulku demonstrující výkonnostní rozdíly implementovaných algoritmů v rozlišení 1280x1024 ve všech prezentovaných testech: 1280x1024 plošný příjemce upravený plošný příjemce stínová tělesa upravená stínová tělesa T T T T T T T T Z provedených testů je patrné, že implementace výpočtu stínových těles na CPU nemá žádné větší negativní dopady na výkon. Naopak rovnoměrně využívá sil všech prostředků. U ještě složitějších scén by bylo vhodné celý algoritmus implementovat přímo na GPU a otestovat výkonnostní rozdíly, případně použít například stínové mapy. Ale v použitých scénách byl vliv CPU minimální. Všechny naměřené výsledky jsou k dispozici ve formátu.xls na přiloženém CD. 30
31 a) b) Obrázek 4.5: Screenshoty z testů. 31
32 Kapitola 5 Závěr 5.1 Shrnutí V první kapitole jsme otevřeli téma vrhání stínů a popsali proč je důležité pro počítačovou grafiku. Dále jsme si objasnili rozdíl mezi interaktivním a neinteraktivním zobrazováním a uvedli, kterým směrem se práce vydává, včetně stanovení jejích cílů. V druhé kapitole jsme se seznámili s druhy světelných zdrojů a definovali, co je to vlastně stín, jaké jsou jeho varianty a za jakých podmínek vznikají. Poté jsme krátce představili základní metody generování stínů pro interaktivní grafiku a zmínili jejich výhody a nedostatky. Celá třetí kapitola nám podrobněji objasnila metodu plošného příjemce a stínových těles. Důraz byl kladen hlavně na stínová tělesa, která jsou mnohem pokročilejší, a existuje větší počet různých přístupů jejich implementace. Objasnili jsme rozdíly mezi metodami depth-pass a depthfail, a následně určili, kdy je která metoda vhodnější. Nakonec jsme rozebrali možnosti využití CPU a GPU. Čtvrtá kapitola popisuje program určený pro testování rychlosti a vizuální kvality libovolných metod pro generování stínů. Dále byla popsána implementace algoritmů, představených ve 3. kapitole. Zbytek kapitoly se věnoval jejich testům. 5.2 Splnění cílů Ve své práci se mi podařilo splnit prakticky všechny vytyčené cíle. Bylo vytvořeno prostředí, vhodné pro implementaci a testování algoritmů, použitelné pro jiné programátory a zároveň poskytující základní funkce 32
33 ulehčující práci při tvorbě nových a renovaci starších metod generování stínů. Po prostudování různých technik jsem si vybral hlavně metodu stínových těles a pro porovnání výkonu jednoduchou metodu plošného příjemce. Metodu stínových těles jsem v první fázi implementoval v základní verzi podle [11] a následně odstranil její hlavní vizuální nedostatky. I pro složitější objekty bylo dosaženo relativně dobrých výsledků v řádu stovek FPS. Jedinou nevýhodou původní i vylepšené verze je veliké zatížení jednoho jádra CPU. Na druhou stranu díky rozmachu multiprocesorových počítačů to není tak zásadní problém. Implementace na GPU by jistě přinesla mnoho výhod, ale na úkor výkonu shaderů. 5.3 Diskuze a směr další práce Když jsem začal pracovat na tomto projektu, mé znalosti z počítačové grafiky byly téměř nulové. Během mnoha hodin strávených v knihách a laboratoři jsem se podrobněji seznámil s programovatelnými shadery, které mi otevřely svět mnohých možností. Test implementace algoritmu stínových těles na komplexnější scéně prokázal, že pokud existuje možnost paralelizovat libovolný grafický výpočet a provést ho přímo na GPU, měla by se vyzkoušet. Algoritmus plošného příjemce naopak zatížil shadery grafické karty na maximum a otestoval jejich limity. Algoritmus stínových těles je bez diskuze v mnoha ohledech komplexnější než plošný příjemce, což se promítá do realističnosti složitějších scén, výpočetní složitosti a náročnosti jeho implementace. Bohužel není univerzální hlavně díky vysoké ceně svého výpočtu, ale počítačová grafika vždy byla a bude o kompromisech. Do budoucna bych v první řadě chtěl přesunout veškeré výpočty týkající se stínových těles přímo do shaderů a porovnat tak výkonnostní rozdíly obou řešení. Dalším krokem by mohla být implementace stínových map a prozkoumání použitelnosti těchto technik v interakci s kapalinami a plyny, což by vedlo k rozšíření programu o schopnost jejich věrohodné simulace. 33
34 Literatura [1] BRABEC S Shadow Techniques for Interactive and Real-Time Applications. Max-Planck-Institut fur Informatik , [2] AGRAWALA, M., RAMAMOORTHI, R., HEIRICH, A., MOLL, L Efficient Image-Based Methods for Rendering Soft Shadows. ACM SIGGRAPH 2000, [3] PURCEL, J. T., BUCK, I., MARK W. R., AND HANRAHAN, P. Ray Tracing on Programmable Graphics Hardware. ACM Transactions on Graphics 2002, [4] DRETTAKIS G., AND FIUME, E., A Fast Shadow Algorithm for Area Light Sources Using Back Projection, SIGGRAPH 94, [5] PARKER, S., SHIRLEY, P. AND SMITH, B. Single Sample Soft Shadows. Computer Science Department, University of Utah [6] WILLIAMS, L Casting Curved Shadows on Curved Surfaces. SIGGRAPH 78, [7] CROW, F. C Shadow algorithms for computer graphics. SIGGRAPH 1997, [8] CHIN, N. AND FEINER, S Near Real-Time Shadow Generation Using BSP Trees. SIGGRAPH 89, [9] MCCOOL, M. D. Shadow volume reconstruction from depth maps. ACM Transaction on Graphics 2000, [10] CARMACK, J John Carmack on shadow volumes. [11] LENGYEL, E The Mechanics of Robust Stencil Shadows. [12] DIEFENBACH, P. J., AND BADLER, N Pipeline Rendering: Interactive Refractions, Reflections and Shadows. [13] NISHITA, T., OKAMURA, I. AND NAKAMAE, H. Shading Models forpoint and Linear Sources. ACM Transactions on Graphiics 1985, [14] AKENINE-MOLER, T. AND ASSARSON, U., Approximate Soft Shadows on Arbitrary Surfaces using Penumbra Wedges. Eurographics Workshop Proceedings 2002, [15] LEATHLEY, C. Texture Loader. 34
35 Příloha A Obsah CD Součástí práce je disk CD-ROM obsahující výslednou implementaci projektu, příslušné knihovny a další. Strom adresářů je organizován takto: /docs - /api uživatelská a programátorská dokumentace - /thesis text této práce ve formátu.pdf - /tests výsledky testů ve formátu.xls - /other další neroztříděné dokumenty /install instalátor aplikace Shadow Algorithms včetně testovacích scén a všech knihoven /objects sada použitelných objektů do programu Shadow Algorithms /screnshots screenshoty z Shadow Algorithms použité v této práci /src všechny zdrojové soubory programu i jednotlivých algoritmů včetně kompletní solution psané v MS Visual Studio 8 35
36 Příloha B Shadow Algorithms 1.1 uživatelská příručka B.1 Systémové požadavky Minimální konfigurace pro běh testovací aplikace (Shadow algorithms) je: CPU 1,5 GHz single-core Operační paměť 512MB Grafická karta podporující OpenGL 1.5, shader model 3.0 a 64MB VRAM 40 MB volného místa na pevném disku Operační systém MS Windows XP nebo vyšší Teoreticky je možné program spustit i na méně výkonné sestavě v závislosti na složitosti testované scény. B.2 Instalace Instalace je opravdu jednoduchá. Stačí spustit soubor ShadowAlgorithms_1_1.exe ze složky /install na přiloženém CD. Průvodce Vás provede celým instalačním procesem. Obsahem instalace je i sada předpřipravených testovacích scén. Popřípadě další objekty je možné nalézt ve složce /objects. 36
37 B.3 Spuštění aplikace Aplikaci lze spustit různým způsobem v závislosti na průběhu instalace buďto z nabídky start / všechny programy / Shadow Algorithms / SA.exe nebo přímo z instalačního adresáře spuštěním souboru SA.exe. Popřípadě při spuštění programu z příkazové řádky je možné zadat jako parametr vstupní XML soubor s testovací scénou, např.: C:\Program Files\Shadow Algorithms>SA.exe test.xml. V ostatních případech program vyžaduje zvolení XML souboru po svém spuštění. Dále podle konfigurace v XML může proběhnout předzpracování scény nebo přímo spuštění grafické části programu. B.4 Ovládání Pro posun kamery po scéně je definována sada kláves: Klávesa Akce W, posun vpřed S, posun vzad A posun vlevo D posun vpravo Z posun dolů X posun nahoru Q rotace vlevo dolů E rotace vpravo dolů R rotace dolů F rotace nahoru rotace vlevo rotace vpravo Po stisknutí pravého tlačítka myši se zobrazí menu umožňující nastavování parametrů scény (změna stínového algoritmu, vypnutí/zapnutí shaderů, zobrazení stínových těles nebo ovládání světel). Světla je možné vypínat/zapínat i kliknutím levého tlačítka na jejich pozici. B.5 Konfigurace pomocí vstupního XML souboru Pro lepší představu o nastavování programu pomocí XML doporučuji prohlédnout soubor test.xml. Do scény programu je možné přidávat objekty, světla a nastavovat jejich parametry. 37
38 Obsah celého XML souboru musí být obalen tagem <scene></scene>. Uvnitř je možné definovat objekty pomocí tagu <object>. Zde je příklad jeho kompletní definice: <object name="cube.obj" castshadow="yes"> <position x ="-10" z="0"/> <transform x="0.2" y="0.3" scale="1.5"/> <adjacency mode="l" name = "cubeadj.txt"/> <normals mode ="l" name ="cuben.txt"/> <ambient r="1" g="1" b="1"/> <diffuse r="1" g="1" b="1"/> <specular r="1" g="1" b="1"/> <emissive r="0" g="0" b="0"/> <texture name="stone.tga"/> <movement x="0.0" y="0.005" z="0.0" rot="yes"/> <color r="1" g="1" b="1" l="0"/> </object> Zde zadáváme objekt definovaný v souboru cube.obj, po kterém požadujeme, aby vrhal stíny. Střed jeho souřadnicového systému posuneme o -10 jednotek po ose x pomocí tagu Tag <position x ="-10" z="0"/>. <transform x="0.2" y="0.3" scale="1.5"/> zajišťuje počáteční natočení objektu po osách x a y. Vynecháním parametru z se natočení po této ose neprovádí. Dále je objekt zvětšen 1,5x. Tagy <adjacency mode="l" name = "cubeadj.txt"/> <normals mode ="l" name ="cuben.txt"/> v tomto případě načítají sousednost trojúhelmíků a normálové vektory ze souborů cubeadj.txt a cuben.txt. Změnou parametru l na s se vytvoří nové normály a sousednost, výsledek se do souborů naopak uloží. Tagy <ambient r="1" g="1" b="1"/> <diffuse r="1" g="1" b="1"/> <specular r="1" g="1" b="1"/> <emissive r="0" g="0" b="0"/> nastavují reakci objektu na jednotlivé barevné složky při použití shaderů. V opačném případě je brána v úvahu hodnota zadaná tagem <color r="1" g="1" b="1" l="0"/> 38
39 nebo tagem <texture name="stone.tga"/>, který se samozřejmě uplatňuje i v případě, že jsou shadery použity. Posledním tagem je <movement x="0.0" y="0.005" z="0.0" rot="yes"/>, který v tomto případě rotuje s objektem o 0,005 jednotky kolem jeho osy y za 1s. V případě změny posledního parametru na rot="no", se objekt bude posouvat. Dalšími objekty scény jsou světelné zdroje zadané např.: <light> <ambient r ="0.0" g ="0.0" b="0.0" l="1"/> <specular r ="0" g ="1" b="0.0" l="1"/> <diffuse r ="1" g ="0.3" b="0.1" l="1"/> <position x="2.0" z="0.0" y="5.0"/> <centre x="0" y="0" z="0"/> <movement x="0.0" y="0.05" z="0.04"/> <spotdir x="1" y="1" z="1" w="30"/> <size r="0.4"/> </light> Tagy <ambient r ="0.0" g ="0.0" b="0.0" l="1"/> <specular r ="0" g ="1" b="0.0" l="1"/> <diffuse r ="1" g ="0.3" b="0.1" l="1"/> jsou podobné jako u objektů, zde se ale týkají vyzařování. Tagy <position x="2.0" z="0.0" y="5.0"/> <centre x="0" y="0" z="0"/> jsou v prvním případě pozice světla, v druhém střed pro jeho případné otáčení definované tagem <movement x="0.0" y="0.05" z="0.04"/> Pro směrová světla existuje tag <spotdir x="1" y="1" z="1" w="30"/> Směrová světla ale musí být implementována v shaderech stínových algoritmů, které by měly dodržovat konvenci směru zadaným vektorem (x,y,z) a výřezu w zadaného v stupních. 39
Výpočet vržených stínů
Výpočet vržených stínů 1996-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Shadows 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 18 Metody vícenásobný
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
Základy 3D modelování a animace v CGI systémech Cinema 4D C4D
EVROPSKÝ SOCIÁLNÍ FOND Základy 3D modelování a animace v CGI systémech Cinema 4D C4D PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Mgr. David Frýbert 2013 CGI systémy Computer - generated imagery - aplikace
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
Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16
Hierarchický model 1995-2013 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchie v 3D modelování kompozice zdola-nahoru složitější objekty se sestavují
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
Satori. Uživatelský manuál
Satori Uživatelský manuál Obsah Satori...1 1. Program... 3 1.1 Cíle hry... 3 1.2 Požadavky...3 1.3 Instalace... 4 1.4 Ovládání... 4 1.5 Grafika...4 1.6 Zvuky...4 1.7 Soubory...4 1.8 Menu...5 1.9 Nastavení...
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
Zobrazování terénu. Abstrakt. 1. Úvod. 2. Vykreslování terénu
Zobrazování terénu Jan Vaněk, Bruno Ježek Universita Obrany, Fakulta vojenského zdravotnictví, Katedra všeobecně vzdělávacích oborů e-mail: vanek@pmfhk.cz; jezek@pmfhk.cz Abstrakt Vizualizace terénu je
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
Programátorská dokumentace
Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci
Novinky v Solid Edge ST7
Novinky v Solid Edge ST7 Primitiva Nově lze vytvořit základní geometrii pomocí jednoho příkazu Funkce primitiv je dostupná pouze v synchronním prostředí Těleso vytvoříme ve dvou navazujících krocích, kde
Vývoj počítačové grafiky. Tomáš Pastuch Pavel Skrbek 15.3. 2010
Vývoj počítačové grafiky Tomáš Pastuch Pavel Skrbek 15.3. 2010 Počítačová grafika obor informatiky, který používá počítače k tvorbě umělých grafických objektů nebo pro úpravu již nasnímaných grafických
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
Měření průtoku kapaliny s využitím digitální kamery
Měření průtoku kapaliny s využitím digitální kamery Mareš, J., Vacek, M. Koudela, D. Vysoká škola chemicko-technologická Praha, Ústav počítačové a řídicí techniky, Technická 5, 166 28, Praha 6 e-mail:
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
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
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ů
UniLog-D. v1.01 návod k obsluze software. Strana 1
UniLog-D v1.01 návod k obsluze software Strana 1 UniLog-D je PC program, který slouží k přípravě karty pro záznam událostí aplikací přístroje M-BOX, dále pak k prohlížení, vyhodnocení a exportům zaznamenaných
DUM č. 14 v sadě. 31. Inf-7 Technické vybavení počítačů
projekt GML Brno Docens DUM č. 14 v sadě 31. Inf-7 Technické vybavení počítačů Autor: Roman Hrdlička Datum: 24.02.2014 Ročník: 1A, 1B, 1C Anotace DUMu: Grafické karty: zapojení, součásti, napájení, chlazení.
1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.
Kapitola 5 Řešení viditelnosti Řešit viditelnost ve scéně umí většina grafických programů. Cílem je určit ty objekty, resp. jejich části, které jsou viditelné z určitého místa. Tyto algoritmy jsou vždy
7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového
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:
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é
12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
Reliance 3 design OBSAH
Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních
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...
Procesor. Hardware - komponenty počítačů Procesory
Procesor Jedna z nejdůležitějších součástek počítače = mozek počítače, bez něhož není počítač schopen vykonávat žádné operace. Procesor v počítači plní funkci centrální jednotky (CPU - Central Processing
Diplomová práce Prostředí pro programování pohybu manipulátorů
Diplomová práce Prostředí pro programování pohybu manipulátorů Štěpán Ulman 1 Úvod Motivace: Potřeba plánovače prostorové trajektorie pro výukové účely - TeachRobot Vstup: Zadávání geometrických a kinematických
Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.
Přehledy pro Tabulky V programu CONTACT Professional 5 naleznete u firem, osob a obchodních případů záložku Tabulka. Tuto záložku lze rozmnožit, přejmenovat a sloupce je možné definovat dle vlastních požadavků
Uživatelská příručka.!instalace!průvodce.!dialogová okna!program zevnitř
Uživatelská příručka!instalace!průvodce!použití!dialogová okna!program zevnitř KAPITOLA 1: INSTALACE PROGRAMU Svitek...4 HARDWAROVÉ POŽADAVKY...4 SOFTWAROVÉ POŽADAVKY...4 INSTALACE PROGRAMU Svitek NA VÁŠ
Geometrické algoritmy pro počítačovou grafiku
České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Katedra fyzikální elektroniky Informatická fyzika Geometrické algoritmy pro počítačovou grafiku Semestrální práce Autor práce:
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ží
,,Škola nás baví CZ. 1.07/1.4.00/21.1342 VY_32_INOVACE_Inf.Ma.10
,,Škola nás baví CZ. 1.07/1.4.00/21.1342 VY_32_INOVACE_Inf.Ma.10 INFORMATIKA 7. ročník Microsoft POWER POINT 2010 Ing. Miroslava Maříková PŘÍPRAVA Předmět: Informatika Stupeň vzdělávání: druhý stupeň /7.roč./
3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
Základy vizualizace. Výpočetní metody
10 Základy vizualizace Reálným zobrazováním se zabývá samostatný obor nazvaný Vizualizace. Podstata většiny vizualizačních systémů vychází z jednoduché koncepce skupin objektů, které nazýváme Scéna. Základní
2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Surfels: Surface Elements as Rendering Primitives
Surfels: Surface Elements as Rendering Primitives Výzkum v počítačové grafice Martin Herodes Nevýhody plošných primitiv Reprezentace složitých objektů pomocí plošných primitiv (trojúhelníků, čtyřúhelníků
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
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í
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áš
Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8
Středoškolská technika 2015 Setkání a prezentace prací středoškolských studentů na ČVUT Fyzikální laboratoř Kamil Mudruňka Gymnázium, Pardubice, Dašická 1083 1/8 O projektu Cílem projektu bylo vytvořit
Pro tvorbu samostatně spustitelných aplikací je k dispozici Matlab library.
1.1 Matlab Matlab je interaktivní systém pro vědecké a technické výpočty založený na maticovém kalkulu. Umožňuje řešit velkou oblast numerických problémů, aniž byste museli programovat vlastní program.
Co je grafický akcelerátor
Co je grafický akcelerátor jednotka v osobním počítači či herní konzoli přebírá funkce hlavního procesoru pro grafické operace graphics renderer odlehčuje hlavnímu procesoru paralelní zpracování vybaven
Hledání správné cesty
Semestrální práce z předmětu A6M33AST Závěrečná zpráva Hledání správné cesty Nela Grimová, Lenka Houdková 2015/2016 1. Zadání Naším úkolem bylo vytvoření úlohy Hledání cesty, kterou by bylo možné použít
Osobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011
Osobní počítač Zpracoval: ict Aktualizace: 10. 11. 2011 Charakteristika PC Osobní počítač (personal computer - PC) je nástroj člověka pro zpracovávání informací Vyznačuje se schopností samostatně pracovat
Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům
Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům Bakalářská práce 2014 Autor: Adam Schreier Garant práce: Jan Růžička Obsah prezentace 1.Seznámení s řešeným problémem
Vytváření DVD s DVDStyler
Vytváření DVD s DVDStyler 21. 8. 2009 Jan Drábek Multimédia 26352 DVDStyler je multiplatformní program (ano, funguje i na Windows) pro vytváření profesionálně vypadajících DVD i interaktivních DVD menu.
Android OpenGL. Pokročilé shadery
Android OpenGL Pokročilé shadery Struktura programu Reálná aplikace zpravidla obsahuje více než jeden shader Kód pro inicializaci shaderu je dobré mít ve třídě (méně opisování stejného kódu) Shadery není
INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_13_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077
Architektura počítačů
Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem
VY_32_INOVACE_INF.10. Grafika v IT
VY_32_INOVACE_INF.10 Grafika v IT Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Kalous Základní a mateřská škola Bělá nad Radbuzou, 2011 GRAFIKA Grafika ve smyslu umělecké grafiky
20 years PLM and 3D experience. Hustopeče, 21. května Raytracer
20 years PLM and 3D experience Hustopeče, 21. května 2015 Raytracer Raytracer Úvod Obecný úvod Plošný zdroj světla Nastavení materiálů Nastavení světel Editace světla Raytracer Správa perspektivních obrázků
SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1
SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ SOFTWARE FOR PROCESSING OF POINT CLOUDS FROM LASER SCANNING Martin Štroner, Bronislav Koska 1 Abstract At the department of special geodesy is
2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2
2D grafika Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace Počítačová grafika, 2D grafika 2 2D grafika PC pracuje s daným počtem pixelů s 3 (4) kanály barev (RGB
Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013
Katedra informatiky, Univerzita Palackého v Olomouci 27. listopadu 2013 Rekonstrukce 3D těles Reprezentace trojrozměrných dat. Hledání povrchu tělesa v těchto datech. Představení několika algoritmů. Reprezentace
Návod na instalaci a použití programu
Návod na instalaci a použití programu Minimální konfigurace: Pro zajištění funkčnosti a správné činnosti SW E-mentor je potřeba software požívat na PC s následujícími minimálními parametry: procesor Core
Hodnocení soutěžních úloh
Terč Koeficient 1 soutěžních úloh Kategorie žáci Soutěž v programování 25. ročník Krajské kolo 2010/2011 15. až 16. dubna 2011 Napište program, který zobrazí střelecký terč dle vzorového obrázku. Jak má
Reflections, refractions, interreflections
:: gs Reflections, refractions, interreflections Odrazy a lomy světla Grafické systémy David Sedláček 2004 :: fyzika Zákon odrazu Lom světla Snellův zákon Fresnelova rovnice poměr prošlého a odraženého
Vektorové grafické formáty
Vektorové grafické formáty Semestrální práce na předmět KAPR Fakulta stavební ČVUT 28.5.2009 Vypracovali: Petr Vejvoda, Ivan Pleskač Obsah Co je to vektorová grafika Typy vektorových formátů Souborový
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií Softwarový nástroj pro tvorbu a správu genealogických dat Manuál pro uživatele Bc. František Hlaváček Součást
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
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana Kubcová Název
POTŘEBA A PRODUKCE ENERGIÍ V ZEMĚDĚLSKÉ VÝROBĚ V ČR V KRIZOVÉ SITUACI. Specializovaná mapa. Návod k používání programu
VÝZKUMNÝ ÚSTAV ZEMĚDĚLSKÉ TECHNIKY, v.v.i. ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA v PRAZE POTŘEBA A PRODUKCE ENERGIÍ V ZEMĚDĚLSKÉ VÝROBĚ V ČR V KRIZOVÉ SITUACI Specializovaná mapa Návod k používání programu Projekt
Truss 4.7. Předvolby nastavení tisku
Truss 4.7 Firma Fine s.r.o. připravila verzi 4.7 programu Truss. Tato verze přináší následující změny a vylepšení: Změna práce s násobnými vazníky Z důvodu omezení chyb v průběhu návrhu byl upraven způsob
4x standardní vstupy
Uvedení do provozu Toto DVR je speciálně vyrobeno pro USB rozhraní, USB3104 převádí videosignál pomocí USB do počítače. Má vkusný černý design a malou velikost, umožňuje jednoduché připojení k počítači.
GstarCAD8 Aktualizovaná verze ze dne Podpora 64-bitové verze systému. Nové dodatky. Poznámky (OBJECTSCALE / Měřítko objektu poznámek)
GstarCAD8 Aktualizovaná verze ze dne 03.07.2014 Dne 3. července 2014 uvedla společnost Gstarsoft aktualizovanou verzi programu GstarCAD8 zaměřenou zejména na podporu 64-bitového systému, což znamená, že
Informatika pro 8. ročník. Hardware
Informatika pro 8. ročník Hardware 3 druhy počítačů Vstupní a výstupní zařízení Další vstupní a výstupní zařízení Nezapomeňte Máme tři druhy počítačů: stolní notebook all-in-one Zařízení, která odesílají
PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200
PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200 Bc.Adam Berger Ber 208 Historie a předchůdci G200 V červnu roku 2008 spatřila světlo světa nová grafická karta od společnosti Nvidia. Tato grafická karta opět
OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel
OPERAČNÍ SYSTÉM základní ovládání Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel Pár otázek na začátek popište k čemu se používá počítač v jakých oborech lidské činnosti se využívá počítačů?
A JEJICH POROVNÁNÍ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
Autodesk AutoCAD Civil 3D
Novinky 2018 Autodesk AutoCAD Civil 3D www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Obsah: 1. Vyřešení překrytí koridorů (motýlkování)... 3 2. Relativní návrhové linie... 4 3. Dynamické
Reprezentace 3D modelu
Ing. Jan Buriánek (ČVUT FIT) Reprezentace 3D modelu BI-MGA, 2010, Přednáška 8 1/25 Reprezentace 3D modelu Ing. Jan Buriánek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké
Na obrázku níže je vidět jedno z možných nastavení umístění grafu Ve sloupci pro graf. Spuštění první plovoucí sady. Spuštění druhé plovoucí sady
Pokročilé grafy Různé grafy ukazují historický pohled na trh mnoha různými metodami. To vám umožňuje na první pohled vidět historii obchodování na jednom nebo na několika výběrech. Můžete mít až tři oddělené
PB001: Úvod do informačních technologíı
PB001: Úvod do informačních technologíı Luděk Matyska Fakulta informatiky Masarykovy univerzity podzim 2013 Luděk Matyska (FI MU) PB001: Úvod do informačních technologíı podzim 2013 1 / 29 Obsah přednášky
Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina
Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3
Zpravodaj. Uživatelská příručka. Verze
Zpravodaj Uživatelská příručka Verze 02.01.02 1. Úvod... 3 2. Jak číst tuto příručku... 4 3. Funkčnost... 5 3.1. Seznam zpráv... 5 4. Ovládání programu... 6 4.1. Hlavní okno serveru... 6 4.2. Seznam zpráv...
Obsah SLEDOVÁNÍ PRÁCE... 4
Co je nového Obsah SLEDOVÁNÍ PRÁCE...... 4 Konfigurace souboru... 5 Globální konfigurace... 6 Soubory... 6 Projekty... 6 Uživatelské rozhraní... 7 Synchronizace... 7 Typ serveru... 8 Test připojení...
Tvorba 3D výukových aplikací pomocí technologie
Tvorba 3D výukových aplikací pomocí technologie Microsoft Silverlight Martin Tribula, Martin Vavrek, Michal Otčenášek Abstrakt V dnešním moderním světě je virtuální realita považovaná za rozvíjející se
Univerzální rezervační systém. Uživatelská příručka
Univerzální rezervační systém Uživatelská příručka Obsah I. Instalace... 3 II. První spuštění aplikace... 4 III. Hlavní okno aplikace... 5 IV. Nastavení aplikace... 6 1. Přidání místností... 6 2. Uživatelské
Kompatibilita a import CAD
Kompatibilita a import CAD Import a automatické rozpoznání 3D vlastností CATIA V5 WorkNC nyní nabízí import a automatické rozpoznání vlastností vrtaných otvorů z CATIA V5. V modulu automatického vrtání
Typy geometrie v. Rhinu. Body
Typy geometrie v 16 Rhinu Rhino rozeznává pět základních typů geometrie: body (points), křivky (curves), plochy (surfaces) a spojené plochy (polysurfaces). Navíc jsou plochy nebo spojené plochy, které
ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod
METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI Základní rozložení plochy Výchozím stavem při práci je normální zobrazení. pás karet - základní nabídka příkazů Pořadí jednotlivých snímků Základní plocha
Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku
Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku Arnošt Nečas Marketing manager GRAFIE CZ Jan Štor Odborný konzultant GRAFIE CZ Agenda Základy digitálních obrazů Kvalita obrazu
Martin Lísal. Úvod do MPI
Martin Lísal září 2003 PARALELNÍ POČÍTÁNÍ Úvod do MPI 1 1 Co je to paralelní počítání? Paralelní počítání je počítání na paralelních počítačích či jinak řečeno využití více než jednoho procesoru při výpočtu
StatSoft Jak vyzrát na datum
StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek
ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014
Zadání projektu Texturování Základy počítačové grafiky (IZG) ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 1 První seznámení Cílem projektu je pochopení praktických souvislostí témat přednášek
MS Windows 7. Milan Myšák. Příručka ke kurzu. Milan Myšák
MS Windows 7 Milan Myšák Příručka ke kurzu Milan Myšák Vývoj MS Windows Historické verze (do Win Me a Win NT 4.0) Windows XP (2001) Windows 7 (2009) Windows 2000 Windows Vista (2007) Windows 8 (2012) Milan
Zadání soutěžních úloh
Zadání soutěžních úloh Kategorie žáci Soutěž v programování 25. ročník Krajské kolo 2010/2011 15. až 16. dubna 2011 Úlohy můžete řešit v libovolném pořadí a samozřejmě je nemusíte vyřešit všechny. Za každou
Obsah Přehled existujících a evidence nových klientů... 3 Přehled foto-záznamů... 4 Nahrávání foto-záznamů... 6 Analýza foto-záznamů...
1 Obsah 1. Přehled existujících a evidence nových klientů... 3 1.1. Filtrování, vyhledávání údajů... 4 2. Přehled foto-záznamů... 4 3. Nahrávání foto-záznamů... 6 3.1. Změna velikosti foto-záznamu... 7
Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.
Zpracování obrazu v FPGA Leoš Maršálek ATEsystem s.r.o. Základní pojmy PROCESOROVÉ ČIPY Křemíkový čip zpracovávající obecné instrukce Různé architektury, pracují s různými paměti Výkon instrukcí je závislý
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
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Origami Nets je nejkomplexnější aplikace v projektu DALEST. Tato aplikace umožňuje vytvářet sítě různých těles a pak je skládat. Objekty,
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í
TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ
SEMESTRÁLNÍ PRÁCE TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ Jakub Wagner wagnejak@fel.cvut.cz 1. ÚVOD Cílem práce bude otestovat výukovou aplikaci angličtiny na DVD pro základní školy. Aplikace je cílena pro ovládání
Anti Aliasing. Ondřej Burkert. atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka
Anti Aliasing Ondřej Burkert atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka Úvod Co je to anti - aliasing? Aliasing = vznik artefaktů v důsledku podvzorkování při vzorkování (sampling) obrazu podvzorkování
Specifikace VT 11 ks. Ultrabook dle specifikace v příloze č. 1 11 ks. 3G modem TP-LINK M5350
Specifikace VT 11 ks. Ultrabook dle specifikace v příloze č. 1 Prodloužená záruka 3 roky 11 ks. 3G modem TP-LINK M5350 11 ks. MS Office 2013 pro podnikatele CZ 11 ks. brašna 11 ks. bezdrátová myš 5 ks.
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