i Uvodni stranka
Transkript
i Uvodni stranka
Uvodni stranka i ii České vysoké učení technické Fakulta elektrotechnická Katedra počítačů Bakalářská práce Simulace a vizualizace polární záře Martin Bláha Vedoucí práce: Ing. Jaroslav Sloup Studijní program: Elektrotechnika a informatika Obor: Výpočetní technika 18.5.2011 iv v Poděkování Děkuji panu Ing. Jaroslavu Sloupovi za cenné rady, které mi poskytl při zpracování této práce a také za jeho obrovskou trpělivost během konzultací. vi vii Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 zákona č. 121/2000 Sb. O právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 18.5. 2011 viii ix Abstract This work contains the description of the way how could be realized the simulation and visualisation of the aurora borealis, also know as northen lights. There are used nowadays known frameworks for the realization of our aim, the simulation and visualisation of the aurora. Because of better understanding of all parts of these methods, we try to explain the physical nature of the aurora and describe all elements which have some influence on the final shape of the aurora and elements which help to control the dynamic of the aurora. After the decription of the physical basics of the aurora, we describe all known simulating methods, where we explain how we can simulate these described physical parts. The comparison of our generated pictures of the aurora with the realistic photographas is a part of this work, too. Abstrakt Tato práce obsahuje informace o realizaci vizualizace a simulace polární záře. Vychází přitom z dosud známých postupů implementace pro realizaci našeho cíle. Pro lepší pochopení jednotlivých částí, popsaných v již existujících postupech, se zde pokusíme vysvětlit, jak polární záře funguje z hlediska fyziky. Představíme si faktory ovlivňující konečný tvar a následnou dynamiku polární záře. Kromě představení základních fyzikálních principů polární záře si pomocí těchto informací postupně popíšeme jednotlivé metody pro vizualizaci a simulování polární záře a ukážeme si, jaké postupy slouží k simulování událostí ovlivňujících výsledný tvar záře. Obsahem práce je i porovnání vygenerovaných obrázků polární záře se skutečnými fotografiemi. x Obsah 1 Kapitola 1 .................................................................................................................. 1 Úvod ................................................................................................................................. 1 2 Kapitola 2 .................................................................................................................. 3 Teorie polární záře ............................................................................................................. 3 2.1 Vliv Slunce ........................................................................................................ 4 2.2 Vliv zemského magnetického pole ..................................................................... 4 2.3 Vyzařování barevného světla .............................................................................. 5 2.4 Tvar a rozdělení polární záře podle složení......................................................... 6 2.5 Stálost tvarů polární záře .................................................................................... 7 2.6 Oblast výskytu ................................................................................................... 9 3 Kapitola 3 ................................................................................................................ 11 Existující metody simulace .............................................................................................. 11 3.1 Simulace pásů a oblouků .................................................................................. 11 3.1.1 Plošný model (Sheet model) ..................................................................... 11 3.1.2 Cesta elektronového svazku ..................................................................... 13 3.1.3 Určení barevného spektra a intenzity světla .............................................. 15 3.1.4 Vykreslení ................................................................................................ 15 3.1.5 Antialiasing .............................................................................................. 17 3.1.6 Dynamika ................................................................................................. 19 3.2 Tančící světla (Dancing lights) ......................................................................... 19 3.2.1 Výpočty pro určení spirálovitého pohybu ................................................. 20 3.2.2 Algoritmus spirálovitého pohybu (Warp algorithm) .................................. 21 3.2.3 Určení náboje ........................................................................................... 22 3.2.4 Poissonova rovnice................................................................................... 22 3.2.5 Implementace multimřížkové metody....................................................... 23 3.2.6 Rychlost a nová pozice elektronů.............................................................. 24 3.2.7 Další postup ............................................................................................. 24 4 Kapitola 4 ................................................................................................................ 27 Analýza a návrh řešení .................................................................................................... 27 4.1 Zvolená metoda vizualizace a simulace ............................................................ 27 4.2 Návrh na rozšíření ............................................................................................ 27 4.3 Návrh uživatelského rozhraní ........................................................................... 28 4.4 Analýza aplikace .............................................................................................. 28 4.4.1 Hlavní zobrazovací smyčka ...................................................................... 28 4.4.2 Výpočet polární záře ................................................................................ 29 5 Kapitola 5 ................................................................................................................ 33 Implementace .................................................................................................................. 33 5.1 Vývojové prostředí a jazyk............................................................................... 33 5.2 Datové typy ..................................................................................................... 33 5.3 Implementace jednotlivých částí ...................................................................... 33 6 Kapitola 6 ................................................................................................................ 41 xi xii OBSAH Výsledky..........................................................................................................................41 6.1 Generování obrázku pro různé druhy polární záře .............................................41 6.2 Vliv změny magnetického vektoru....................................................................43 6.3 Generování obrázku a použití antialiasingu .......................................................43 6.4 Pozorování z různých míst ................................................................................45 6.5 Dynamika polární záře ......................................................................................45 6.6 Porovnání generovaných obrázků s původní metodou .......................................47 6.7 Měření rychlosti ...............................................................................................47 Kapitola 7 ........................................................................................................................49 Závěr ...............................................................................................................................49 A. Příloha A ................................................................................................................. A1 Barevný prostor CIE XYZ .............................................................................................. A1 B. Příloha B ................................................................................................................. B1 Tabulky odečtených hodnot ze spektrálních křivek a křivek intenzit ................................ B1 C. Příloha C ................................................................................................................. C1 Uživatelská příručka ....................................................................................................... C1 C.1 Systémové požadavky...................................................................................... C1 C.2 Instalace aplikace............................................................................................. C1 C.3 Ovládání aplikace ............................................................................................ C1 D. Příloha D ................................................................................................................. D1 Obsah CD ....................................................................................................................... D1 Seznam obrázků Obrázek 1.1 Polární záře zachycená z vesmíru [20]. .......................................................... 1 Obrázek 2.1 Kristian Bikerland ......................................................................................... 3 Obrázek 2.2 Erupce na Slunci ............................................................................................ 4 Obrázek 2.3 Ilustrace magnetosféry Země [11]. ................................................................. 5 Obrázek 2.4 Ukázka pohybu nabitých částic a jejich vychýlení po kolizi [3]...................... 6 Obrázek 2.5 Druhy zakřivení pozorované v polární záři..................................................... 7 Obrázek 2.6 Rozdělení podle tvaru a struktury záře ........................................................... 8 Obrázek 2.7 Fotografie polární záře typu koruna [12]. ....................................................... 8 Obrázek 2.8 Fotografie polární záře typu oblouk [14]. ....................................................... 9 Obrázek 2.9 Zobrazení aurálního oblouku kolem magnetického pólu Země [19]. .............. 9 Obrázek 3.1 Sinusová křivka určující polohu počátečních bodů paprsků [3]. ................... 12 Obrázek 3.2 Ukázka nahrazení části křivky záhybem ...................................................... 13 Obrázek 3.3 Jednotlivé fáze pro určení dalšího bodu kolize, ............................................ 14 Obrázek 3.4 Křivky určující intenzity polární záře, .......................................................... 16 Obrázek 3.5 Ilustrace mapování bodu ze světových souřadnic do pole okna[3] ................ 17 Obrázek 3.6 Použití Gaussova filtru ................................................................................ 18 Obrázek 3.7 Výsledky metody simulace pomocí plošné metody ...................................... 19 Obrázek 3.8 Část proudu částic modelovaný pomocí pruhu ............................................. 21 Obrázek 3.9Popis namanipulaces nábojm mřížce............................................................. 22 Obrázek 3.10 Popis V-cyklu[4] ........................................................................................ 24 Obrázek 3.11 Obrázky generované pomocí metody plasmového modelu[4] ..................... 25 Obrázek 4.1 Popis hlavní vykreslovací smyčky................................................................ 30 Obrázek 4.2 Popis funkčních částí bloku pro výpočet polární záře. .................................. 31 Obrázek 6.1 Porovnání skutečného[3] a námi generovaného oblouku. ............................. 41 Obrázek 6.2 porovnání skutečného[3] a generovaného paprskovitého oblouku. ............... 42 Obrázek 6.3 Porovnání skutečné[10] a námi generované drapérie. ................................... 43 Obrázek 6.4 Vliv změny směru vektoru magnetického pole Země. .................................. 44 Obrázek 6.5 Vliv antialiasingu na generovaný obrázek. ................................................... 44 Obrázek 6.6 Generované obrázky polární záře typu oblouk, ............................................ 45 Obrázek 6.7 Průběh dynamiky polární záře (oblouk). ...................................................... 46 Obrázek 6.8 Porovnání metody modelu plošky[3] a naší upravené metody. ..................... 47 Obrázek 6.9 Časové průběhy ovlivněné rozlišením .......................................................... 48 Obrázek A.1Popis barevných srovnávacích funkcí prostoru RGB[7]............................... A1 Obrázek A.2 Popis barevných srovnávacích funkcí prostoru XYZ[7].............................. A2 Obrázek C.1 Ukázka vyvolaného menu. .......................................................................... C2 Obrázek D.1 Ukázka obsahu CD .................................................................................... D1 xiii xiv SEZNAM OBRÁZKŮ Seznam tabulek Tabulka 5.1 Odečtené hodnoty srovnávacích funkcí prostoru XYZ .................................. 38 Tabulka 5.2 Odečtené hodnoty srovnávacích funkcí prostoru XYZ .................................. 38 Tabulka 6.1 Naměřené hodnoty určující dobu k vykreslení generovaného obrázku .......... 47 Tabulka 6.2 Zobrazení doby výpočtu ............................................................................... 48 Tabulka B.1 Odečtené hodnoty spektrálních křivek. ........................................................ B1 Tabulka B.2 Hodnoty intenzit pro typ oblouk. ................................................................. B2 Tabulka B.3 Hodnoty intenzit paprskovitého oblouku. ..................................................... B2 Tabulka B.4 Hodnoty intenzit pro tvar drapérie. .............................................................. B3 xv xvi SEZNAM TABULEK 1 Kapitola 1 Úvod Polární záře je zajímavý světelný úkaz ve vnější vrstvě atmosféry, ionosféře a nejčastěji se objevuje v podobě zkrouceného závěsu či záclony. Polární záře je také známá pod pojmem „Aurora Borealis“, což se dá přeložit jako rudý úsvit severu [6], pro severní polokouli, kdežto na jižní polokouli se nazývá jako „Aurora Australis“. Termín Aurora, latinsky svatozář nebo také antický bůh úsvitu, použil jako první Galileo Galilei a používá se dodnes. Polární záři lze spatřit nejen na naší planetě, ale i na jiných planetách se silným magnetickým polem jako například Saturn či Jupiter. Obrázek 1.1 Polární záře zachycená z vesmíru [20]. Vizualizace a simulace polární záře umožňuje sledování vzácných jevů, které nejsou na Zemi příliš časté, přestože ve vesmíru nejsou ničím neobvyklým (Obrázek 1.1). Jedním z mnoha příkladů je třeba plazma, která se na Zemi vyskytuje spíše jen v laboratorních zařízeních. Simulace proto může být přínosem pro studium chování těchto vzácných jevů a díky 1 2 KAPITOLA 1. ÚVOD tomu i pro předpověď dalšího chování opravdové polární záře. Úkolem této práce je realizovat simulaci a vizualizaci polární záře pomocí dosud dostupných metod. Výstupem programu by měly být obrázky, které respektují dynamiku v tomto jevu a měly by odpovídat skutečným fotografiím, na kterých je polární záře zachycena. Pomocí pohybu ve scéně a možnosti měnit směr vektoru magnetického pole Země, by mělo být umožněno sledovat chování polární záře z různých pozic a úhlů. V této práci se nejprve seznámíme s polární září, představíme si vývoj v oblasti poznávání a zkoumání a vysvětlíme si pomocí aktuálních poznatků příčiny vzniku této světelné podívané (kapitola 2). Dále si představíme a popíšeme doposud známé metody pro simulaci a vizualizaci polární záře (kapitola 3). V další kapitole se podíváme na návrh řešení zadání s pomocí existujících metod a popíšeme funkčnost programu s našimi úpravami (kapitola 4). Po představení hlavních funkcí si ukážeme i samotnou implementaci programu, kde si rozvedeme zajímavosti, které souvisejí se samotnou implementací (kapitola 5). Na závěr porovnáme výsledky vizualizace s původními metodami a s reálnými fotografiemi a porovnáme časové náročnosti generování scény (kapitola 6). 2 Kapitola 2 Teorie polární záře Úkaz známý jako polární záře je obdivován lidmi už řadu let. Objevuje se v severských mytologiích a je obsahem i mnoha legend. Než byl objasněn jeho původ, byly mu přiřazovány různé vlastnosti, schopnosti a dokonce i božský původ. V mnoha legendách se hovoří o polární záři jako o špatném znamení, předzvěsti válek, moru, naštvání bohů, či tancích mrtvých duchů. Lidé dokonce věřili, že záře může unést a zabít lidi, proto děti nesměly vycházet ven. Další vysvětlení mají norské legendy, které mluví o Valkýrkách, panenských bojovnicích s oštěpy na koních, které se projížděly krajem takovou rychlostí, že vzduch za nimi zářil energií. Ve Finsku zase věřili, že záři způsobuje polární liška, která třením srsti o hory při běhu vytvářela jiskry, jenž se dostaly až do nebe. Zajímavé je, že polární záře je spojována i s legendami čínských i evropských draků [1,22]. Lidé si také mysleli, že záře může být přivolána pískáním nebo že lze zvýšit její intenzitu mávání bílým oblečením [6]. Obrázek 2.1 Kristian Bikerland testující teorii přitahování elektronových paprsků k pólům terrellu [21]. Prvním realistickým písemným popisem je norská kronika Královo zrcadlo z roku 1230. Záře byla vysvětlena jako odraz plamenů, které plály na naší placaté, jak se tehdy věřilo, planetě za hranicí oceánů, na nebi. Roku 1716 sir Edmund Halley sepsal první detailní popis polární záře, usoudil, že záři způsobují částice ovlivněné magnetickým polem Země a paprsky záře proudí paralelně s magnetickým polem Země. Největší průlom způsobil Nor Kristian Bikerland, který se snažil prokázat teorii o nabitých částicích ze Slunce na zmenšeném modelu Země – terrellu (Obrázek 2.1). Posílané svazky elektronů směrem k modelu byly vtaženy k pólům tohoto modelu. Později tyto experimenty potvrdily vesmírné družice. Představili jsme si vývoj v poznávání polární záře během několika let. Pro lepší 3 4 KAPITOLA 2. TEORIE POLÁRNÍ ZÁŘE pochopení polární záře si v následujících kapitolách představíme polární záři z hlediska současných poznatků. Popíšeme hlavní příčiny vzniku polární záře, vliv Slunce a jeho úlohu při vytváření této podívané, úlohu magnetického pole Země a příčiny vyzařování světla. Dále zde popíšeme, jaké části a tvary může polární záře nabývat a jakou mohou mít tyto tvary strukturu. V poslední části této kapitoly jsou popsány oblasti výskytu tohoto světelného jevu. 2.1 Vliv Slunce Polární záře začíná na Slunci. Hlavními činiteli jsou sluneční skvrny a sluneční erupce. Vlivem rozdílů v magnetickém poli Slunce dojde k vytvoření slunečních skvrn ve fotosféře a následné erupci (obvykle o síle výbuchu 1 miliardy megatun TNT). Během slunečních erupcí je zejména z oblastí slunečních skvrn, kde je teplota nižší než v koroně, uvolněn proud rotujících nabitých částic [22]. Gravitace Slunce nedokáže udržet tento proud vlivem teploty korony a proud složený z elektronů, pozitronů a alfa částic ve formě plazmy dorazí během dvou dnů k Zemi rychlostí kolem 1000 km/s.[8] Tyto výboje se mohou opakovat i několikrát za den, obzvláště v období slunečního maxima, které se opakuje v 11-ti letém cyklu. Cesta slunečního větru je ilustrována na obrázku 2.2. Obrázek 2.2 Erupce na Slunci a vyslání slunečního větru směrem k Zemi, kde se částice snaží proniknout k pólům[17]. 2.2 Vliv zemského magnetického pole Při dosažení slunečního větru zemské magnetosféry (Obrázek 2.3) jsou částice slunečního větru odraženy nárazovou vlnou magnetosféry nebo jsou při průchodu touto vrstvou zachyceny Van Allenovými radiačními pásy. Tyto radiační pásy jsou oblasti magnetosféry, kde se zachycují nabité částice slunečního větru. Při velkém množství příchozích nabitých částic mohou tyto částice ze slunečního větru proniknout k pólům a do magnetosférického chvostu. Z chvostu se pak nechají unášet po směru siločar zemského magnetického pole [22]. Částice jsou urychlovány směrem k pólům díky vlivu geomagnetických bouří a subbouří, způsobujících změny v magnetickém poli. Magnetické 5 bouře jsou vyvolány vnějšími podněty, jako například proudem slunečního větru. Během magnetické bouře prochází velké množství iontů a elektronů z chvostu do vnějšího radiačního pásu. To způsobí nárůst prstencového proudu, čímž se naruší magnetické pole Země. Prstencové proudy se nacházejí ve vzdálenosti několika kilometrů od povrchu Země a jejich magnetické pole nabývá opačné orientace oproti magnetickému pólu Země. Subbouře jsou menší bouře, při kterých nedochází k tak velkému injektování nabitých částic. Subbouře nejsou zatím plně prozkoumány, ale právě díky nim sílí aktivita polární záře. Jejich výskyt je častý zejména v oblasti magnetických pólů Země. Tyto bouře mohou narušit komunikaci satelitů, polohovacího systému GPS, mobilních sítí a jiných zařízení. Obrázek 2.3 Ilustrace magnetosféry Země [11]. 2.3 Vyzařování barevného světla Pohyb nabitých částic se skládá ze dvou složek (Obrázek 2.4), kolmého pohybu na vektor magnetického pole Země B a pohybu rovnoběžným s vektorem B . Výsledkem je spirálovitý pohyb ve směru vektoru magnetického pole B . Během cesty nabitých částic k dolní hranici polární záře dochází ke srážkám těchto nabitých částic ze slunečního větru s neutrálními atomy a molekulami plynů v Zemské atmosféře. Při těchto srážkách dochází k předání energie neutrálním atomům či molekulám plynu a dočasnému přeskočení na vyšší energetickou hladinu. Při zpětném seskoku na původní hladinu dojde k vyzáření světla – fotonu. Elektron může během cesty prodělat mnoho srážek, než přijde o svou energii [3]. Vyzářené světlo je monochromatické a odpovídá přechodům mezi energetickými hladinami. Vlnová délka vyzářeného fotonu závisí hlavně na složení plynů v atmosféře, schopnosti částice zůstat v excitovaném stavu a výšce vyzáření fotonu. Obvykle se záře objevuje ve výškách od 100 – 300km nad povrchem Země, výjimečně i 500 – 800km [6]. Hlavními prvky vyzařující světlo jsou atomy a molekuly kyslíku a atomy dusíku. Nejběžnější a nejsvětlejší barvou je zelená barva způsobená kolizemi s atomy kyslíku v dolních částech ve výškách okolo 100 km nad povrchem Země s vlnovou délkou 557,7 nm. 6 KAPITOLA 2. TEORIE POLÁRNÍ ZÁŘE Obrázek 2.4 Ukázka pohybu nabitých částic a jejich vychýlení po kolizi [3]. Tato barva je nejsvětlejší, protože vrchol citlivosti lidského oka je ohraničen hodnotou 550 nm. Dále je v nižších částech vyzařována modrá barva molekulami dusíku o vlnové délce 427,8 nm. Ve vyšších částech kyslík vyzařuje červenou barvu o vlnové délce 630 nm. Díky těmto hodnotám je možno určit velikost uvolněné energie. Vlastnosti vyzařování světla jsou různé dokonce i pro atomy stejného prvku, například u kyslíku. Atom kyslíku vyzařující zelené světlo vydrží v přechodném excitovaném stavu jen 0,7 s a excitovaný atom nedokáže urazit větší vzdálenost, než je vyzářen foton. Oproti tomu atomy kyslíku vyzařující červenou barvu dokáží vydržet v přechodném stavu okolo 110 s a tím dokážou urazit i delší vzdálenost, než se vrátí do původního stavu a vyzáří foton. To je i příčinou toho, že červené vyzařování je rozprostřeno přes delší oblast a tím je i slabší intenzita kvůli možným srážkám a ztráty energie před vyzářením. Ionizovaný dusík vydrží nejkratší dobu v přechodném stavu, a to méně než 0,001 s [3]. 2.4 Tvar a rozdělení polární záře podle složení Tvar záře je dán hustotou a energií nabitých částic slunečního větru vstupujícího do atmosféry a změnami elektrického pole Země. Nejčastějším tvarem polární záře je tvar zvlněné záclony složené ze světelných emisí částic z atmosféry a zabarvené podle barev popsané v předešlé kapitole. Přirovnání k zácloně odpovídá možnostem tvarování polární záře, mohou na ní nastat různé zakřivení dělící se podle prostorové rozsáhlosti (Obrázek 2.5), ale i délky trvání zobrazení, kde nejrozsáhlejší trvá nejdéle, naopak nejmenší má nejkratší trvanlivost. Nejdelší zakřivení záře od velikosti 50 km a dále jsou spirály (spirals), středně veliké zakřivení se nazývají záhyby (folds), které odpovídají délkám o 20 km a nejkratší zakřivení vyvolává dojem kruhu na křivce nebo kudrlinek (curls), ukazuje se ve vzdálenostech 2-10 7 km [4]. Obrázek 2.5 Druhy zakřivení pozorované v polární záři a) kudrlinky (curls), b)spirály (spirals), c)záhyby (folds) [4]. Podle Mezinárodního atlasu polárních září (International Auroral Atlas), vydaného Mezinárodní unií geodézie a geofyziky, lze rozdělit druhy záře podle struktury na záři s paprskovitou strukturou a záři se stejnorodou strukturou [3]. Mezi tvary se stejnorodou strukturou patří typ oblouk (arc, Obrázek 2.6 a)) a pás (band, Obrázek 2.6 b)). Tyto druhy se dokáží roztáhnout na vzdálenosti až 1000 km, jejich tloušťka může nabývat hodnot od 100m do 10 km a výška je v rozmezí 20-30km. Pásy občas mohu získat i tvar podkovy [3]. Dalším typem této kategorie jsou difúzní záře. Jedná se o slabě svítící plochy, které mohou zabírat několik km2, připomínající oblaka. Jejich slabá intenzita je téměř nepostřehnutelná pro lidské oko. Drapérie (Obrázek 2.6 f)) se skládají z pásů s ostrou dolní hranicí, které jsou tvořeny dlouhými až 100 km paprsky. 2.5 Stálost tvarů polární záře Změny tvaru závisí na pohybu a intenzitě záře. Tyto změny mohou být patrné během několika minut, jiné jsou viditelné během několika sekund i méně. Se změnou tvaru souvisí rychlost pohybu jednotlivých částí. Ne v každém směru a ne každá část polární záře se pohybuje stejnou rychlostí. Například u typu oblouku dosahuje rychlost v horizontálním směru až 200 m/s, kdežto ve vertikálním kolem 10 km/s. Menší části jako záhyby a kudrlinky nabývají vyšších hodnot v horizontálním směru, záhyby až 5 km/s, kudrlinky dokonce až 90 km/s. Při roztažení oblouku přes celé zorné pole se při těchto rychlostech a pohybech může uživateli zdát, že paprsky cestují sem a tam z jednoho konce na druhý. Intenzita těchto změn závisí na magnetických subbouřích. 8 KAPITOLA 2. TEORIE POLÁRNÍ ZÁŘE Obrázek 2.6 Rozdělení podle tvaru a struktury záře a)oblouk se stejnorodou strukturou, b) oblouk s paprskovitou strukturou, c) pás se stejnorodou strukturou, d) pás s paprskovitou strukturou, e) koruna s paprskovitou strukturou, f) drapérie s paprskovitou strukturou [3]. Mezi paprskovité struktury patří paprskový oblouk (rayed arc), paprskový pás (rayed band), koruny (corona), drapérie (drapery) a paprsky (rays) [8,13]. Oblouky i pásy se mohou objevit i po skupinách, to znamená více oblouků či pásů současně. Paprskový oblouk (Obrázek 2.6 b), Obrázek 2.8) i pás (Obrázek 2.6d)) svým tvarem odpovídají tvarům stejnorodé struktury, jen vzbuzují zdání, že jsou tvořeny vertikálními pruhy. Obrázek 2.7 Fotografie polární záře typu koruna [12]. 9 Korunu (Obrázek 2.6 e), Obrázek 2.7) je možno spatřit v přímé blízkosti magnetického pólu, má tvar koruny, jejíž paprsky směřují do jednoho bodu. Obrázek 2.8 Fotografie polární záře typu oblouk [14]. 2.6 Oblast výskytu Polární záři je možno sledovat v oblasti magnetických pólů, které neodpovídají přesně pólům geografickým. Tyto oblasti se nazývají aurální oblouky (Obrázek 2.9), které mají střed v magnetickém pólu a roztahují se přes vzdálenost 3000 km. Tyto oblouky se vytváří symetricky na obou pólech Země. V období solárního maxima, při větší intenzitě slunečního větru, mohou tyto oblouky expandovat i do nižších oblastí a polární záře může být pozorována i z oblastí vzdálenějších od magnetických pólů. Obrázek 2.9 Zobrazení aurálního oblouku kolem magnetického pólu Země [19]. 10 KAPITOLA 2. TEORIE POLÁRNÍ ZÁŘE Magnetické póly Země se pohybují, proto dříve za dob Vikingů byla záře spatřována v oblastech kolem Grónska, vzácně i v Norsku. Dnes je k vidění v severní Skandinávii [22]. 3 Kapitola 3 Existující metody simulace V této kapitole jsou představeny dva způsoby simulace polární záře. První je určena pro simulace pásů a drapérií a je zaměřena spíše na statické zpracování obrazu. Druhá metoda se více zaměřuje na dynamiku polární záře a rozšiřuje první metodu, zahrnuje také aspekty chování plazmy, díky čemuž může poskytnout realističtější dojem při animaci záře. 3.1 Simulace pásů a oblouků První způsob simulace polární záře se zaměřuje na vykreslování oblouků a pásů. Místo sledování samostatných elektronů jsou zde pro zjednodušení sledovány cesty celých svazků elektronů. Jiné částice slunečního větru než elektrony zde nejsou uvažovány kvůli malému podílu na výsledku při vyzařování světla. Popis této metody vychází z článku [3]. Tato metoda modeluje polární záře pomocí plošek, které se snaží zachytit tvar závěsu. Tyto plošky jsou generovány pomocí sinusových křivek, kde každá křivka představuje vrstvu dané plošky. Na těchto křivkách se vygenerují počáteční body elektronových svazků, které budou sledovány během cesty k dolní hranici polární záře. Elektronové svazky během své cesty k dolní hranici polární záře narážejí do atomů plynů v atmosféře. Během sledování cesty elektronového svazku určíme jednotlivé body srážek. Tyto body jsou zároveň považovány za body vyzáření fotonů. Barvy vyzáření určíme pomocí odečtených hodnot ze spektrálních křivek (Obrázek 3.4). Tyto barvy jsou určené v barevném prostoru XYZ (blíže popsaném v příloze A). Jednotlivé body vyzáření fotonu namapujeme do pole obrazovky, kam uložíme vyzářené barevné hodnoty. Tyto barevné hodnoty převedeme z prostoru XYZ do prostoru RGB pro konečné vykreslení. Jelikož jsou sledovány svazky elektronů, použijeme Gaussův filtr pro rozostření jednotlivých bodů vyzáření, aby byl zahrnut fakt vyzáření více elektronů. Po vykreslení záře následuje zavedení dynamiky, realizované posuny jednotlivých částí záře (např. koncové body), pro dojem pohybu polární záře. 3.1.1 Plošný model (Sheet model) Výzkumy polární záře ukazují, že proudy urychlujících se elektronů mohou být reprezentovány ploškami (sheety) ohraničenými sinusovými křivkami. Tyto plošky se skládají z vnitřních vrstev, které jsou také tvořeny sinusovými křivkami. Všechny křivky v ploškách, včetně hraničních křivek, mají stejnou amplitudu, ale jsou od sebe fázově posunuty. Tento fázový posun může nabývat hodnoty až 0,35· radiánů. Důležitými 11 12 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE parametry každé plošky jsou její tloušťka w a vlnová délka elektronů plošek . Tloušťka může nabývat hodnot od 1-10 km, poměr mezi tloušťkou a vlnovou délkou elektronů plošek je v rozmezí 5,2 -31,4. Veličiny ovlivňující tvar plošek jsou koncové body plošky počáteční Pi a koncový Pf , počet počátečních bodů v jedné vrstvě n, ze kterých se začnou spouštět svazky elektronů, počet vnitřních vrstev b, fázový posun vrstvy hraničních křivek , tloušťka plošky w a vlnová délka elektronu . Po určení jednotlivých vrstev můžeme určit jednotlivé počáteční body elektronových svazků. Počáteční body elektronových svazků se nacházejí na sinusovce dané vrstvy a jsou dány parametrem s z rozsahu 0-1 (kde s = 0 u Pi a s = 1 u Pf) a fázovým posunem r vrstvy. Pro určení přesné pozice (Obrázek 3.1) počátečního bodu musíme určit vektor ua určený body Pi a Pf. Obrázek 3.1 Sinusová křivka určující polohu počátečních bodů paprsků [3]. Pozici bodu na vektoru lze určit pomocí náhodně generovaného parametru s a následně jeho posunutím na sinusovku ve směru určeném vektorem u b , který je výsledkem vektorového součinu, to znamená ve směru kolmém na oba násobené vektory. Matematicky je vyjádřen výpočet počátečního bodu. ub Ps,Φ r u a s w sin Φ r (3.1) ub Vektor ub je definován jako vektor kolmý na vektor magnetického pole Země B a směrový vektor ua a je určen následujícím vztahem ub ua B . Nový fázový posun Φrnew dané vrstvy je definován pomocí vztahu (3.2), kde se přičítá k fázovému posunutí předchozí vrstvy Φrold inkrementační hodnota dr, určená vztahem (3.3) Φ rnew Φrold d r dr D 2 n (3.2) (3.3) kde D je vzdálenost mezi body Pi a Pf, tedy velikost vektoru ua . Roznásobení konstantou 2· je zde kvůli periodické vlastnosti funkce sinu. Náhodný parametr s je vypočten pomocí vzdálenosti mezi elektronovými svazky ds a náhodně generovaného čísla ξ1 z intervalu <0;1>. Výpočet je dán následujícím vztahem 13 s new s old d s 1 (3.4), kde náhodně generovaná hodnota ξ1 je přičtena k ds, pokud je hodnota ξ1 > 0,5, jinak je hodnota odečtena, což by mělo zajistit nepravidelnosti jako ve skutečné záři. Pro modelování záhybů (folds) se použijí Beziérovy křivky (Obrázek 3.2), kterými se nahradí části sinusových křivek. Pro tyto části záře jsou zde další vstupní parametry, a to počet počátečních bodů v těchto nahrazených částech np, dále kvazi-periodický interval df, udávající vzdálenost mezi záhyby (folds). Počáteční body svazků v těchto částech jsou také náhodně rozmístěny a pomocí změn řídících bodů Beziérových křivek se mohou ovládat tvary jednotlivých záhybů. Obrázek 3.2 Ukázka nahrazení části křivky záhybem 3.1.2 Cesta elektronového svazku Elektrony jsou během své cesty vychylovány po srážkách s atomy plynů v atmosféře. Tato vychýlení jsou důležitá pro určení tvaru a dynamiky záře, tudíž i pro důvěryhodnost simulace. Pro zjednodušení jsou body srážky elektronů s atomy plynů v atmosféře určeny i jako body vyzáření světla. Cesta elektronových svazků (Obrázek 3.4 c)) začíná z počátečních bodů generovaných na sinusových křivkách v plošce (sheet). Směr vektoru rychlosti v klesajícího svazku je určen jako celkový směr postupu částic, zahrnující i spirálovitý pohyb popsaný v kapitole o teorii polární záře. Úhel α, tzv. úhel vychýlení (pitch angle), zobrazený na obrázku 3.3 a), svíraný vektorem rychlosti elektronového svazku bez spirálovité složky vt a vektorem rychlosti se zahrnutou spirálovitou složkou v p , pomáhá určit ztrátovou oblast (loss cone), popsanou dále v textu. Hranice ztrátové oblasti je ovlivněna výškou bodu nárazu a úhlem ztrátové oblasti αD, který je dán vztahem D arc sin B B100 (3.5), kde B je hodnota intenzity magnetického pole B ve výšce h a B100 je hodnota intenzity magnetického pole ve výšce 100 km nad povrchem Země, tedy nad spodní hranicí pro výskyt polární záře. Elektronové svazky svírající úhel < D jsou ve ztrátové oblasti a urychleny pryč do 14 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE atmosféry – ztraceny. Hranice ztrátové oblasti se zmenšuje s výškou srážek elektronů, tyto změny dosahují hodnot menších než 3°. Body srážek jsou vypočteny v několika krocích. Prvním krokem je určení bodu pnew´, který je vypočten ve směru pohybu bez zahrnutí vlivu spirálovitého pohybu a je koncovým bodem dočasného vektoru rychlosti vt (Obrázek 3.3 b). Výpočet tohoto bodu udává následující rovnice B new´ old p p L dt 2 (3.6), B kde L je délka cesty, kterou urazí proud elektronů. Hodnota L závisí na zobrazovaném typu, 20-30 km pro oblouky (arc) a 70 – 100 km pro drapérie (draperies). Vertikální vzdálenost mezi kolizemi dt závisí na počáteční energii elektronů. Elektrony s průměrnou energií 10 keV se mohou během své cesty srazit s atomy plynů atmosféry až 300krát, než dosáhnou hranice 100 km nad povrchem Země, tedy dolní hranice pro zobrazení záře. Z tohoto důvodu můžeme hodnotu dt určit jako 1/300. B je vektor magnetického pole. Obrázek 3.3 Jednotlivé fáze pro určení dalšího bodu kolize, a) zrychlení, b) výpočet bodu srážky, c) vychýlení elektronového svazku během cesty skrz magnetické pole [3]. Požadovaného směru na skutečný bod kolize se dosáhne pomocí azimutového úhlu (3.7), kde ξ3 odpovídá náhodně generovanému číslu v intervalu <0;1>, a polárního úhlu , který odpovídá přírůstku úhlu vychýlení , díky kterým je možno určit koncový bod vektoru v p (Obrázek 3.3 b)) a tedy i bod srážky pnew. obvykle odpovídá hodnotě 0,015 radiánů. Pro každý bod pnew tedy platí vztah 3.10. 2 3 (3.7) D t (3.8) new old p p vp (3.9) Vertikální parametrický posun mezi srážkami t určíme dle vztahu (3.7) z intervalu <0;1>. ξ2 je náhodně generované číslo z intervalu <0;1>. 15 t new t old d t 2 (3.10) U každé srážky jsou určeny intenzity jednotlivých barev při vyzáření fotonu. Postup určení jednotlivých barevných složek je popsán v následující kapitole. Cesta každého elektronu, dokonce i elektronů se stejnými počátečními podmínkami, není stejná. V simulaci je této vlastnosti dosaženo hlavně díky rozdělení výpočtu srážek na dvě zmíněné části. 3.1.3 Určení barevného spektra a intenzity světla Každý bod srážky zahrnuje i vyzáření fotonu. Pro určení barevného spektra vyzářeného fotonu jsou využity hodnoty určené spektrálními křivkami, získaných z grafu na obrázku 3.4 a). Tyto hodnoty obsahují intenzitu vyzářené barvy v barevném prostoru XYZ. Jako hodnota výšky je při mapování hodnoty intenzity barevných složek použita výška bodu srážky. V této metodě je mapování zaměřeno na nejsvětlejší emise, které jsou nejčastější, a proto je mapování zredukováno na červenou, zelenou a modrou barvu. Tyto barvy jsou určené pomocí vlnových délek. 3.1.4 Vykreslení První fází vykreslení je namapování souřadnic bodů kolizí (= bodů vyzáření fotonu) ze světových souřadnic do souřadnic okna (Obrázek 3.5), které probíhá při výpočtu bodů srážek, popsaném v předchozí části (3.1.3). Toho je dosaženo sestrojením vektoru e s koncovými body, kterými jsou bod kolize elektronového svazku s částicemi plynů v atmosféře E a bod určující projekční střed Q, nebo-li bod umístění kamery. Pokud vektor protíná plochu obrazovky, je určen bod průniku s polem obrazovky a indexy určující prvek v poli obrazovky, kam máme uložit hodnoty barevných složek bodu. Pokud vektor neprotne plochu obrazovky, znamená to, že daný bod není zobrazitelný a přejdeme k výpočtu dalšího bodu kolize. Do pole obrazovky jsou akumulovány (přičítány) hodnoty intenzity vyzáření odečtené z obrázku 3.3 a), tyto hodnoty se skládají ze tří hodnot červené, zelené a modré, popsaných v barevném prostoru XYZ. Každá z těchto složek je následně roznásobena hodnotou intenzity určené podle typu zobrazované záře, dle křivek na obrázku 3.3.b). U obou odečítání hodnot je jako hodnota výšky použita y souřadnice bodu E. Další fází je převod barev určených vlnovými délkami barevném prostoru XYZ, do barevného prostoru RGB. Převod je realizován ve dvou krocích. Zaprvé jsou hodnoty CIE spektrálních barevných srovnávacích funkcí pro vlnové délky, ~ x , ~ y a ~ z , převedeny na hodnoty srovnávacích barevných funkcí r , g a b z RGB systému pomocí následujícího vztahu x r ~ g M ~ (3.11), y b ~ z kde M je převodní matice určená standardem SMPTE (Society of Motion Picture and Television Engineers) pro převod z XYZ prostoru do RGB prostoru. 16 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE Obrázek 3.4 Křivky určující intenzity polární záře, a) křivka pro odečtení barevného spektra v dané výšce, b)křivky určující intenzity vyzáření jednotlivých tvarů určené výškou nad dolní hranicí výskytů polární záře (100 km) [3]. Namapované intenzity jsou poté roznásobeny podle hodnot získaných z křivek grafu intenzit na obrázku 3.4 b), kde se jednotlivé hodnoty mění podle typu zobrazovaného tvaru. Tyto získané hodnoty využijeme následně při mapování bodů vyzáření fotonů do pole obrazovky. 17 Obrázek 3.5 Ilustrace mapování bodu ze světových souřadnic do pole okna[3] Výsledkem převodu jsou hodnoty srovnávacích barevných funkcí r , g a b z RGB systému vypočtené z každé jednotlivé složky XYZ barevného prostoru. Proto obdržíme pro každou z r , g a b srovnávací funkci 3 hodnoty, které zpracujeme v následujícím kroku (tzn. pro ~ x r ~x , g ~x , b ~x , stejně pro hodnoty ~ y a ~ z ). Dalším krokem převodu do RGB barevného prostoru je tedy určení jednotlivých složek základních barev RGB systému, tedy červené, zelené a modré pomocí následujících rovnic 3 R f i ri (3.12), G f i g i (3.13), i 1 3 i 1 3 B f i bi (3.14), i 1 kde hodnota f i je intenzita i-té složky ( ~ x , ~ y a ~ z ) určené v XYZ prostoru a hodnoty r i , g i a b i jsou hodnoty získané převodem té samé i-té složky. Tyto intenzity jsou uloženy pro každý pixel v poli obrazovky, pro každou vlnovou délku, podle postupu popsaném výše. 3.1.5 Antialiasing Ke zvýšení autentičnosti obrazu polární záře je využit antialiasing. Antialiasing je realizován rozostřením obrazu, tedy rozprášením barev do sousedních pixelů pomocí Gaussova filtru (Obrázek 3.6), čímž je realizováno vyzáření světla elektronů ve svazku a ne pouze jednoho jediného elektronu. 18 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE Obrázek 3.6 Použití Gaussova filtru a) jeho použití pro rozprášení na pole obrazovky, b) příklad Gaussova jádra kde m =31 a = 5.25 [3]. Pomocí funkce Gaussova filtru určíme dočasné nové barevné hodnoty prvků pole obrazovky (reprezentující jednotlivé pixely). Tyto hodnoty obdržíme pomocí funkce Gaussova filtru, která je dána vztahem 1 G i, j e 2 2 i2 j2 2 2 (3.15), kde i a j jsou indexy Gaussova jádra, pro které určujeme nové hodnoty a je standardní odchylka, tedy hodnota určující velikost okolí pro rozostření. Gaussovo jádro určuje množiny sousedních pixelů, pro které budeme počítat antialiasing. Nová hodnota každého pixelu hi,j je dána váženým průměrem hodnot okolních pixelů oi,j m/ 2 hi , j i, j m / 2 Gi , j oi , j wi , j , kde váhy jednotlivých okolních sousedních pixelů Gi,j jsou dány Gaussovou funkcí. Hodnota m značí aktuální prvek Gaaussova jádra. Rozdíl mezi vykreslením s antialiasingem a bez antialiasingu je znázorněno na obrázku 3.7. 19 Obrázek 3.7 Výsledky metody simulace pomocí plošné metody bez antialiasingu (vlevo) a s antialiasingem (vpravo)[3]. 3.1.6 Dynamika Simulace dynamiky je realizována pomocí dvou nejdůležitějších pohybů v polární záři. Posunování oblouků je vyřešeno pomocí posunutí koncových bodů Pi a Pf. Další častý pohyb v polární záři, tedy horizontální pohyb kudrlinek, je uskutečněn určením nového počtu počátečních bodů elektronových svazků a posunutím záhybů. 3.2 Tančící světla (Dancing lights) Tato metoda je rozšířením předešlé metody vizualizace. Metoda pro zobrazování pásů a oblouků nezahrnuje magneto-elektrické nestability potřebné pro změny chování záře během časové změny. Tyto změny popisují odlišné chování v různých částech záře. Popis této metody vychází z článku [4]. Pro větší přesnost je zde použit model plasmy, který umožňuje přesnější simulování průběhu středně velkých zakřivení – záhybů (folds) a paprsků. Simulování plasmy, včetně její nestability, je založeno na algoritmu simulování nestabilit tekutin. K tomu jsou využity výpočty částečných diferenciálních rovnic (PDE), sdružených gradientů (CG) nebo rychlé Fourierovy transformace (FFT). Pro výpočty PDE je využit multimřížkový algoritmus (multigrid algorithm) upravený oproti doposud existujícím postupům, osvobozený od ukládání matic a šetřícím tak nároky na paměť. Chování plasmy lze počítačově zpracovat dvěma způsoby. Pomocí Lagrangova modelu, nebo pomocí Eulerova modelu. Lagrangeova metoda spočívá ve sledování pohybu jedné konkrétní částice v čase, zatímco Eulerova metoda sleduje stav proudění částic v určitém prostoru (více o mechanice kontinua v [5]). Pro modelování je využito kombinace obou zmíněných metod, kde Lagrangův přístup je využit pro výpočet interakcí mezi částicemi v paprsku a mezi paprsky. Eulerův 20 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE přístup je využit, pokud nastanou větší prostorové změny. Pro výpočty pomocí tohoto hybridního přístupu jsou využity mřížky, na které aplikujeme multimřížkový algoritmus. Postup simulace a vizualizace polární záře touto metodou tedy obdobný jako u první metody. Jediný rozdíl nastává při určení vlivu rychlosti kolmé vk na magnetické pole Země, tedy hlavního faktoru pro spirálovitý pohyb elektronových svazků. Hlavním úkolem tohoto postupu je určení vektoru kolmé rychlosti v a následného celkového vektoru rychlosti v elektronových svazků pro směr postupu. Pro výpočet aktuální pozice je použit algoritmus pro určení spirálovitého pohybu (warp algorithm) a dále je také zahrnut vliv příchozích dalších částic slunečního větru Elektronové svazky jsou sledovány během cesty k dolní hranici, dokud nepřijdou o svou energii a nestanou se zaměnitelnými s ostatními částicemi atmosféry. Během své cesty je směr elektrických svazků ovlivněn elektrickým polem E , generovaným jejich vzájemným elektrostatickým působením, a magnetickým polem Země B . Proto je pro výsledný směr pohybu nutné určit E i B . Další po určení bodů srážek je totožný s první metodou vizualizace a simulace. 3.2.1 Výpočty pro určení spirálovitého pohybu Postup elektronového svazku je ovlivněn elektrickým polemE , generovaným vzájemným elektrostatickým působením a magnetickým polem Země B . Lorenzova síla Fk působící na elektronový svazek s nábojem q a vektorem určující kolmý vektor rychlosti v , zodpovědný za spirálovitý pohyb, je dán vztahem Fk qk E v k B (3.16), kde k slouží jako index jednotlivých svazků. Pohyb svazku elektronů o hmotnosti mk je dán Newtonovým pohybovým zákonem dvk mk Fk (3.17). dt Pro aktualizaci poloh svazku je třeba spočíst E a B . Pro určení zakřivení cest je magnetické pole považováno za neměnné v každém okamžiku a je určeno velikostí B . Vektory B a E jsou na sebe kolmé. Využitím Gaussova zákonu lze určit E E (3.18), 0 kde 0 je primitivita vakua a značí hustotu elektrického náboje danou vztahem N P qk P Pk (3.19), k 1 kde P je počáteční pozice elektronového svazku, qk je hodnota elektrického náboje v pozici Pk a je Diracova funkce. Využitím Maxwellových rovnic popisujících dynamiku nabitých částic a elektrického pole je obdržen vztah (3.20). E 0 Poslední důležitou veličinou této metody je elektrický potenciál určený vztahem 21 E (3.21) a jeho využití v Poissonově rovnici určující divergenci gradientu potenciálu 2 (3.22). 0 Vztahy 3.17 a 3.22 jsou základem částicového systému, ve kterém jsou spojeny dva postupy pro určení aktuální polohy svazku. Tento systém využívá částicovou mřížku, ve které jsou aplikovány právě vztahy určující sílu v dané pozici 3.17, využívající Lagrangovu metodu, a vztah určující vliv elektrického potenciálu 3.22, využívající Eulerův postup. 3.2.2 Algoritmus spirálovitého pohybu (Warp algorithm) Pro určení rychlosti svazků, tedy síly na něj působící, je použit Lagrangův postup, zatímco pro výpočty potenciálu Eulerův. Určení kolmých rychlostí je rozloženo do čtyř kroků, kde 1) Z pozice elektronů Pk je určena hustota elektrického náboje 3.19. 2) Z nábojového rozložení pomocí Poissonovy rovnice (3.22) se určí elektrostatický potenciál Φ. 3) Z potenciálu pomocí vztahu 3.21 je určeno elektrické pole E ovlivňující každý svazek. 4) Použitím Newtonova zákonu síly 3.17 s lokálním elektrickým polem a magnetickým polem Země lze určit novou polohu a kolmou rychlost každého elektronového svazku. Pro určení dalších pozic se opakuje postup od bodu 1. Stopování paprsků začíná stejně jako v předešlé metodě, z počátečního bodu umístěném na plošce. Tyto plošky zde jsou modelovány pomocí pruhů ohraničených periodickými a Neumannovými podmínkami podél os x a y. Počáteční body paprsků jsou rozmístěné náhodně uvnitř těchto pruhů, ohraničených délkou a tloušťkou (Obrázek 3.8) a s počáteční kolmou rychlostí v 0 . Počet srážek je ovlivněn počáteční hodnotou poměru : . Obrázek 3.8 Část proudu částic modelovaný pomocí pruhu elektronových svazků s periodickými a Neumanovým hraničními podmínkami podél os x a y [4]. 22 3.2.3 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE Určení náboje V hybridním Eulero-Lagrangeově postupu jsou použity pro elektrické pole a pro počet částic, ovlivněné silou, různé mřížky. Výpočet nábojové hustoty i,j v jednotlivých bodech mřížky G(i,j) je dán výpočetní metodou CIC (Cloud-in-cell), při které je hodnota buňky určena sumou vážených hodnot k elektrických nábojů qk elektronových paprsků ek v okolí mřížkového bodu (Obrázek 3.9 a) ). i , j 1 k qk oblast sousednich bunek ek bunky obklopujíc í G (i, j) (3.23) Namísto hledání, ke kterému bodu G(i,j) daný elektronový paprsek ek přispívá svým nábojem, je jeho náboj qk rozdělen pomocí vah ik*, j* kde i * {i, i 1}, j * { j , j 1} mezi všechny mřížkové body, které jej obklopují (Obrázek 3.9 b) ). S ohledem na spojitost nábojové hustoty musí být váhy ik*, j* definovány následujícím vztahem ik, j S Gi , j Pk (3.24), kde Se je upravená Diracova delta funkce určená vztahem lim S . . 0 (3.25). Obrázek 3.9 Popis namanipulaces nábojm mřížce a)Popis nábojové akumulace v bodu mřížky Gi,j, b)Popis rozložení náboje svazku elektronů ek do nejbližších mřížkových bodů [4]. 3.2.4 Poissonova rovnice Gradient elektrického potenciálu je dán Poissonovou rovnicí 3.22. Pro Eulerovu mřížku s rozměrem h může být částečná diferenciální rovnice rozložena na 23 4i , j i 1, j i 1, j i , j 1 i , j 1 h 2 i , j 0 (3.26), čímž dostaneme soustavu lineárních rovnic, které lze vyjádřit pomocí zápisu A, kde A představuje matici rovnic, vektor neznámých potenciálů a vektor nábojové hustoty. Pro řešení matice A se nabízí řada metod. Jako nejefektivnější byla vybrána multimřížková metoda (multigrid method) s lineární časovou složitostí O(n). Ostatní metody jako je například Gaussova eliminační metoda, jsou příliš zdlouhavé s časovou složitostí O(n2), sdružené gradienty s O(n1.5) a FFT O(nlog2n). 3.2.5 Implementace multimřížkové metody Jak již bylo zmíněno v předešlé kapitole, časová složitost je lineární. U Poissonových rovnic navíc konstanta složitosti n obvykle nedosahuje větších hodnot než 10. Multimřížková metoda využívá vlastností lineárních rovnic na úrovni částečných diferenciálních rovnic, což je výhodnější než na úrovni matic. Navíc dřívější multimřížkové implementace byly náročné na paměť kvůli ukládání množství mřížek s menším rozlišením(coarse grid). Proto byl dosavadní postup upraven na postup osvobozený od práce s maticemi, který je velmi efektivní právě při práci s pamětí. Hlavním požadavkem na multimřížkové metody je zrychlení konvergence iterací pomocí částečných diferenciálních rovnic na sekvenci mřížek s nižším rozlišením. Základním principem je eliminovat vysokofrekvenční chyby pomocí relaxace vyhlazováním (relaxation smoothing) a nízkofrekvenční chyby pomocí korekce mřížky s nižším rozlišením. h označuje aktuální aproximace řešení na mřížce s vyšším rozlišením (fine grid) s rozměrem mřížky h a h danou vztahem h h (3.27) značí chybu. Díky kontroverzní podstatě Poissonovy rovnice se hodnota chyby h, získaná několika relaxačními kroky, zjemní (smooth). Díky tomu lze snadno přesně určit aproximaci mřížky s nižším rozlišením pomocí projekce zbytkových chyb r h A h (3.28) na mřížce s nižším rozlišením s rozměrem mřížky H. Chybu mřížky s nižším rozlišením tak lze určit ze vztahu A H H RhH r h (3.29) s malou výpočetní náročností díky menšímu počtu mřížkových bodů na hrubé mřížce. AH značí matici mřížky s nižším rozlišením a RhH plnohodnotný omezující operátor (full weighing restriction operator). Nakonec je chyba mřížky interpolována zpět na mřížku s vyšším rozlišením (fine grid) k přepočtu mřížky s vyšším rozlišením (fine grid) new h PHh H (3.30), kde PHh je lineární interpolační operátor. Tímto výpočtem je zakončen jeden průchod 24 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE multimřížkovým V-cyklem (Obrázek 3.10). Obrázek 3.10 Popis V-cyklu[4] Při implementaci jsou využity pouze úkony související s hrubou mřížkou, interpolace a omezujícími operátory. Proto nedochází k vytváření ani ukládání matic, díky čemuž je třeba pouze 3.5 vektorů mřížky s vyšším rozlišením, což využívá dokonce méně paměti než metoda sdružených gradientů. 3.2.6 Rychlost a nová pozice elektronů Elektrické pole Ei,j je definováno na Eulerově mřížce, jehož hodnota je dána derivací potenciálu i,j, zatímco elektronové svazky jsou definovány na Lagrangeově mřížce. Tyto dvě mřížky nejsou na sebe obecně převeditelné, proto musí být elektrické pole elektronových paprsků ek v bodě Pk určeno pomocí interpolace do nejbližších rohů buňky, tedy do okolních bodů mřížky, což je obrácený postup než při rozkládání náboje (Obrázek č. 3.9) Výpočet nové hodnoty kolmé rychlosti a pozice elektronových paprsků se určí vztahem (17). 3.2.7 Další postup Další postup odpovídá metodě založené na plošném modelu. Dalším krokem je tedy sledování trajektorie a celkový postup elektronového svazku magnetickým polem Země. Poté je potřeba odečíst hodnoty spektrálních křivek a intenzit (Obrázek 3.4) podle výšky bodů kolize a provést mapování těchto bodů do pole obrazovky. Nakonec dojde k převodu barev do RGB prostoru a rozostření obrazu pomocí Gaussova filtru. Výsledky této metody jsou zobrazeny na obrázku 3.11. 25 Obrázek 3.11 Obrázky generované pomocí metody plasmového modelu[4] 26 KAPITOLA 3. EXISTUJÍCÍ METODY SIMULACE 4 Kapitola 4 Analýza a návrh řešení Tato kapitola se snaží zodpovědět otázky, týkající se funkčnosti a vlastností vytvářeného programu. Představíme metodu, pomocí které je program realizován a rozšíření, které jsme do stávající metody zavedli. Dále představíme také návrh uživatelského rozhraní aplikace. Poté se pustíme do poznávání funkčnosti jednotlivých částí a způsobu komunikace mezi nimi. 4.1 Zvolená metoda vizualizace a simulace Pro vizualizaci a simulaci polární záře jsme zvolili metodu s plošným modelem. Tento postup simulace vizualizace pomocí plošného modelu byl představen v kapitole 3.1 , zde si ji krátce zrekapitulujeme a připomeneme základní kroky. Zvolená metoda slouží k simulaci oblouků, pásu a drapérií. Pásy a oblouky si jsou velice podobné a dají se snadno zaměnit, drapérie se zase skládá z pásů. Díky tomu může tato metoda zahrnout tyto 3 typy polární záře. Prvním krokem při simulaci a vizualizaci pomocí této metody je určení rozmístění počátečních bodů elektronových svazků, které putují ve směru vektoru magnetického pole Země, na plošce. Tyto plošky jsou tvořeny vrstvami, které představují sinusové křivky. Části plošky nahradíme záhyby, pomocí Beziérových kubik, pro získání tvaru zvlněné záclony, popsaném v kapitole 2.4. Dále postupně určíme body srážek, tedy i vyzáření, elektronů a přiřadíme jim barevné hodnoty odečtené z grafů na obrázku 3.3. Body dále namapujeme do pole obrazovky tak, že na místo odpovídající namapovanému bodu přičteme k původní barevné hodnotě barevnou hodnotu namapovaného bodu. Poté hodnoty uložené v poli obrazovky převedeme do RGB systému a pomocí Gaussova filtru zahrneme do výsledného zobrazení vyzáření elektronů jako celého svazku. Pro simulaci dynamiky záře budeme posunovat záhyby na plošce a měnit množství počátečních bodů pro dojem vertikálního pohybu a posunovat koncové body plošky pro dojem horizontálního pohybu. 4.2 Návrh na rozšíření Jako rozšíření jsme zavedli možnou manipulaci s vektorem magnetického pole Země s tím, že máme možnost měnit jeho směr. Dále je přidána možnost pozorovat polární záři z více úhlů, a to díky možnosti pohybu ve scéně. Kvůli časové náročnosti při výpočtu tvaru záře jsme zavedli možnost přepínání mezi obrysem polární záře a plnohodnotným 27 28 KAPITOLA 4. ANALÝZA A NÁVRH ŘEŠENÍ zobrazením. Dále je kvůli časové náročnosti možnost vypnutí antialiasingu. Dalším rozšířením jsou možnosti přepínání standardů převodních matic z CIE XYZ systému do systému RGB při převodu hodnot intenzit jednotlivých barevných složek. 4.3 Návrh uživatelského rozhraní V této kapitole představíme návrh na ovládání programu, na pohyb ve scéně a manipulaci s polární září. Také představíme uspořádání hlavního okna aplikace pro možnost vykreslení krajiny a zobrazení vektoru magnetického pole Země. Rozdělení okna Aplikace obsahuje hlavní okno a podokno. Pro vykreslení scény s krajinou a polární záře slouží hlavní okno, které zabírá větší část okna celé aplikace a je možno se v něm pohybovat a sledovat polární záři. Vykreslení vektoru magnetického pole Země je realizováno do podokna umístěného v pravém horním rohu. Se souřadným systémem lze otáčet pomocí virtuálního trackballu [23] a kontrolovat tak směr vektoru ze všech stran. Pohyb ve scéně Pro pohyb v hlavním okně je využita klávesnice i myš. Pomocí klávesnice je zajištěn samotný posun ve scéně a otáčení kamery. Pro naklonění kamery leze využít i myš. Nastavení polární záře Nastavení polární záře lze změnit pouze omezeně při běhu aplikace. Většina nastavení je realizována pomocí konfiguračního souboru a při běhu programu lze pouze upravovat některé údaje, například směr vektoru magnetického pole. Pomocí klávesnice lze polární záři přiblížit či oddálit vzhledem ke krajině. Dále pomocí klávesnice lze měnit směr vektoru magnetického pole, čímž měníme i natočení polární záře. Další změny polární záře lze nastavit pomocí menu vyvolaného pravým tlačítkem myši, kde lze nastavit zvolený zobrazovaný typ polární záře, převodní matici, barevný prostor, ze kterého se převádí do RGB (CIE XYZ 1931/CIE XYZ 1964), přepínání antialiasingu, animace a přepínání mezi zobrazením obrysu záře a plnohodnotným zobrazením záře. 4.4 Analýza aplikace V této části si popíšeme jednotlivé části aplikace a jejich funkčnost. Pro jednodušší pochopení funkce programu jej popíšeme pomocí funkčních bloků. Každý jednotlivý blok bude blíže popsán, aby bylo jasné, co se v programu děje a jak mezi sebou jednotlivé bloky komunikují. 4.4.1 Hlavní zobrazovací smyčka Hlavní vykreslovací smyčka (Obrázek 4.1) začíná načtením dat z konfiguračního souboru. Tyto údaje jsou hlavními parametry ovlivňující tvar záře a jsou předány dále do bloku sloužícímu k výpočtům jednotlivých částí polární záře. Podrobnější funkce bloku sloužícímu k výpočtům popíšeme v další části Výpočet polární záře 29 Výsledkem bloku výpočtu je naplněné pole obrazovky, které je rozměrově stejně velké jako velikost okna a každý prvek pole odpovídá jednotlivým pixelům v okně. Každý prvek pole také obsahuje hodnoty barevných složek převedených do RGB. Toto pole obrazovky je poté zpracováno v bloku zobrazení polární záře, kde dochází k vykreslení jednotlivých pixelů s pomocí barevných hodnot uložených v jednotlivých prvcích pole odpovídající pixelům v okně aplikace. Po vykreslení polární záře dojde k překreslení scény. Tato scéna je načtena pomocí grafu scény využitého z kurzu X36ZPG [23], jenž je doplněn o skybox. Scéna je načtena při spuštění programu a poté dochází jen k aktualizaci kamery při pohybu v této krajině. Posledním krokem zobrazovací smyčky je vykreslení vektoru magnetického pole Země. Pro tento účel je vyžit také virtuální trackball [23], pro kontrolu směru vektoru magnetického pole Země a tím i směru pohybu elektronových svazků. Průchodem smyčky dojde k vykreslení polární záře, krajiny a ovládacího okna pro změnu směru vektoru magnetického pole Země. Další průchod smyčkou může být zajištěn manipulací s polární září, jako například změnou vektoru či posunu záře vůči pozorovateli, nebo také pohybem ve scéně. Pokud je aktivní volba animace, tak dochází k překreslení automaticky. 4.4.2 Výpočet polární záře Při spuštění programu dojde k načtení parametrů z konfiguračního souboru. Tyto parametry jsou dále předány do bloku určeného k výpočtu. Pokud není vytvořena žádná ploška, dojde k jejímu vytvoření a výpočtu jejích částí. Pokud však již byla ploška vytvořena, tedy nejedná se o první průchod zobrazovacím cyklem, dojde k úpravě již existujících hodnot plošky. V následující části si představíme funkčnost jednotlivých bloků. Generování segmentů Jako segment je označena část plošky, která má jiné vlastnosti než části plošky, které ji obklopují. Jedná se tedy o část záře a určuje, jaký tvar bude tato část nabývat. Jak již bylo popsáno v kapitole 3.1.1 plošky jsou tvořeny vrstvami pomocí sinusových křivek. Části těchto vrstev jsou nahrazeny pomocí křivek určenými pomocí Beziérových kubik pro tvorbu záhybů. Rozdělíme tedy plošku na segmenty, které obsahují informaci, o jakou část plošky se jedná. Na tyto části budeme mapovat počáteční body svazků elektronů. Generování vrstev Po určení jednotlivých segmentů spočteme koncové body jednotlivých vrstev. Tyto konce jsou posunuty v ose z vzhledem ke koncovým bodům plošky načtených z konfiguračního souboru. Sinusové křivky jednotlivých vrstev plošky jsou navíc fázově posunuty. Posun koncových bodů, segmentů, vrstev a přepočet bodů Pokud se jedná o druhý průchod smyčkou, dojde k úpravám hodnot existujících částí. Prvním přepočtem je aktualizace pozice koncových bodů plošky, které jsou posunuty 30 KAPITOLA 4. ANALÝZA A NÁVRH ŘEŠENÍ podél os x, y, z. Dále následuje posun segmentů v plošce. Vzhledem k efektu putování záhybu z jednoho konce na druhý a zpět je po dosažení krajního segmentu koncového bodu plošky obrácen směr posunu. Posun vrstev je realizován stejným způsobem jako v prvním průchodu, tedy při jejich generování, jen dochází k posunu vzhledem k posunutým koncovým bodům plošky. Poté následuje přepočet počtu počátečních bodů pro dojem náhodného pohybu podle postupu zmíněném v kapitole 3.1.6 . Obrázek 4.1 Popis hlavní vykreslovací smyčky. Generování počátečních bodů Generování počátečních bodů probíhá pro každou vrstvu zvlášť. Počet generovaných bodů je dán rozměrem okna a koncovými body. Mapování počátečních bodů na segment Každý vygenerovaný bod je poté namapován na křivku určenou segmentem. To znamená, že pokud se bod nachází na segmentu určeném pomocí Beziérovy kubiky, musí být počáteční bod přemístěn na svou pozici na křivce určené právě kubikou. 31 Obrázek 4.2 Popis funkčních částí bloku pro výpočet polární záře. Výpočet bodu nárazu paprsků Po namapování počátečních bodů na segmenty plošky následuje sledování pohybu svazku elektronů z počátečních bodů až k dolní hranici polární záře. Během této cesty se svazky elektronů srážejí s částicemi plynů v atmosféře, čímž získají energii pro vyzáření světla. Tyto body jsou určeny pomocí vztahu 3.6 a následně jsou vychýleny po kružnici pomocí azimutového úhlu , kvůli simulaci spirálovitého pohybu. Přiřazení barevných složek 32 KAPITOLA 4. ANALÝZA A NÁVRH ŘEŠENÍ Každému bodu vyzáření přiřadíme barevné složky vyzáření. Přiřazení hodnot barevných složek je uskutečněno z hodnot určených spektrálními křivkami a křivkami intenzit (Obrázek 3.4). Každému bodu nárazu je podle jeho výšky přiřazena barevná hodnota, která je následně roznásobena intenzitou podle zvoleného zobrazovaného typu záře. Tyto hodnoty si uchovává bod, dokud není namapován do pole obrazovky. Pokud elektronový paprsek dorazí k dolní hranici záře, ukončí se sledování cesty paprsku a dojde k dalšímu výpočtu bodů srážek z nového počátečního bodu. Mapování bodu do pole obrazovky Mapování do pole obrazovky probíhá přesně podle postupu popsaném v kapitole 3.1.4. Pokud vektor, určený bodem kamery a bodem srážky elektronového svazku s částicemi plynů v atmosféře, protne průmětnu určenou polem obrazovky, dochází k přičtení barevných hodnot k původním hodnotám prvku pole, který je protnut tímto vektorem. Převod barev do RGB systému Po přemapování všech bodů do pole obrazovky jsou barevné hodnoty z prostoru CIE XYZ převedeny do RGB systému podle postupu popsaném v kapitole 3.1.4. Pole obrazovky s převedenými hodnotami je předáno dále ke zpracování. Pokud je zapnutý antialiasing, dojde k rozdělení barevných hodnot pole obrazovky pomocí Gaussova rozmazání (Gaussian blur). 5 Kapitola 5 Implementace V této kapitole si představíme nástroje, pomocí kterých jsme realizovali vizualizaci a simulaci polární záře. Řekneme si, jaké knihovny jsme využili k její implementaci a jaký jazyk byl zvolen k implementaci aplikace. Dále si představíme nové datové typy, které jsme zavedli pro zpřehlednění a pro přiblížení struktur ke skutečným prvkům. Nakonec si ukážeme implementaci jednotlivých funkčních bloků popsaných v kapitole 4. 5.1 Vývojové prostředí a jazyk Pro tvorbu programu vizualizace a simulace polární záře jsme zvolili jazyk C++, grafickou knihovnu OpenGL a dále pak programové knihovny GLU a GLUT. Jako vývojové prostředí jsme zvolili MS Visual Studio 2010. Tyto nástroje jsme zvolili s ohledem na možnost uplatnění znalostí nabytých během studia, obzvláště z kurzu základů počítačové grafiky. 5.2 Datové typy Pro zjednodušení, zvýšení přehlednosti a zároveň přiblížení se realitě jsme zavedli nové datové typy: SHEET – reprezentuje plošky, uchovává si informace o svých vrstvách, o rozdělení segmentů a o svých koncových bodech. KRIVKA – reprezentuje jednotlivé vrstvy v plošce, uchovává si údaje o svých počátečních bodech elektronových svazků a o svých koncových bodech. SEGMENT – reprezentuje části SHEETU, obsahuje informaci, zda je tato část SHEETU sinusovkou či je nahrazena segmentem se záhybem, dále obsahuje své koncové body. SEG_BOD – reprezentuje koncové body vrstev, segmentů, počáteční body elektronových svazků a je využit i jako vektor, uchovává si informace o svých souřadnicích. BOD – reprezentuje body srážek, tedy i vyzáření, obsahuje své souřadnice a informace o RGB hodnotách. RGB – reprezentuje barevné hodnoty při vyzáření, tedy červenou, zelenou a modrou. 5.3 Implementace jednotlivých částí Zde si představíme implementaci jednotlivých částí funkčních bloků představených 33 34 KAPITOLA 5. IMPLEMENTACE v analýze. Popíšeme si podrobný postup výpočtů a u neobvyklejších částí si ukážeme i pseudokód realizace. Generování segmentů Segmenty jsme představili jako části, ze kterých se skládá ploška. Tyto segmenty v sobě uchovávají informaci, zda se jedná o část záře se záhybem či bez záhybu. Pokud segment obsahuje záhyb, nahradíme sinusový průběh všech vrstev plošky v tomto segmentu křivkou, určenou Beziérovou kubikou. To ovlivní pozice počátečních bodů generovaných v tomto segmentu plošky, protože musí být posunuty na křivku definovanou kubikou. Generování segmentů začínáme určením koncových bodů segmentů. Tyto vygenerované koncové body segmentů potom společně s krajními body plošky vzestupně seřadíme pomocí parametru s, určující pozici body mezi koncovými body plošky. Z takto seřazených bodů vytvoříme jednotlivé segmenty. Krajní body segmentů generujeme pomocí výpočtu pozice počátečních bodů dané vztahem 3.1, kde po vygenerování prvního bodu procházíme cyklem pro generování druhého koncového bodu, dokud vzdálenost mezi koncovými body není v rozmezí intervalu <min_délka;max_délka>. Hodnota min_délka a max_délka jsou určené v konfiguračním souboru. Pokud však načtené hodnoty přesahují mezní hodnoty (vypočtené z délky plošky), jsou nastaveny maximální hodnoty obou extrémů. Dále kontrolujeme, zda nový generovaný bod nezasahuje mezi již generovanou dvojici bodů určující segment a zda splňuje požadavek na minimální rozestup mezi záhyby, pokud bod podmínky nesplňuje, generujeme bod znovu. Minimální vzdálenost mezi záhyby je dána hodnotou max_délka. Tyto body společně s koncovými body plošky seřadíme vzestupně podle již zmíněného parametru s. Pokud je mezi generovanými body bod totožný s krajním bodem plošky, kde parametr s = 0, bude prvním segmentem záhyb. Pokud se mezi generovanými body nachází body odpovídající koncovým bodům plošky, dojde k jejich zahození a pro tvorbu segmentů se použijí krajní body plošky. Po vygenerování segmentů přecházíme ke generování jednotlivých vrstev, určujících plošku. Maximální počet záhybů je určen pomocí vzdáleností mezi koncovými body plošky a maximální délkou segmentu. Generování vrstev Vrstvy jsou určené sinusovými průběhy. Části těchto křivek jsou nahrazeny segmenty se záhyby podle způsobu popsaném v předešlé části. Pro každou z těchto vrstev jsou generovány počáteční body elektronových svazků. Jednotlivé vrstvy mají různý fázový posun sinusového průběhu. Pro tento posun jsme zvolili krok 0.01 radiánů. Dále jsme posunuli krajní body jednotlivých vrstev v ose z. Tento posun je realizován vzhledem k načteným koncovým bodům plošky z konfiguračního souboru. Hodnota posunu je zvolena z intervalu <-1000;1000> vzhledem k možnému rozpětí šířky plošek, které nabývá hodnot od stovek metrů do několika kilometrů [4]. 35 Posun koncových bodů, segmentů, vrstev a přepočet bodů Pokud se jedná o druhý průchod smyčkou, dojde k úpravám hodnot existujících částí. Prvním přepočtem je aktualizace pozice koncových bodů plošky, které jsou posunuty podél os x, y, z na nové souřadnice xn, yn ,zn, které vždy dosahují maximální odchylky 60% v obou směrech vzhledem ke svým osám, oproti původním hodnotám z konfiguračního souboru. Dále následuje posun segmentů, obsahující záhyby, v plošce. Ten je realizován pomocí empiricky zvolené konstanty. Vzhledem k efektu putování záhybu z jednoho konce na druhý a zpět je po dosažení krajního segmentu koncového bodu plošky obrácen směr posunu, tedy je změněno znaménku u konstanty kroku. Posun vrstev je realizován stejným způsobem jako v prvním průchodu, tedy při jejich generování, jen dochází k posunu vzhledem k posunutým koncovým bodům plošky. Poté následuje přepočet počtu počátečních bodů pro dojem náhodného pohybu. Nová hodnota je v rozmezí 15%. Generování počátečních bodů Dalším krokem je výpočet počátečních bodů podle postupu 3.1, kde parametr s je náhodně generované číslo z intervalu <0;1>. Generování počátečních bodů se mírně liší, pokud se jedná o první průchod po zobrazení nebo změně velikosti okna anebo pokud se jedná o další průchody zobrazovací smyčkou. Při prvním průchodu určíme počet počátečních bodu ve vrstvě pomocí namapování koncových bodů plošky do pole obrazovky a následného určení rozdílu mezi souřadnicemi os x a y. Větší hodnotu poté roznásobíme empiricky zvolenou konstantou, jenž nabývá hodnoty 5 pro oblouky a 10 pro pásy a drapérie, čímž získáme počet generovaných počátečních bodů. Při dalších průchodech zobrazovací smyčkou dochází k úpravě hodnoty počtu generovaných počátků vzhledem k hodnotě určené postupem pospaném v předchozím odstavci. Nová hodnota množství počátečních bodů ve vrstvě je změněna maximálně o 15% z původní hodnoty, určené rozsahem okna a délkou polární záře. Mapování počátečních bodů na segment Vygenerovaný bod je poté namapován na křivku určenou segmentem. To znamená, že pokud se bod nachází na segmentu určeném pomocí Beziérovy kubiky (více o Beziérových kubikách [1]), musí být počáteční bod přemístěn na svou pozici na křivce určené kubikou. Nová pozice počátečního bodu je určena pomocí parametru s určujícího posun na vektoru mezi koncovými body plošky. Tento parametr s je převeden společně s parametry koncový bodů segmentu na parametr t do intervalu <0;1>, kde počáteční bod segmentu P0 nabývá hodnoty 0, koncový P3 hodnoty 1. Převod je proveden pomocí následujícího vztahu sbod s P0 t , s P0 s P3 kde s P0 je parametr počátečního bodu segmentu a s P3 je parametr koncového bodu segmentu. Dále vypočteme řídící body kubiky. Jejich pozici nalezneme určením středu 36 KAPITOLA 5. IMPLEMENTACE úsečky mezi P0 a P3 a vztyčením kolmice na zmíněnou úsečku. Posunem po kolmici o hodnotu poloviny úsečky dané body P0 a P3, v obou směrech získáme řídící body P1 a P2. Parametr t poté dosadíme do Bernsteinových polynomů, 3 B0 t 1 t , 3 B1 t 3t 1 t , 2 B2 t 3t 2 1 t , B3 t t 3 a nové souřadnice počátečního bodu obdržíme ze vztahů x xP 0 B0 x P1 B1 xP 2 B2 xP 3 B3 , y y P 0 B0 y P1 B1 y P 2 B2 y P 3 B3 , z z P 0 B0 z P1 B1 z P 2 B2 z P 3 B3 . Algoritmus mapování Hlavní funkce pro mapování bodu na segment záhybu prochází segmenty. Pokud bod zasahuje do segmentu, dojde k testu na segment, zda jde o záhyb. Pokud jde o záhyb, dojde k přepočtu pozice voláním funkce spoctiFold(), jinak se prohledávání ukončí, protože není třeba hledat novou pozici. SEG_BOD * mapujBodNaSegment(SEG_BOD *b){ //načteme první segment *s = segmenty; while(s){ if(zasahujeDoSegmentu(b)){ if(s->typ){ //spočteme pozici bodu na záhybu b = spoctiFold(s->ps, s->pk, bod); } break; } } s = s->next; } Do funkce spoctiFold() vstupují koncové body segmentu a bod, jehož pozici chceme přepočítat. Určíme parametr, přepočtem parametru s přepočítávaného bodu, pro určení polohy na sinusovce, do intervalu <0;1> určeném parametry krajních bodů segmentu. Tímto parametrem určíme polohu bodu na křivce dané Beziérovou kubikou. Funkce vrací ukazatel na upravený bod. SEG_BOD * spoctiFold(SEG_BOD *s, SEG_BOD * k, SEG_BOD * b){ //přepočteme parametr do intervalu mezi koncové body //segmentu pomocí parametru s parametr = abs((b->s – s->s)/(k->s-s->s)); b = beziere(s,k,parametr); } 37 Vstupem funkce pro přepočet bodů jsou krajní body segmentu a upravený parametr. Na začátky vypočteme střed vektoru, určeného body s a k. Z tohoto bodu vztyčíme kolmici, na které budou ovládací body Beziérovy kubiky. Ty určíme pomocí vzdálenosti určené polovinou velikosti vektoru segmentu. Poté vypočteme Bernstatinovy polynomy s použitím přepočteného parametru a určíme nové souřadnice posunutého bodu. SEG_BOD* beziere(SEG_BOD *s, SEG_BOD *k, parametr){ stred = urciStredVektoru(s,k); k = urciKolmyVektor(vektorB, vektorSK); jednotkovyVektor(k); //velikost posunu řídících bodů po kolmici k *= vzdalenost(stred, k); //řídící body polynomu p1 = stred + vzdalenost; p2 = stred - vzdalenost; //přepočet souřadnic return b = vypocetBPolynomu(parametr, s, p1, p2,k); } Výpočet bodu nárazu paprsků Po spočtení počátečních bodů jsou spočteny body srážek svazků elektronů s částicemi plynů v atmosféře (Obrázek 3.3). Tyto body jsou spočteny pomocí vztahu 3.6 a následného určení vychýlení po kružnici daného azimutovým úhlem . Pro určení bodu na kružnici zavedeme nový souřadný systém složený z vektoru y určeného body p old ´ a p new´ , vektoru x kolmého na vektor daný průmětem bodu p old prumet (v rovině určené osami x a z) a p new´ a vektorem z kolmým na tyto dva vektory, takže vektory x a z určíme následujícími vztahy x ( x p new x p old , y p new y pold ,( z p new z pold )) . prumet prumet prumet z x y Poloměr kružnice vychýlení r je určen vztahem r tan( ) x a leží v rovině určené vektory x a z , díky čemuž můžeme určit bod pnew x z new new p p cos( )r sin( )r . x z Pokud elektronový svazek dorazí k dolní hranici polární záře, je sledování svazku ukončeno a přechází k dalšímu sledování cesty z jiného počátečního bodu, pokud ještě nějaký je. Přiřazení barevných složek Při určení jednotlivých bodů srážek dochází také k odečtení hodnot barevných složek z hodnot určených spektrálními křivkami a křivkami intenzit (Obrázek 3.4). Tyto hodnoty jsme získali vytištěním grafu na milimetrový papír a následným odečtením hodnot. Získané hodnoty jsou popsány v tabulkách v příloze B. Získané barevné hodnoty odečtené ze spektrálních křivek jsou roznásobeny hodnotami intenzit, získanými z hodnot 38 KAPITOLA 5. IMPLEMENTACE odečtených z křivek intenzit. Pro každý tvar máme jinou křivku intenzity (Obrázek 3.4 b) ) Hodnoty barevných složek jsme odečítali z grafu s intervalem 5 km, hodnoty intenzit s intervalem 1 km. Hodnoty barevných složek a intenzit pro výšky, které neodpovídají přesně odečteným výškám, ve kterých jsme odečítali hodnoty, jsou určeny pomocí lineární interpolace dané vztahem i1 i0 , h1 h0 kde i je námi vypočtená intenzita ve výšce h. Intenzity i0 a i1 jsou hodnoty odečtené ve výškách h0 a h1, které jsou hranicemi intervalu, ve kterém se nachází výška h. i i0 h h0 Mapování bodu do pole obrazovky Mapování do pole obrazovky probíhá podle postupu, popsaném v kapitoleChyba! Nenalezen zdroj odkazů.. Pro tuto část jsme využili funkci gluProject() z knihovny GLU. Tato funkce převede souřadnice objektu do souřadnic okna. Pokud získané souřadnice spadají do rozměrů aktuálního okna, tak souřadnice x a y využijeme jako indexy pro určení prvku pole obrazovky, kam uložíme barevné hodnoty bodu. Jinak je bod mimo viditelnost kamery a přecházíme k dalšímu bodu. Převod z XZY prostoru do RGB prostoru Pro převedení barevných hodnot musíme určit trichromatické hodnoty prostoru ~ XYZ x ( ) , ~ y ( ) a ~ z ( ) . Ty získáme pro každou barvu odečtením hodnot pro příslušné vlnové délky, tedy 630 nm pro odečet červené složky, 557,7 nm pro odečet zelené složky a 427,8 nm pro odečet modré složky. Hodnoty jsme získali z oficiálních stránek CIE[9]. Použité odečtené hodnoty uvádíme v následujících tabulkách. [nm] 425 430 555 560 630 ~ x ( ) ~ y ( ) ~ z ( ) 0,21477 0,28390 0,51205 0,59450 0,62400 0,00730 0,01160 1,00000 0,99500 0,26500 1,03905 1,38560 0,00575 0,00390 0,00005 Tabulka 5.1 Odečtené hodnoty srovnávacích funkcí prostoru XYZ pro dané vlnové délky standardu CIE standard observer 2° 1931[9]. [nm] 425 430 555 560 630 ~ x ( ) ~ y ( ) ~ z ( ) 0,26474 0,31468 0,61605 0,70522 0,64747 0,02950 0,03868 0,99911 0,99734 0,28349 1,28250 1,55348 0,00109 0,00000 0,00000 Tabulka 5.2 Odečtené hodnoty srovnávacích funkcí prostoru XYZ pro dané vlnové délky standardu CIE standard observer 10° 1964[9]. Hodnoty položené v intervalu mezi odečtenými hodnotami jsou vypočteny pomocí již popsané lineární interpolace. 39 Spočtené hodnoty roznásobíme převodní maticí, z XYZ systému do RGB systému, pro získání hodnot srovnávacích funkcí modelu RGB modelu. Tyto hodnoty získané postupně z převodu každé vlnové délky sečteme podle vztahů 3.12, 3.13, 3.14. Pro převod různých standardů jsme použili převodní matice z [15]. Pole obrazovky s převedenými hodnotami je předáno dále ke zpracování. Pokud je zapnutý antialiasing, dojde k rozdělení barevných hodnot pole obrazovky pomocí Gaussova filtru. Antialiasing Funkce Gaussova filtru je popsána v kapitole 3.1.5 . Zde postup antialiasingu stručně zrekapitulujeme. Gaussovo rozostření (Gaussian blur) slouží k rozostření obrazu, kde dochází k rozdělení barevných hodnot pixelu do okolních pixelů. Nová hodnota každého pixelu hi,j je dána váženým průměrem hodnot okolních pixelů oi,j m hi , j i, j m Gi , j oi , j wi , j , kde váhy jednotlivých okolních sousedních pixelů Gi,j jsou dány Gaussovou funkcí 3.15 Pro uložení těchto nových hodnot jsme vytvořili nové pole, které svými rozměry odpovídá poli obrazovky. Toto nové pole s nově vypočtenými hodnotami posíláme dále k vykreslení. Pohyb ve scéně Pro pohyb ve scéně jsme využili dvě kamery. Jednu, která sleduje pohyb po krajině a druhou, která sleduje pohyb vzhledem k polární záři. Jelikož polární záři sledujeme ve vzdálenosti v řádech sta tisíců jednotek od kamery, museli jsme oddělit pohyb po krajině s čtvercovým půdorysem, kde velikost strany odpovídá hodnotě 7680 jednotek, od pohybu vzhledem k polární záři. Natočení kamery ve scéně a následný pohyb vyvolával skokové změny pozice polární záře vůči krajině. Z tohoto důvodu jsme se rozhodli ignorovat pohyb s kamerou, určenou pro záři, ve všech směrech, kromě osy z. 40 KAPITOLA 5. IMPLEMENTACE 6 Kapitola 6 Výsledky V této kapitole si ukážeme finální výstupy aplikace a porovnáme generované obrázky s reálnými fotografiemi a s původními obrázky generovanými metodou, ze které jsme vycházeli. Dále představíme časovou náročnost na generování obrázku u jednotlivých částí aplikace. 6.1 Generování obrázku pro různé druhy polární záře 7 Zde si předvedeme výsledné obrázky všech druhů polární záře, které umí naše aplikace vygenerovat. Jedná se o oblouky, paprskovité oblouky a drapérie. Všechny obrázky v této části jsou generované se stejnými počátečními podmínkami: 8 počet záhybů :2, 9 počet vrstev :3, 10 :8000, 11 amplitudy plošky vektor B 12 rozměry okna :400 x 400 px. :(0,-1,0), Oblouk Obrázek 6.1 Porovnání skutečného[3] a námi generovaného oblouku. 41 42 KAPITOLA 6. VÝSLEDKY Vizualizace oblouku se zdá být přibližně stejná v porovnání s realistickou fotografií (Obrázek 6.1). Ovšem musíme brát v úvahu, že takto jednoduché tvary nejsou příliš časté. Oblouky se navíc vyskytují i s jinými tvary polární záře, například s pásy. Výsledné generované obrázky oblouků tedy odpovídají přibližnému popisu oblouků, s tím že konečný obrázek zachycuje pouze základní tvar a nepřipouští žádné větší náhodné odchylky. Oblouky s paprskovitou strukturou Vizualizace oblouků s paprskovitou strukturou není tak úspěšná, jako vizualizace předchozího tvaru. Jedná se také o oblouky, ale s větší oblastí vyzařování fotonů. Přechod barevné intenzity z nižších výšek směrem vzhůru není plynulý a změna je skoková. To může být způsobeno nepříliš přesným odečtením hodnot křivek, určujících intenzity barevných složek (Obrázek 3.4). Základní tvar paprskovitého oblouku je podle porovnání na obrázku 6.2 zachycen, jenže výsledný dojem je pokažen právě barevným přechodem v dolní části polární záře. Úpravou hodnot intenzit pro paprskovitý oblouk by se mohlo docílit realističtějších obrázků. Obrázek 6.2 porovnání skutečného[3] a generovaného paprskovitého oblouku. Drapérie Vizualizace drapérie je úspěšná jako vizualizace oblouků. Opět se podařilo zachytit jednoduchý tvar drapérie a oproti obloukům s paprskovitou strukturou nedohází k tak silným skokovým změnám v celé ploše polární záře. Porovnání generované drapérie se skutečnou fotografií je zachyceno na obrázku 6.3. Skutečná drapérie obsahuje nejen zelenou barevnou složku, ale i červené části, obzvláště ve vyšších výškách. S odečtenými hodnotami intenzit barevných složek (Obrázek 3.4) se nám nepodařilo zachytit vliv jiné barevné složky než zelené. Důvodem nepromítnutí dalších barev do zobrazení polární záře jsou hodnoty křivky určující barevné 43 spektrum prostoru XYZ (Obrázek 3.4), kde je červená složka dostupná až pro větší výšky, než je uvažována horní hranice drapérie Obrázek 6.3 Porovnání skutečné[10] a námi generované drapérie. 6.2 Vliv změny magnetického vektoru V této části si ukážeme vliv změny směru vektoru magnetického pole Země B . Změnou směru vektoru ovlivníme směr putování elektronových svazků, čímž dojde i k efektu naklonění polární záře. Změna směru vektoru tedy ovlivňuje výsledný tvar záře. Změny směru proudění elektronových svazků, tedy různé nakloněné vzhledem ke krajině, je ukázáno na obrázku 6.4, kde u každé změny je popsán i aktuální stav vektoru magnetického pole Země B . Podmínky pro generovaný obrázek jsme opět ponechaly stejné, jako v předchozích případech, pouze jsme upravovali směr vektoru magnetického pole Země. 6.3 Generování obrázku a použití antialiasingu Pro vygenerování obrázku, který by měl více odpovídat skutečnému zobrazení polární záře, je implementovaná funkce antialiasingu. Jak již bylo popsáno dříve, antialiasing slouží k rozostření bodu vyzáření, čímž způsobí dojem vyzáření v rámci celého sledovaného elektronového svazku. Vykreslení generovaného výstupu s použitým antialaiasingem uvádíme na obrázku 6.5, kde uvádíme pro porovnání i generovaný obrázek bez využití antialiasingu. Opět jsme pro generování obrázků použili stejné konfigurační hodnoty, jaké jsme použili v předchozích případech. 44 KAPITOLA 6. VÝSLEDKY Obrázek 6.4 Vliv změny směru vektoru magnetického pole Země. Obrázek 6.5 Vliv antialiasingu na generovaný obrázek. Vpravo bez antialiasingu, vlevo s použitím antialiasingu. 45 6.4 Pozorování z různých míst Zde ukážeme pozorování té samé záře z různých pozic v krajině. Pro tento výsledný obrázek byl použit tvar oblouk a stejné počáteční podmínky, jako případě vykreslování jednotlivých druhů polární záře. Vlivem použití dvou kamer pro prostor krajiny a pro prostor, ve kterém sledujeme polární záři, občas dochází k překvapivým (až nerealistickým) zobrazením polární záře. Zobrazení z různých pozic v krajině jsou ukázány na obrázku 6.6. Obrázek 6.6 Generované obrázky polární záře typu oblouk, pozorovaný z různých míst v krajině. 6.5 Dynamika polární záře V této části představíme posloupnost vygenerovaných obrázků získaných pomocí simulace dynamiky, pospané v implementační části. Vycházíme tedy z posunování jednotlivých částí polární záře, jako jsou jednotlivé vrstvy a koncové body těchto vrstev a segmentů plošky. Dále také určíme novou hodnotu počtu počátečních bodů elektronových svazků. Z důvodu posunování koncových bodů vrstev (a tedy i plošky) dochází i ke změnám délky jednotlivých segmentů. To způsobuje náhodné změny tvaru při dynamice polární záře. Pro simulaci dynamiky jsme ponechali stejné počáteční podmínky z předchozích částí, jen jsme upravili rozměry okna na hodnotu 600x400 pixelů pro zachycení větší části tvaru polární záře v průběhu spuštěné animace. Jako druh polární záře pro ukázku dynamiky jsme zvolili oblouk. Výsledná posloupnost generovaných obrázků je ukázána na 46 KAPITOLA 6. VÝSLEDKY obrázku 6.7, na kterém uvádíme u každého obrázku z posloupnosti celkový čas v průběhu námi sledované animace. Obrázek 6.7 Průběh dynamiky polární záře (oblouk). 47 6.6 Porovnání generovaných obrázků s původní metodou Rozhodli jsme se porovnat také výstup původní metody, ze které jsme při simulaci a vizualizaci polární záře vycházeli (Obrázek 6.8). Podle porovnávaných výsledných obrázků se nám nepovedlo realizovat vizualizaci tak důvěryhodně, jako u původní metody (metoda plošek). Naše obrázky se liší zejména v barevných složkách, které jsou obsaženy v polární záři. Jak jsme již zmínili dříve, může to být způsobeno nepřesnou metodou odečítání hodnot barevných intenzit popsaných v grafu (Obrázek 3.4). Obrázek 6.8 Porovnání metody modelu plošky[3] a naší upravené metody. 6.7 Měření rychlosti Výsledné zobrazení jsme dále podrobili testům rychlosti vykreslení generovaných obrázků. Pro jednotlivé druhy jsme měnili počáteční podmínky pro zobrazení změnou hodnot jednotlivých veličin v konfiguračním souboru. Naměřené výsledky jsou zobrazeny v tabulce 6.1 a v tabulce 6.2, které zobrazují vliv jednotlivých veličin na délku času, určenou k vygenerování obrázku. Z jednotlivých měření vychází najevo, že hlavním činitelem ovlivňující rychlost vykreslování, je rozlišení okna. Hlavní složkou, která je nejvíce náročná na čas a souvisí právě s rozlišením okna, je antialiasing, tedy rozdělení uložených hodnot v poli podle funkce Gaussova filtru. Závislost délky vykreslení na rozlišení obrazovky je znázorněno na obrázku 6.9. Doba prováděné operace [ s ] rozlišení obrazovky výpočet přepočet 200 x 200 7,539 4,172 400 x 400 11,422 6,913 600 x 600 16,125 13,688 800 x 800 19,672 16,615 1000 x 1000 21,109 20,063 antialiasing 0,532 2,187 17,185 30,719 37,266 Tabulka 6.1 Naměřené hodnoty určující dobu k vykreslení generovaného obrázku Dále můžeme ze získaných hodnot měření zjistit, že přepočítání nových hodnot 48 KAPITOLA 6. VÝSLEDKY zabírá méně času, než první výpočet tvaru polární záře. rozlišení okna[pixel x pixel] Určení doby výpočtu a doby vykreslení [ s ] Oblouk s antialiasingem Paprskovitý oblouk s antialiasingem Drapérie s antialiasingem 1 9,510 + 0,001 7,768 + 2,204 8,266 + 0,001 7,827 + 2,203 8,762 + 0,015 8,953 + 2,204 počet vrstev 5 9,501 + 0,016 7,235 + 2,188 7,704 + 0,001 7,782 + 2,107 7,735 + 0,015 7,078 + 2,188 Počet záhybů 5 11,578 + 0,016 6,703 + 2,188 6,829 + 0,001 8,000+ 2,187 8,563 + 0,015 8,718 + 2,204 10 19,479 + 0,015 15,235 + 2,203 18,172 + 0,016 16,793 + 2,204 18,032 + 0,010 17,820 + 2,203 10 9,406 + 0,001 6,594 + 2,107 6,125 + 0,001 7,094 + 2,108 5,000 + 0,001 5,523 + 2,108 počet vrstev = 5 Oblouk s antialiasingem Paprskovitý oblouk s antialiasingem Drapérie s antialiasingem 1 5,140 + 0,016 1,640 + 2,188 1,703 + 0,010 1,578 + 2,203 1,453 + 0,016 1,704 + 2,184 počet záhybů = 3 Druhy polární záře 400x400 Tabulka 6.2 Zobrazení doby výpočtu a doby vykreslení pro jednotlivé druhy polární záře V tabulce 6.2 jsou zobrazeny naměřené časové údaje, zobrazené jako součet doby spočtení či přepočtu polární záře a doby pro operace související s vykreslením polární záře. Operacemi související s vykreslením polární záře jsou myšleny části, jako je převod barevných složek z XYZ barevného prostoru do RGB barevného prostoru nebo antialiasing. antialiasing 40 výpočet 35 Uplynulý čas [ s ] přepočet 30 25 20 15 10 5 0 0 200 400 600 800 1000 1200 Rozlišení obrazovky [ pixel ] Obrázek 6.9 Časové průběhy ovlivněné rozlišením Kapitola 7 Závěr Hlavním úkolem této práce bylo zobrazení polární záře a simulovat její průběh v čase. Simulaci pohybu by mělo být možné sledovat z různých míst v krajině a pozorovat tak chování polární záře z různých úhlů a pozic v krajině. Výsledky vizualizace a simulace jsme představili v předchozí kapitole. Vizualizace jednotlivých druhů polární záře se vcelku zdařila, až na drobný problém u oblouků s paprskovou strukturou. Tento problém spočívá ve skokovém přechodu barevných intenzit z nižších částí polární záře do vyšších oblastí polární záře. Tento nedostatek je nejspíše způsoben díky chybám v odečítání hodnot barevných intenzit, kdy jsme hodnoty barevných složek odečítaly z vytištěných grafů pro určení intenzit barevného spektra a intenzit pro jednotlivé druhy polární záře (Obrázek 3.4). Díky tomu by mohla být vysvětlena i absence červené složky u rozsáhlejších druhů, jako jsou drapérie a oblouky s paprskovou strukturou. Simulace dynamiky polární záře odpovídá skutečnému chování polárních září méně. Podle dostupných ukázek, na kterých jsou zachyceny reálné průběhy polárních září, nelze najít mnoho pravidelností v jejich pohybu, a proto není snadné určit další krok při určení dalšího chování polární záře. Pokusili jsme se postupovat podle postupu, zmíněném v článku pro simulaci a vizualizaci oblouků, pásů a drapérií [3]. Náhodný posun koncových bodů plošky, určující hlavní tvar polární záře, působí v posloupnosti obrázků (Obrázek 6.7) příliš trhaně. Posuny těchto koncových bodů navíc ovlivňují i délky generovaných záhybů, což naopak může být přínosné pro simulaci a může být považováno za simulaci náhodných změn ve tvaru polární záře. Při zobrazení dynamiky musíme pro každý další generovaný obrázek provést přepočet jednotlivých veličin pro určení nové polohy a tvaru polární záře. Tyto přepočty jsou podle výsledků měření uvedeném v předchozí kapitole rychlejší, než prvotní výpočet pro určení polární záře, ale nedosahuje takové rychlosti, aby bylo možné sledovat plynulé přechody mezi jednotlivými snímky. Tyto delší časové intervaly pro určení výpočtu jsou nejspíše způsobené novými výpočty jednotlivých bodů vyzáření fotonů, ke kterým dochází vždy při generování dalšího obrázku. Pro zvýšení realistického dojmu obrázku je implementován antialiasing ve formě Gaussova rozostření (Gaussian blur). Tímto rozostřením barevných hodnot docílíme efektu vyzáření celého elektronového svazku, který sledujeme při cestě v zemské atmosféře. Doba výpočtu pro toto rozostření je závislá na rozlišení okna aplikace. Je to zapříčiněno díky pomocnému poli obrazovky, do kterého ukládáme barevné složky při vyzáření fotonu. Toto pole svými rozměry odpovídá rozměrům okna aplikace, kde každý prvek reprezentuje 49 50 KAPITOLA 7. ZÁVĚR jeden pixel z okna aplikace. Tím při volbě zobrazení obrázku s vykreslením antialaiasingu narůstají časové nároky na vykreslení. Rychlost vykreslení závisí na rozměrech okna, s čímž souvisí i práce s polem obrazovky. Pro použití antialiasingu, kde je využito další pole pro uložení nově vypočtených hodnot pomocí Gaussovy funkce, se aplikace stává ještě pomalejší. Pro pohyb ve scéně jsme využili dvě kamery, jednu pro pohyb ve scéně s krajinou a druhou pro pohyb v prostoru s polární září. Vlivem rozdílných rozměrů obou scén jsme se rozhodli zahrnout pro pohyb v prostoru s polární září pouze z souřadnici, díky čemuž má záře občas tendenci nepředvídatelného chování. Návrhy na rozšíření a vylepšení Jako rozšíření by bylo možné implementovat metodou tančících světel do pohybu elektronových svazků. Mělo by tak dojít k většímu zohlednění vlivu magnetického pole Země na pohyb elektronových svazků a zohlednění vzájemného působení těchto svazků mezisebou. Literatura [1] ALEXANDR Lubomír. Bézierovy kubiky. Lubovo.misto.cz [online]. 1999, [cit. 2011-05-16]. Dostupné z WWW: <http://lubovo.misto.cz/_MAIL_/curves/bezierc.html>. [2] Aurora borealis – Northen lights tour - 3 nights / 4 days. Uncommonyukon.com/aurora-borealis-tour/ [online]. 2010, [cit. 2011-05-25]. Dostupné z WWW: < http://www.uncommonyukon.com/aurora-borealis-tour/>. [3] BARANOSKI, Gladimir V. G.; ROKNE J. G; SHIRELY Peter; TRONDSEN T. S.; BASTOS Rui. Simulating the aurora. THE JOURNAL OF VISUALIZATION AND COMPUTER ANIMATION. 2003, 14, 1 (Feb.), s. 43-59. [4] BARANOSKI, Gladimir V. G.; WAN Justin; ROKNE J.G; BELL Ian. Simulating the Dynamics of Auroral Phenomena. ACM Transactions on Graphics. 2005, 24, s. 37–59. [5] BRDIČKA, Miroslav; SAMEK, Ladislav; SOPKO, Bruno. Mechanika kontinua. Praha : Academia, 2000. 799 s. [6] BREKKE, Pål. The Aurora Borealis. Scandinavian review. 2008, 95, 3, s. 6-17. Dostupné z WWW: <http://www.amscan.org/pdf/Fall08AuroraBorealis.pdf>. [7] CIE 1931 color space. Wikipedia : the free encyclopedia [online]. 2011, [cit. 201105-16]. Dostupné z WWW: <http://en.wikipedia.org/wiki/CIE_1931_color_space>. [8] COMBS, Larry; VIERECK, Rodney. Aurora. Space Enviroment 1996, 12, s. 1-4. Dostupné z WWW: http://www.swpc.noaa.gov/info/Aurora.pdf [9] COMMISSION INTERNATIONALE DE L’ECLAIRGE. Cie.co.at [online]. CIE free documents - COLORIMETRIC TABLES. 2000, [cit. 2011-05-16]. Dostupné z WWW: <http://www.cie.co.at/main/freepubs.html>. [10] CURTIS Jan. Aurora’s northen light. Climate.gi.alaska.edu [online]. 2005, [cit. 2011-05-25]. Dostupné z WWW: <http://climate.gi.alaska.edu/Curtis/curtis.html>. [11] DANIELIDES Michael A.. Aurora Borealis. Danielides.de [online]. 2011, [cit. 2011-05-25]. Dostupné z WWW: <http://www.danielides.de/com/aurora.html>. [12] DAVIS Lee. Green Aurora with Corona. Alaska-in-pictures.com [online]. 2010, [cit. 2011-05-25]. Dostupné z WWW: < http://www.alaska-in-pictures.com/greenaurora-corona-533-pictures.htm>. 51 52 LITERATURA [13] KOLESHNIKOV Alexander. Polární záře, 1962, AR 2/62, s. 51-55. Dostupné z WWW: <http://www.ok2kkw.com/next/ok1kw1962.htm>. [14] KOMZÁK, Jiří. Komzak.webz.cz [online]. Beetyho Diplomová práce. 1999, [cit. 2011-05-14]. Dostupné z WWW: <http://komzak.webz.cz/old/skola/dp/prostory.html>. [15] LINDBLOOM, Bruce Justin. RGB/XYZ Matrices. Brucelindbloom.com [online]. 2009, [cit. 2011-05-16]. RGB/XYZ Matrices. Dostupné z WWW: <http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html>. [16] LOBAZ, Petr. Fotoroman.cz [online]. Základy colometrie. 2005, [cit. 2011-05-14]. Dostupné z WWW: <http://www.fotoroman.cz/techniques2/light_color.htm>. [17] Magnetosphere. Wikipedia : the free encyclopedia [online]. 2011, [cit. 2011-05-25]. Dostupné z WWW: http://en.wikipedia.org/wiki/Magnetosphere [18] Mechanika kontinua. Wikipedia : the free encyclopedia [online]. 2011, [cit. 201105-25]. Dostupné z WWW: <http://cs.wikipedia.org/wiki/Mechanika_kontinua> [19] O'DONOGHUE Darragh. South African Clone of Penn State Telescope Makes First Scientific Discovery. Science.psu.edu [online]. 2006, [cit. 2011-05-25]. Dostupné z WWW: <http://www.phy6.org/Education/aurora.htm >. [20] PETTY John Ira.. International Space Station Imagery. Spaceflight.nasa.gov [online]. 2003, [cit. 2011-05-25]. Dostupné z WWW: <http://climate.gi.alaska.edu/Curtis/curtis.html>. [21] STERN D.P. Secrets of the polar auroras. Phy6.org [online]. 1999, [cit. 2011-0525]. Dostupné z WWW: <http://www.phy6.org/Education/aurora.htm >. [22] VAČKÁŘOVÁ, Lenka; VERNEROVÁ Ivana. Popularizační www stránky o magnetosféře Země a slunečním větru. Praha, 2004. 23 s. Studentský fakultní grant. Karlova univerzita, Matematicko-fyzikální fakulta. Dostupné z WWW: <http://oberon.troja.mff.cuni.cz/20-11-2003>. [23] X39ZPG Service.felk.cvut.cz [online]. 2011, [cit. 2011-05-16]. Dostupné z WWW: <http://service.felk.cvut.cz/courses/X39ZPG>. [24] ZMEŠKAL, Oldřich; ČEPPAN, Michal; DZIK, Petr. Barevné prostory a správa barev. In Barevné prostory a správa barev (10/2002) [online]. Brno : Fakulta chemická, Vysoké učení technické v Brně, 2002 [cit. 2011-05-14]. Dostupné z WWW: <http://www.fch.vutbr.cz/lectures/imagesci/download/stud06_rozn02.pdf>. A.Příloha A Barevný prostor CIE XYZ Barevný model XYZ byl vytvořen na základě experimentů v 1931 a jeho autory jsou David Wright a John Gild [18]. Je odvozen od RGB modelu, díky čemuž jsou tyto prostory vzájemně převoditelné. Prostor byl vymyšlen pro zobrazení všech barev, které je schopno lidské oko zaregistrovat. Tohoto nebylo pomocí modelu RGB možno dosáhnout, kvůli možnosti dosažení záporných hodnot pro některé vlnové délky spektra (Obrázek A.1). Proto byly zavedeny matematické modely barev (Obrázek A.2), pro které je možno získat vždy kladnou hodnotu srovnávacích funkcí barevného prostoru[24]. B. Obrázek A.1Popis barevných srovnávacích funkcí prostoru RGB[7]. Převedením souřadnic do jednotkové roviny a normováním hodnot dosáhneme toho, že nám k určení barvy stačí pouze 2 hodnoty, ovšem s nulovým jasem [2,16]. Proto můžeme jednotlivé barvy popsat pomocí dvou složek a třetí složka slouží jako hodnota jasu. Spektrální křivky srovnávacích funkcí ~ x ( ) , ~ y ( ) a ~ z ( ) byly odvozeny z pro vnímání barev v centrální části sítnice, která obsahuje pouze čípky. Tyto průběhy jsou tedy platné jen pro úzké zorné pole, zde pro zorné pole určené úhlem 2°. Později byl model A1 A2 LITERATURA upraven pro větší zorný úhel o velikosti 10°. Vlivem rozšíření zorného úhlu jsou zahrnuty do pozorování i tyčinky vlivem rozšíření [24]. Obrázek A.2 Popis barevných srovnávacích funkcí prostoru XYZ[7]. B.Příloha B Tabulky odečtených hodnot ze spektrálních křivek a křivek intenzit V této části představíme hodnoty barevných složek, pomocí nichž jsme určili hodnoty intenzit jednotlivých barev. Tyto hodnoty jsme odečetli z grafů zobrazených na obrázku 3.4, vytištěných na milimetrový papír. Hodnoty jednotlivých barev jsou dány pomocí vlnových délek jejich spektra, kde červená barva je určena hodnotou 630 nm, zelená 557.7 nm a modrá 427,8 nm. Tyto vlnové délky využijeme pro získání hodnot srovnávacích funkcí ~ x ( ) , ~ y ( ) a ~ z ( ) prostoru XYZ, které pak převádíme do prostoru RGB způsobem pospaným v kapitole 5.3 . Intenzita barev výška [km] 100-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150 151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190 191-195 196-200 Intenzita barev červená zelená modrá 0,00 0,30 0,17 0,00 0,56 0,23 0,00 0,77 0,29 0,00 0,81 0,36 0,00 0,87 0,40 0,00 0,92 0,47 0,00 1,00 0,54 0,00 0,94 0,56 0,00 0,90 0,53 0,00 0,87 0,50 0,00 0,83 0,44 0,00 0,79 0,40 0,00 0,73 0,37 0,09 0,66 0,33 0,04 0,60 0,31 0,05 0,52 0,29 0,07 0,47 0,27 0,08 0,42 0,25 0,09 0,40 0,22 0,09 0,36 0,20 výška [km] 201-205 206-210 211-215 216-220 221-225 226-230 231-235 236-240 241-245 246-250 251-255 256-260 261-265 266-270 271-275 276-280 281-285 286-290 291-295 296-300 červená zelená modrá 0,09 0,33 0,17 0,10 0,30 0,13 0,10 0,26 0,13 0,10 0,20 0,12 0,10 0,13 0,09 0,11 0,10 0,07 0,11 0,07 0,00 0,13 0,04 0,00 0,14 0,02 0,00 0,18 0,00 0,00 0,19 0,00 0,00 0,20 0,00 0,00 0,20 0,00 0,00 0,22 0,00 0,00 0,20 0,00 0,00 0,20 0,00 0,00 0,19 0,00 0,00 0,18 0,00 0,00 0,17 0,00 0,00 0,13 0,00 0,00 Tabulka B.1 Odečtené hodnoty spektrálních křivek. B1 B2 PŘÍLOHA B výška [km] 100 101 102 103 104 105 106 107 108 109 110 intenzita 0,22 0,59 0,76 0,88 0,94 0,92 0,98 1,00 0,96 0,84 0,82 výška [km] 111 112 113 114 115 116 117 118 119 120 intenzita 0,57 0,29 0,14 0,07 0,06 0,04 0,03 0,01 0,01 0,00 Tabulka B.2 Hodnoty intenzit pro typ oblouk. výška [km] 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 Intenzita 0,400 0,750 0,830 0,900 0,980 1,000 1,000 0,990 0,970 0,830 0,780 0,520 0,400 0,350 0,290 0,250 0,240 0,230 0,220 0,210 0,200 výška [km] Intenzita 121 0,200 122 0,200 123 0,200 124 0,190 125 0,180 126 0,185 127 0,170 128 0,150 129 0,140 130 0,125 131 0,115 132 0,110 133 0,100 134 0,100 135 0,100 136 0,100 137 0,095 138 0,090 139 0,090 140 0,085 141 0,085 výška [km] Intenzita 142 0,085 143 0,080 144 0,075 145 0,070 146 0,070 147 0,065 148 0,060 149 0,050 150 0,050 151 0,050 152 0,040 153 0,030 154 0,030 155 0,025 156 0,025 157 0,020 158 0,018 159 0,013 160 0,007 Tabulka B.3 Hodnoty intenzit paprskovitého oblouku. 3 výška [km] Intenzita výška [km] Intenzita výška [km] Intenzita 100 0,000 126 0,360 152 0,110 101 0,200 127 0,340 153 0,100 102 0,600 128 0,330 154 0,100 103 0,710 129 0,310 155 0,090 104 0,800 130 0,280 156 0,090 105 0,870 131 0,270 157 0,085 106 0,940 132 0,260 158 0,085 107 0,980 133 0,250 159 0,085 108 0,990 134 0,240 160 0,080 109 0,990 135 0,230 161 0,080 110 0,980 136 0,220 162 0,075 111 0,910 137 0,215 163 0,070 112 0,880 138 0,210 164 0,065 113 0,780 139 0,200 165 0,060 114 0,600 140 0,195 166 0,050 115 0,580 141 0,192 167 0,050 116 0,550 142 0,190 168 0,045 117 0,500 143 0,185 169 0,040 118 0,480 144 0,180 170 0,000 119 0,450 145 0,170 120 0,440 146 0,160 121 0,420 147 0,150 122 0,420 148 0,140 123 0,400 149 0,130 124 0,390 150 0,120 125 0,370 151 0,110 Tabulka B.4 Hodnoty intenzit pro tvar drapérie. B4 PŘÍLOHA B C. Příloha C Uživatelská příručka Zde najdete vše, co je třeba ke spuštění námi vytvořené aplikace. Dozvíte se, jak program ovládat a měnit nastavení záře. C.1 Systémové požadavky Operační systém MS Windows XP SP 3 a vyšší. Knihovna glut32.dll. C.2 Instalace aplikace Instalace není nutná, program lze spustit pomocí souboru zare.exe. Ke spuštění je nutné zkopírovat do složky se spustitelným souborem také soubor glut32.dll. Dále by se měla ve stejné složce nacházet složka data, obsahující konfigurační údaje polární záře a data pro vykreslení krajiny. C.3 Ovládání aplikace Zde jsou popsány možnosti ovládání aplikace, jako je pohyb po scéně a změny vlastností polární záře. Pohyb Pohyb po scéně je zajištěn pomocí šipek. Náklon kamery ve vertikálním směru je je realizován pomocí kláves Page Up a Page Down. Další možností změny směru pohledu lze docílit pohybem myši. Změna vektoru magnetického pole Země Pro změnu směru vektoru magnetického pole Země slouží klávesy W, A, S, D. Klávesy W a S slouží k posunu podél osy y, klávesy A a D pro posun v rovině určené osami x a z. Ostatní možnosti pomocí klávesnice Pro vypsání informací o aktuálních vlastnostech polární záře souží klávesa I. Její opětovné stisknutí informace opět skryje. Pro zapnutí či vypnutí možnosti pohybu ve scéně slouží klávesa B. C1 C2 PŘÍLOHA C Ukončení programu je možno zvolit stisknutím klávesy ESC. Editace polární záře K možnosti upravit polární záři se dostaneme pomocí kliknutí pravého tlačítka myši do okna s vykreslenou scénou. Obrázek C.1 Ukázka vyvolaného menu. Položky menu: Kamery – – CIE standard – Prevodni matice – Tvar – Animace – Antialiasing – Konec – Počáteční pozice – vrátí kameru na pozici při spuštění aplikace Zare/Polygon – přepne mezi plnohodnotným zobrazením polární záře nebo zobrazením pouhého obrysu pro rychlejší pohyb po krajině V tomto menu lze přepínat mezi standardem XYZ 1931 a XYZ 1964 V tomto menu lze měnit převodní matice mezi prostory XYZ a RGB V tomto menu lze nastavit požadovaný tvar, který chceme zobrazit V tomto menu lze zapnout či vypnout dynamiku polární záře V tomto menu lze zapnout či vypnout antialising pro polární záři Ukončí běh aplikace Popis konfiguračního souboru Pomocí konfiguračního souboru jsou nastaveny základní prvky určující výsledný tvar polární záře. V následné ukázce si předvedeme, jaké parametry lze nastavit: C3 <?xml version="1.0" ?> <konfigurace> <!-- Pocet pocatecnich bodu paprsku je urcen sirkou okna --> <!-- Pocet vrstev v sheetu --> <pocet_vrstev hodnota = "3"/> <!-- Pocet casti sheetu urcenych Bezierovymi krivkami <pocet_foldu hodnota = "2"/> --> <!-- Souradnice prvniho koncoveho bodu sheetu --> <bod_Pi x = "-120000" y = "160000" z ="220000"/> <!-- Souradnice druheho koncoveho bodu sheetu --> <bod_Pf x = " 120000" y = "210000" z ="190000"/> <!-- Smerovy vektor magnetickeho pole Zeme --> <vektor_B x = "0" y = "-1" z = "0"/> <!-- Amplituda sinusovky sheetu - krivky s pocatecnimi body --> <sheet_ampl w = "8000"/> <!—- Nastaveni sirky foldu --> <fold min = "5000" max= 35000/> </konfigurace> U jednotlivých parametrů jsou uvedeny komentáře, které dávají uživateli informace, jaké atributy polární záře mohou být změněny. Těmito atributy jsou: pocet_vrstev – nastaví počtu vrstev, počet_foldu – nastaví počet záhybů, bod_Pi – nastaví počáteční bod plošky, bod_Pf – nastaví koncový bod plošky, vektor_B – nastaví směr vektoru magnetického pole Země, sheet_ampl – nastaví výšku amplitudy křivek určující vrstvy, fold – nastaví požadované rozměry záhybů. C4 PŘÍLOHA C D.Příloha D Obsah CD Na přiloženém CD je složka hlavní Záře, která obsahuje složku s projektem (Projekt), ve které se nacházejí zdrojové kódy aplikace, složku se spustitelnou verzí aplikace (Spustitelná verze) a daty potřebnými k nahrání scény (konfigurační soubor, textury,…) a složku se závěrečnou zprávou v elektronické podobě. Obrázek D.1 Ukázka obsahu CD. D1 D2 PŘÍLOHA D