Zpráva - závěrečná zpráva v pdf
Transkript
Semestrálnı́ práce Modelovánı́ a vizualizace blesků Odborný poradce/zadavatel: Ing. Jaroslav Sloup Tomáš BERGL Anotace Simulace a vizualizace přı́rodnı́ch jevů patřı́ mezi nejdůležitějšı́ oblasti počı́tačové grafiky. Jednı́m ze zajı́mavých přı́rodnı́ch jevů jsou blesky. Cı́lem této práce je vytvořit interaktivnı́ aplikaci, která umožnı́ generovat scény s různými typy a tvary blesků. Aplikace bude tyto scény také zobrazovat a všechny objekty ve scéně budou osvětleny světlem, které vyzařujı́ blesky. V prvnı́ etapě práce vytvořı́m pouze základnı́ svět a umı́stı́m do něj blesky. Tvary blesků budu generovat třemi různými metodami. Prvnı́ metoda je založená na fraktálech, konkrétně na stochastických závorkových Lindenmayerových systémech (L-systémech). Tato metoda bude generovat blesk pomocı́ opakovaného přepisovánı́ řetězce L-gramatiky. Druhá metoda je založená na Reedově metodě (viz. [5]). Spočı́vá v generovánı́ blesku pomocı́ náhodných rotacı́ a posunů jednotlivých segmentů. Poslednı́ metoda je založená na fyzikálnı́m principu elektromagnetického pole. Na mrak resp. zem (v připadě blesku typu mrak-zem) se umı́stı́ záporné resp. kladné náboje. Spočı́táme rozloženı́ elektromagnetického pole v prostoru. Blesk je tvořen po cestách s největšı́m elektrickým potenciálem. 1 Obsah 1 Úvod 3 2 Úvod do problematiky blesků 3 2.1 Historie výzkumu blesku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Jak je blesk formován . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Fáze blesku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 Negativnı́ blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Pozitivnı́ blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.6 Dalšı́ typy blesků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6.1 Eliášův oheň . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6.2 Čárový blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6.3 Plošný blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6.4 Perlový blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6.5 Kulový blesk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Generovánı́ tvaru blesků 3.1 3.2 3.3 9 Tvar blesku generovaný závorkovými stochastickými L-systémy . . . . . . . . . . . . . 10 3.1.1 dL-systémy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.2 Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.3 Torture - Roztřesenı́ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Tvar blesku založený na částicových systémech . . . . . . . . . . . . . . . . . . . . . . 13 3.2.1 Algoritmus generovánı́ tvaru blesku . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.3 Haltonovy quasi-náhodné sekvence . . . . . . . . . . . . . . . . . . . . . . . . 14 Tvar blesku podle fyzikálnı́ho principu . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.1 Algoritmus generovánı́ tvaru blesku . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.2 Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4 Závěr 18 2 1 Úvod Simulace některých přı́rodnı́ch jevů kolem nás je už v počı́tačové grafice poměrně úspěšná a produkuje reálné výsledky (např. simulace vody). Přesto ještě existuje několik přı́rodnı́ch jevů, které dosud nebyly v počı́tačové grafice plně zvládnuty. Mezi tyto přı́rodnı́ jevy patřı́ i blesk. V dnešnı́ době se objevilo několik metod schopných generovat reálné snı́mky s blesky, avšak žádná z dosavadnı́ch metod nedokáže produkovat scény s blesky v reálném čase. Tento text je rozdělený do několika částı́. V prvnı́ části vysvětlı́m základnı́ fyzikálnı́ principy blesku a uvedu vás do problematiky blesků. V dalšı́ch částech budu pak popisovat jednotlivé metody pro generovánı́ tvarů blesků tak, jak jsem je implementoval. 2 Úvod do problematiky blesků Blesk je silný přı́rodnı́ elektrostatický výboj (electrostatic discharge – ESD) produkovaný během bouřky. Bleskový elektrický výboj je provázen emisı́ světla. Elektřina procházejı́cı́ kanály výboje rychle zahřı́vá okolnı́ vzduch, který dı́ky expanzi produkuje charakteristický zvuk hromu. Při úderu blesku docházı́ při napětı́ i několik tisı́c milionů voltů (při milionu voltů dojde k přeskoku na zhruba 1m (podle jednoho měřenı́ nejvı́ce do 97cm)) k přenosu proudu až o hodnotě 100 000 ampérů. Rychlost blesku se blı́žı́ rychlosti světla a vzduch se při úderu ohřeje až na 30 000 ◦ C. Někdy se výboj vydává několika drahami – jedná se o rozvětvený blesk“. Blesky uvnitř jednoho mraku se ” nazývajı́ plošné“ a ze země je lze vidět jen jako světelné záblesky. ” 2.1 Historie výzkumu blesku Během prvotnı́ho výzkumu elektřiny pomocı́ leydenských láhvı́ (viz. obrázek 1) a jiných instrumentů si mnoho lidı́ (Dr. Wall, Gray, Abbé Nollet) myslelo, že krátké jiskry sdı́lejı́ s bleskem určitou podobnost. Benjamin Franklin zkoušel testovat tuto teorii použitı́m dlouhé tyče, která měla být vztyčena ve Filadelfii, ale během čekánı́ na jejı́ dokončenı́, dostal nápad použı́t létajı́cı́ objekt - např. papı́rový drak. Během následujı́cı́ bouřky v červnu roku 1752 spolu se svým synem jako asistentem vznesli draka do výšky. Na konec jeho lanka připevnili klı́č a uvázali ho na kolı́k s hedvábnou nitı́. Časem si Franklin všimnul ztráty vláken na lanku napı́nánı́m, pak dal svou ruku dost blı́zko ke klı́či a jiskra přeskočila mezerou. Padajı́cı́ déšt’ namočil lanko a udělal ho vodivým. I když i jinı́ (Dalibard a De Lors) dělali podobné experimenty ve Francii, Franklin navrhl původnı́ nápad s vyvýšeným objektem a jiskrovou mezerou, který i oni použili, a proto je obvykle považován za autora. Jak se zprávy o experimentu a jeho podrobnostech rozšiřovaly, vyskytly se pokusy o napodobenı́. Experimenty s bleskem jsou vždy extrémně rizikové a byly často smrtelné. Nejznámějšı́ obět’ z mnohých imitátorů Franklina byl profesor Richman ze Sankt Petersburgu (Rusko). Vytvořil podobnou sestavu jako Franklin a byl na zasedánı́ Akademie věd, když uslyšel bouřku. Utı́kal domů se svým rytcem na zachycenı́ události pro potomstvo. Během experimentu se objevil velký kulový blesk, srazil se s hlavou Richmana zanechajı́c červenou skvrnu a on skonal. Jeho boty byly na kousky otevřené, části oděvu byly připáleny, rytec byl odhozen, rám dveřı́ mı́stnosti se roztrhl a samotné dveře vypadly ze závěsu. Franklin též vynalezl bleskosvod, pravděpodobně jako výsledek popsaného experimentu. 3 Obrázek 1: Leidenská lahev 2.2 Jak je blesk formován Prvnı́ proces při vzniku blesku je silná separace pozitivnı́ch a negativnı́ch nábojů v mraku nebo vzduchu. Mechanismus procesu je stále objektem výzkumu, ale jedna široce akceptovaná teorie je polarizačnı́ mechanismus. Tento mechanismus má 2 složky: prvnı́ je, že padajı́cı́ kapky ledu a deště se elektricky polarizujı́ během průchodu přı́rodnı́m elektrickým polem atmosféry, a druhá je, že srážejı́cı́ se ledové částice se nabı́jejı́ elektrostatickou indukcı́. Po nabitı́ částic ledu nebo kapek jakýmkoli mechanismem se práce koná, když jsou protikladné náboje odděleny. Energie je uložena v elektrických polı́ch mezi nimi. Kladně nabité krystaly majı́ tendenci stoupat nahoru a vytvářı́ kladný náboj vrcholu mraku a záporně nabité krystaly a kroupy padajı́ do střednı́ch a spodnı́ch vrstev mraku, čı́mž vzniká oblast se záporným nábojem. V této fázi může vzniknout blesk mezi dvěma mraky. Blesk mezi mrakem a zemı́ je méně častý. Kupovité mraky (”cumulonimbus”), které neprodukujı́ dost ledových krystalů, obvykle nejsou schopné vytvořit dost nábojové separace pro vznik blesku. Když se tı́mto způsobem nahromadı́ dostatek negativnı́ch a pozitivnı́ch nábojů, a když se elektrické pole stane dostatečně silným, nastane elektrický výboj mezi mraky nebo mezi mrakem a zemı́, produkujı́c hrom. Protože všechny vzduchové elektrické nábojové elektrony z kosmických paprskových nárazů jsou urychlovány elektrickými poli, ionizujı́ vzduchové molekuly, které se pak srážejı́ a dělajı́ vzduch vodivým, pak začı́najı́ bleskové výboje. Během výbojů se následujı́cı́ části vzduchu stávajı́ vodivými, když elektrony a pozitivnı́ ionty molekul vzduchu jsou odtaženy od sebe a nuceny proudit v opačných směrech (krokové kanály zvané vodič). Vodivé vlákna rostou v délce. Současně elektrická energie uložena v elektrickém poli proudı́ radiálně dovnitř do vodivého vlákna. Když nabitý krokový kanál je blı́zko země, protikladné náboje se objevı́ na zemi a zvýšı́ elektrické pole. Elektrické pole je vyššı́ na stromech a vysokých budovách. Je-li elektrické pole dost velké, výboj může být iniciován ze země a eventuálně se napojit na sestupný výboj z mraku. Blesk se může vyskytnout též v mracı́ch z popelu při sopečných erupcı́ch nebo může být způsoben silnými lesnı́mi požáry, které vyprodukujı́ dostatečné množstvı́ prachu pro tvorbu statického náboje. 4 2.3 Fáze blesku Prvnı́ etapa vzniku blesku je přı́pravná. Odborně se nazývá leader (vedoucı́ výboj). Leader se pohybuje od bouřkového oblaku k zemi v rychle za sebou následujı́cı́ch zářı́cı́ch kvantech, které jsou dlouhé asi 50 km. Elektrický náboj leadra představuje množstvı́ asi 5 coulombu záporného náboje. Záporný náboj leadra indukuje na zemském povrchu silný kladný náboj. A to nejvı́ce na předmětech, které z něho nejvı́ce vyčnı́vajı́. Protože se nesouhlasné náboje přitahujı́, kladný náboj na povrchu země směřuje směrem k náboji leadra. Přitom vznikajı́ vzestupné výboje. Jeden ze vzestupných výbojů kladného náboje země se dostane do styku se stupňovým vedoucı́m výbojem. Tak určı́ mı́sto, kde udeřı́ blesk. Bleskosvody podněcujı́ silné vzestupné výboje, a tak umožňujı́ blesku bezpečnou cestu k zemi. Obrázek 2: Jednotlivé fáze blesku. (obrázek z [5]) Když se leader střetne se vzestupným výbojem, záporný náboj spodnı́ části leadra se prudce pohybuje dále k zemi. Přitom vyvolá velké elektrické proudy. Dráha leadra v blı́zkosti země se vyznačuje velmi jasným světlem. Pohyb světelnosti od země k oblaku se nazývá zpětný ráz. Je to vlastnı́ oslnivý jev, který známe 5 jako blesk. Naše oko nenı́ schopné rozeznat rychlost zpětného rázu a nám se tak zdá, že všechny body dráhy byly rozsvı́cené současně. Ani stupňový výboj nenı́ schopné naše oko rozeznat, protože oko neodlišı́ dobu mezi cestou stupňového výboje k zemi a osvětlenı́m jeho dráhy zpětným rázem. Většina blesků spojených s vysokými budovami a horami má průběh opačného směru – směřuje zdola nahoru. Jsou to takzvané vzestupné blesky. Když se přiblı́žı́ čelo blesku dost blı́zko k zemi, vyvolá tam tak silné elektrické pole, že může dojı́t k výbojům. Ty potom směřujı́ zdola nahoru. Napřı́klad 75% výbojů na Empire State Building (výška budovy 380m) se pohybuje z budovy nahoru. Druhá etapa průběhu blesku se nazývá hlavnı́ etapa. Když dospěje kanál blesku k zemi, začı́ná jı́m protékat elektrický náboj daleko rychlejšı́ a prudšı́. Kanál blesku se velmi rozehřı́vá a zářı́. To umožňuje, že blesk vidı́me. Pozorovatel blesku však nemůže rozlišit leader od hlavnı́ etapy, protože následujı́ bezprostředně za sebou, neobyčejně rychle po stejné dráze. Je ale možné je oba zachytit speciálně upraveným fotoaparátem. Po prvnı́m spojenı́ dvou opačných nábojů se proud přerušuje. Blesk tı́m ale většinou nekončı́. Často se vytvořı́ na dráze vyznačené prvnı́m výbojem nový leader. Za nı́m následuje znova hlavnı́ část výboje. Tak končı́ druhý výboj. Takovýchto výbojů, složených z dvou častı́ může vzniknout za sebou až 50. Nejčastějšı́ bývajı́ 2 až 3 výboje. 2.4 Negativnı́ blesk Blesk obvykle vzniká, když neviditelný negativně nabitý impuls z krokového kanálu je vyslán z mraku. Když se to stane, pozitivně nabitý krokový kanál je obvykle vyslán z pozitivně nabité země nebo mraku. Když se 2 kanály střetnou, elektrický proud značně vzroste. Oblast vysokého proudu rozšiřuje zpětně pozitivnı́ krokový kanál do mraku. Tento zpětný impuls“ tvořı́ nejjasnějšı́ část výboje a je to ” část, která je opravdu viditelná. Většina bleskových výbojů trvá obvykle asi čtvrtinu sekundy. Někdy několik výbojů procházı́ nahoru a dolů stejným kanálem - způsobujı́ efekt blikánı́. Hrom vzniká, když výboj rychle zahřeje vodı́cı́ kanál a vznikne razová vlna. Stává se, že proudnice jsou vyslány z několika různých objektů současně, a jen jedna se spojı́ s vodičem a vytvořı́ cestu výboje. Existujı́ fotografie, na kterých je vidět nespojené proudnice. Tento typ blesku se nazývá negativnı́ blesk a sloužı́ pro vybitı́ negativnı́ho náboje z mraku. Zahrnuje přes 95% všech blesků. Statistika: průměrný výboj negativnı́ho blesku nese proud 30 kiloampérů, přenášı́ náboj velikosti 5 coulombů, má potenciálnı́ rozdı́l asi 100 megavoltů, rozptýlı́ 500 megajoulů (dost na svı́cenı́ 100 wattové žárovky na 2 měsı́ce) a trvá několik milisekund. 2.5 Pozitivnı́ blesk Pozitivnı́ blesk (obrázek 3) tvořı́ méně než 5% všech blesků. Vyskytuje se, když se krokový vodič formuje při pozitivně nabitých vrcholech mraků s tı́m důsledkem, že negativně nabitá proudnice je vyslána ze země. Celkovým efektem je vybitı́ pozitivnı́ch nábojů do země. Výzkum vedený po objevu pozitivnı́ho blesku v 70. létech 20. stoletı́ ukázal, že pozitivnı́ blesky jsou typicky 6 - 10 krát silnějšı́ než negativnı́ blesky, trvajı́ asi 10 krát déle a mohou udeřit několik kilometrů od mraku. Během pozitivnı́ho blesku vzniká velké množstvı́ rádiových vln o extrémně nı́zké frekvenci a velmi nı́zké frekvenci. Statistika (založena na malém počtu měřenı́): průměrný výboj pozitivnı́ho blesku nese proud 300 kiloampérů, přenášı́ náboj do 300 coulombů, má potenciálnı́ rozdı́l do 1 gigavoltu, rozptýlı́ dost energie na svı́cenı́ 100 wattové žárovky na dobu 95 let a trvá desetiny nebo setiny milisekund. 6 Obrázek 3: Přı́klad pozitivnı́ho blesku. 2.6 Dalšı́ typy blesků (citace [3]) 2.6.1 Eliášův oheň Je to tichý elektrický výboj v atmosféře, který je provázený světélkovánı́m a slabým praskánı́m. Nejčastěji se objevuje při bouřkách či vichřicı́ch. Při nich se v oblacı́ch a na povrchu země vytvářejı́ elektrické náboje, které ještě nemajı́ dostatečně velké napětı́. Proto nemohou vytvořit bouřkový výboj ve tvaru čárového blesku. Eliášovi ohně svým vzhledem připomı́najı́ načervenalé jazyky plamenů, které se chvı́lemi zkracujı́ a zas prodlužujı́, až nakonec zaniknou. Jejich viditelnost ve dne je slabá, v noci většı́. 2.6.2 Čárový blesk Klasický blesk jaký vı́dáme při bouřkách. Tento blesk budu modelovat. Má podobu čáry, úzkého pásu. Čárový blesk vznikne, když se spojı́ výboj, který jde zdola nahoru, s čelem blesku směřujı́cı́m z oblaku dolu. Čárový blesk bývá nejčastěji bı́lý, bleděbı́lý nebo růžové barvy. Jeho délka dosahuje mezi oblakem a zemı́ od několika stovek metrů až do třech kilometrů. Dráha čárového blesku nenı́ vždy přı́má. Většinou bývá klikatá a někdy mnohonásobně rozvětvená. Důvodem je rozdı́lná vodivost vzduchu. Elektrické výboje probı́hajı́ podél dráhy nejmenšı́ch elektrických odporů. 2.6.3 Plošný blesk Jedná se o tichý svı́tı́cı́ elektrický výboj v oblacı́ch. Většinou je namodralé či fialové barvy, ale může být i růžový. Pozorovatelovi se plošný blesk jevı́ jako vzplanutı́ oblaku v jeho celém objemu. Plošný blesk se od čárového lišı́ nejvı́ce v tom, že při plošném blesku nenastane hřměnı́. Vznik plošného blesku se vysvětluje tak, že elektrický náboj mezi oblaky nebo uvnitř oblaku nestačı́ na vytvořenı́ normálnı́ho čárového blesku, ale vyvolá jen tzv. tlecı́ výboj. 7 Obrázek 4: Typy blesků. A - záporně nabitý shora dolů, B - záporně nabitý zdola nahorů, C - kladně nabitý shora dolů, D - kladně nabitý zdola nahorů (obrázek z [1]) 2.6.4 Perlový blesk Tento blesk se skládá z několika jednotlivých svı́tı́cı́ch těles kulovitého tvaru, které ležı́ na jedné čáře. Vzdálenost mezi nimi je 7 až 12 metrů. Vzhledem má blı́že k čárovému blesku, částečně se však podobá kulovému blesku. Jeho tvar připomı́ná perly na šňůře, proto se nazývá perlový blesk. 2.6.5 Kulový blesk Kulový blesk je vzácný dlouhotrvajı́cı́ elektrický výboj kulovité (někdy hruškovité) formy a podstatně slabšı́ho účinku než čárový blesk. Nejčastěji se objevuje za zimnı́ch bouřek a ke konci bouřky. Obyčejně se objevuje jako červená svı́tı́cı́ koule nebo dutá koule s průměrem 10 - 20 cm obklopená modravou vrstvou s neostrými hranicemi. Bývá i bı́lý a ostře ohraničený. Vydává syčivý, bzučivý nebo přerušovaný zvuk. Trvá od zlomku sekundy po několik minut, nejčastěji 3 – 5 sekund. Kulový blesk se dá pozorovat na pozadı́ spodnı́ části mraků. Nejčastěji následuje bezprostředně po úderu silného čárového blesku, blı́zko mı́sta úderu. Ne však vždy. Někdy je jeho zánik spojený s ohlušujı́cı́m výbuchem, při kterém vyletujı́ na všechny strany krátké jiskry. Může se rozpadnout na menšı́ kulové blesky, měnit se na blesk perlový nebo naopak z něho vznikat. 8 Obrázek 5: Eliášův oheň, obrázek z [3]. 3 Generovánı́ tvaru blesků Pro realističnost našı́ scény s čárovým bleskem (viz. 2.6.2) je důležité vymodelovat tvar blesku co nejvěrohodněji. Existuje vı́ce metod na generovánı́ tvaru blesku, já zde však popı́šu a naimplementuji tři základnı́, nejčastěji použı́vané. Nakonec si zvolı́m jednu, která bude nejlépe vyhovovat realističnosti scény. Prvnı́ z těchto metod(viz. 3.1) je založená na popisu tvaru blesku pomocı́ fraktálů. Tvar čárového blesku většinou svým tvarem přı́mo vybı́zı́ k této metodě. Použiji matematický formalismus Lindenmayerových systémů (L-systémů). Konkrétněji závorkové stochastických L-systémy. Pomocı́ tohoto formalismu budu simulovat větvenı́ blesku směrem k zemi. Dalšı́ metoda(viz. 3.2) je založená částečně na částicových systémech. Samotný tvar blesku je generován s využitı́m Reedovy metody [5]. Tvar je reprezentován jako množina navazujı́cı́ch čárových segmentů. Inicializačnı́ segment v mraku je generován jako prvnı́. Navazujı́cı́ segment je opakovaně napojován na předchozı́ a předtı́m je náhodně nakloněn a otočen. Délka segmentu je také generována náhodně a čáry jsou zobrazovány pomocı́ funkce OpenGL. Kompletnı́ tvar obsahuje vždy hlavnı́ větev a několik vedlejšı́ch větvı́. Šı́řka a intenzita větvı́ je automaticky snižována vzdálenostı́ od základnı́ho segmentu. Poslednı́ metoda(viz. 3.3) se snažı́ co nejvı́ce napodobit fyzikálnı́ chovánı́ blesku. Na mrak resp. zem (v připadě blesku typu mrak-zem) se umı́stı́ záporné resp. kladné náboje. Spočı́táme rozloženı́ elektromagnetického pole v prostoru. Blesk je tvořen po cestách s největšı́m elektrickým potenciálem. 9 Obrázek 6: Různé typy blesků, obrázek z [6] 3.1 Tvar blesku generovaný závorkovými stochastickými L-systémy Nejprve uved’me některé základnı́ definice (z [4]). 3.1.1 dL-systémy Deterministický bezkontextový L-systém je uspořádaná trojice G =< V, P, S >, kde • V je konečná abeceda symbolů A,B,... • P je konečná množina pravidel tvaru A → B; A ∈ V ; B ∈ V ∗ • S je axiom: neprázdná posloupnost symbolů, pro kterou platı́ S ∈ V + Já ovšem nepoužiji deterministický L-systém, ale otevřený L-systém, což je nedeterministický kontextový parametrický L-systém navržený předevšı́m pro simulace růstu rostlin. Otevřenost spočı́vá v možnosti interagovat s prostředı́m. Tato interakce se obousměrná, jak směrem do systému, tak ven. Konkrétněji použiji stochastický L-systém. Ten vnášı́ do systému prvek náhody a umožňuje, aby v množině P bylo vı́ce pravidel se stejnou levou stranou. Pravidla z množiny P se pak zapisujı́ ve tvaru A → B : pp , kde pp je pravděpodobnost, že symbol A bude přepsán právě tı́mto pravidlem, přičemž součet pravděpodobnostı́ pravidel se stejnou levou stranou musı́ být roven jedné. Dále použiji tzv. závorkové L-systémy. Tento systém je obohacen o zásobnı́k, do kterého lze uložit stav systému a později ho z něj obnovit. Zpravidla jsou dvěma symbolům abecedy V , označeným [ resp. ], přiřazeny funkce pro uloženı́ na zásobnı́k resp. vyzvednutı́ se zásobnı́ku. Tato metoda dávala původně nejhoršı́ výsledky, ovšem po zkombinovánı́ s výsledky dalšı́ch dvou metod, začala generovat krásné blesky. Zvláště pak dı́ky aplikaci Haltonových vektorů (viz. 3.2.3) a roztřesenı́ (viz. 3.1.3). 10 Obrázek 7: Jednoduchý fraktálový blesk ve 2D po 5 průchodech. 3.1.2 Implementace Jako prvnı́ jsem začal s gramatikou s těmito 3. pravidly (převzato z [9]). 1. F → F F + [XY ] − [XY ] 2. X → F Y 3. Y → F X kde • F znamená vykreslenı́ segmentu. • + pohyb doleva • - pohyb doprava • [ uloženı́ polohy na zásobnı́k • ] vybránı́ polohy ze zásobnı́ku Tyto pravidla generovaly v 2D blesk na obrázku 7. Kde velikost blesku je dána počtem průchodu, tj. kolikrát se jednotlivé neterminály zobrazovacı́ho řetězce nahradı́ jejich pravidly definovanými přepisy. 11 Při převodu do 3D prostoru se ukázalo, že takovýto deterministický způsob nemůže generovat reálné blesky. Blesky byly ostře klikaté a působily velice uměle. Jelikož již jsem měl zkušenosti s druhou metodou (3.2), napadlo mě i zde aplikovat prvek náhody. A to jak na délku segmentů, tak na rotaci dalšı́ho segmentu. Tı́m pádem ovšem úplně odpadla potřeba symbolů gramatiky + a -. Výsledná gramatika se tudı́ž s smrskla na jedno pravidlo F → F F [F F ][F F ]. Dokonce se později ukázalo, že ani nenı́ potřeba pravidel. Stačı́ pouze nalézt vhodný řetězec, který nám bude generovat pěkné blesky. Ty se dı́ky zapojenı́ prvku náhody budou lišit,ale budou si zachovávat určitou ’bleskovou’ formu. Rotaci segmentů jsem původně prováděl tak, jak je popsáno v Reedově ([5]) metodě. To jest fixnı́ rotace o 16◦ . Ovšem ukázalo se, že mnohem lepšı́ch výsledků lze dosáhnout, nechám-li si generovat náhodné Haltonovi vektory. Ovšem ani po všech těchto krocı́ch jsem s výsledným bleskem nebyl spokojen. Blesk byl totiž složen s jednotlivých různě dlouhých segmentů, které byly přı́liš rovné. I napojenı́ jednotlivých segmentů a prudká změna prostorového úhlu dvou segmentů působili nevěrohodně. Proto jsem ještě aplikoval roztřesenı́ (viz. 3.1.3) a výsledek se o mnoho zlepšil. Obrázek 8 ukazuje výsledek této metody po aplikaci roztřesenı́: Obrázek 8: Výsledek metody fraktálů. Nalevo vygenerovaný blesk, napravo realný blesk z fotografie na obrázku 17 3.1.3 Torture - Roztřesenı́ Jak je patrno z obrázku 9 princip roztřesenı́ blesku je celkem jednoduchý. Jeden rovný segment blesku se nahradı́ několika subsegmenty. Přičemž spojnice těchto subsegmentů, které původně leželi 12 Obrázek 9: Obrázek popisujı́cı́ princip roztřesenı́, obrázek z [8] na segmentu, jsou náhodně vychýleny ze svých pozic. Tento princip přidá blesku na realističnosti a zkoriguje přı́padné prudké přechody mezi jednotlivými segmenty blesku. Obrázek 10: Blesk před (vlevo) a po roztřesenı́, obrázek z [8] 3.2 Tvar blesku založený na částicových systémech Základnı́ kostra tvaru blesku je generována pomocı́ částicových systémů, které simulujı́ postup step leadera až dolů k zemi. Počı́naje semı́nkovým segmentem(v mraku), dalšı́ nový segment je napojen na konec předchozı́ho a náhodně pootočen okolo semı́nkového segmentu. Každý potomek se natáčı́ vzhledem k semı́nkovému segmentu, proto aby byl zachován lineárnı́ směr blesku. Během generace hlavnı́ části blesku jsou také generovány dalšı́ větve. Větve jsou alokovány jako počet segmentů, pocházejı́cı́ch z normálnı́ho rozdělenı́ a cesty větvı́ jsou tak dlouho generovány, dokud nenı́ počet segmentů vyčerpán, nebo pokud nenı́ dosaženo země. Z praxe a měřenı́ bylo stanoveno, že natočenı́ potomků je vždy o 16 stupňů s odchylkou 0.1, ovšem po mnoha pokusech jsem pro můj přı́pad dospěl spı́še k hodnotě 26 stupňů. Délka segmentu se pohybuje se od jednoho metru až po jeden kilometr. Pro účely zobrazenı́ jsou ovšem krátké segmenty lepšı́, protože dodávajı́ realističtějšı́ vzhled. Větvenı́ je řı́zeno pravděpodobnostnı́ funkcı́ a je většinou častějšı́ blı́že k zemi. V praxi je těžké přesně stanovit větvenı́ dı́ky nevyzpytatelnému chovánı́ pseudonáhodného generátoru náhodných čı́sel. Tvar blesku je velmi citlivý na volbu semı́nka pro čı́selný generátor. Některá semı́nka mohou úplně eliminovat větvenı́, jiná mohou znamenat značné členěnı́. Proto jsem zavrhl čı́selný generátor a použil Haltonovy quasi-náhodné sekvence (vı́ce viz. 3.2.3). Každý segment má přirazenu hodnotu w, která značı́ tloušt’ku. Pouze u hlavnı́ho segmentu je hodnota w neměnná po celou dobu jeho cesty. U ostatnı́ch segmentu se počı́tá w = wpred ∗ 0, 95. 13 3.2.1 Algoritmus generovánı́ tvaru blesku w = start_width; maxSegments = 100; startPoint = {x,y,z}; level = 0; //leader Branch(startPoint, maxSegment, level) { while (maxSegment >0 && !Ground) { dy = random_1000; rotation_x = random_16; rotation_z = random_16; endPoint = {x , y, z}; //vzhledem k rotaci a posunu y draw_line(startPoint,endPoint); startPoint = endPoint; maxSegments--; w = w * 0.95; if (Random_halton) { new Branch(endPoint,maxSegment/3, level+1); } } } 3.2.2 Implementace Začal jsem jednoduchou implementacı́ základnı́ho algoritmu (viz. 3.2.1). Celkem rychle se překvapivě ukázalo, že možná ve 2D je natočenı́ o 16 stupňů optimálnı́, ale v 3D prostoru mi toto natočenı́ dávalo nevěrohodné výsledky. Experimentoval jsem s různými úhly a nakonec jsem dospěl k hodnotě 26 stupňů. Výsledky už nynı́ byly lepšı́, ale narazil jsem na jiný problém. V závislosti na semı́nku pro generátor pseudonáhodných čı́sel, jsem dostával blesky různého větvenı́. A to od naprostého rozvětvenı́ blesku až po úplně minimálnı́, kdy se zobrazil prakticky jen leader. Napadlo mě tedy použı́t Haltonovi quasi náhodné sekvence. A opravdu ty mi začali generovat blesky navzájem podobnějšı́ se stabilnı́ hustotou větvenı́. Zkusil jsem použı́t tyto vektory i pro generovánı́ natočenı́ segmentů, ale subjektivně mi přišlo, že nedošlo k zlepšenı́ tak jako u fraktálové metody. Proto jsem zatı́m zůstal u 26 stupňů. Algoritmus jsem implementoval v konstruktoru třı́dy RBranch a rekurzivně jsem každé větvi přidával jejı́ potomky, tak jak je naznačeno v algoritmu (3.2.1). Úbytek maximálnı́ho počtu segmentů, které můžou jednotlivé větve využı́t, jsem zvolil maxSegmentsOtce/3. Výsledek této metody je na obrázku 11. 3.2.3 Haltonovy quasi-náhodné sekvence V matematické statistice jsou Haltonovy quasi-náhodné sekvence velmi známé. Poprvé byly představeny v roce 1960 jako alternativa k pseudonáhodným čı́slům. Byly vytvořeny pro použitı́ při Monte Carlo simulacı́ch integrálů, které nemajı́ uzavřenou formu. 14 Obrázek 11: Nalevo výsledek metody čı́slo 2(Reed) s využitı́m Haltonových vektorů a roztřesenı́. Napravo reálný blesk z obrázku z obrázku 25. Originálnı́ Haltonovy sekvence byly konstruovány podle deterministických metod, které použı́vajı́ za bázi prvočı́slo. 1- D Haltonova sekvence založená na prvočı́slu p (≤ 2) rozdělı́ 0-1 prostor do p segmentů a systematicky vyplnı́ prázdný prostor. V cyklech délky p umı́stı́ do každého segmentu 1 prvek. Haltonova sekvence délky N se skládá z počátečnı́ho cyklu délky p − 1 a [N − (p − 1)]DIV [p] ”kompletnı́ch” cyklů délky p. A v přı́padě, kdy (N + 1)M OD(p) = 0, také jednoho ”nekompletnı́ho” závěrečného cyklu délky (N + 1)M OD(p). Přestože jsou standardnı́ Haltonovy sekvence velmi výkonné, v nižšı́ch dimenzı́ch byly zaznamenány korelačnı́ problémy mezi sekvencemi generovanými z vyššı́ch prvočı́sel.Ve snaze se vypořádat s tı́mto problémem vzniklo mnoho metod. Nejvı́ce slibná je metoda scrambled (kódovaných) Haltonových sekvencı́, která využı́vá předem daných permutacı́ koeficientů použı́vaných při standardnı́ch sekvencı́ch. Já osobně jsem využil jednu malou knihovnu, která mi generuje náhodné vektory. Tyto vektory jsem pak použil pro generovánı́ natočenı́ dalšı́ho segmentu, nebo jsem je převedl na pravděpodobnost a tu využil pro větvenı́ blesků. 15 3.3 Tvar blesku podle fyzikálnı́ho principu Má implementace této metody vycházı́ z těchto článků týkajı́cı́ho se tohoto tématu. 1. Visual Simulation of Lightning Taking into Account Cloud Growth (viz. [6]) 2. Physically Based Animation and Rendering of Lightning (viz. [7]) 3. Andrew Glassner’s Notebook (viz. [8]) Nejvı́ce jsem se inspiroval prvnı́m článkem. Druhý mě navedl na rozloženı́ náboje. Třetı́ článek přispěl s myšlenkou roztřesenı́ blesku, a tak dosaženı́ většı́ realističnosti. 3.3.1 Algoritmus generovánı́ tvaru blesku Algoritmus se skládá z následujı́cı́ch několika kroků, kterých jsem se rámcově držel: 1. Rozděl prostor do 3D buněk. Každá buňka bude reprezentovat potenciál daného mı́sta v prostoru. 2. Umı́sti náboje na spodnı́ část mraku (tj. do hornı́ části 3D mřı́žky) a na zemský povrch. Použij následujı́cı́ rovnici pro spočı́tánı́ potenciálu v každé buňce: Φr = 1 X qi 4πε0 i |r − ri | 1 Osobně jsem si náboje zvolil jednotkové a výraz jsem zjednodušil zanedbánı́m části 4πε . Tato 0 část bude u všech buňek stejná - tzn. potenciál každé buňky bych dělil stejným čı́slem. Výsledek by měl být tudı́ž stejný až na multiplikativnı́ konstantu. 3. Pokusı́me se simulovat nepravidelnost blesku tak, že přidáme buňkám šum 1/fβ 4. Počátek blesku (leader) umı́stı́me do jedné z 3D buňek na spodu mraku. 5. Vybereme M náhodných bodů v okolı́ leaderu. A použijeme následujı́cı́ rovnici na spočı́tánı́ elektrického potenciálu mezi leaderem a každým z M náhodných bodů: Ek = |Φk − Φi | dik kde Ek je elektrický potenciál v bodě k. Φk , Φi jsou potenciály v bodech k, i. dik je vzdálenost bodů i a k. Máme-li nynı́ spočı́tané potenciály našich M kandidátů, spočı́táme pro každý bod jeho pravděpodobnost progrese: Ek P (Ek ) = P Ei Zde jsem se opět odchýlil od původnı́ho článku. Z vzorce je vidět, že pravděpodobnost progrese je úměrná velikosti potenciálu 3D buňky. Proto jsem pouze z těchto M náhodných bodů vybral N těch s největšı́m potenciálem. Bod s maximálnı́m elektrickým potenciálem bude nový leader. Na hodnotách M a N dost záležı́, jak se nám bude blesk větvit. 16 Obrázek 12: Popis kroku 6, obrázek z [6] 6. Nynı́ vyřadı́me ty kandidáty, které jsou v poloměru R kandidátů s vyššı́m potenciálem. To znamená v praxi, že beru jednoho kandidáta po druhem v klesajı́cı́m pořadı́ podle potenciálu a kontroluji, zda v jeho okolı́ R nenı́ jiný kandidát. Jestliže ano, pak tohoto kandidáta vyřadı́m. Tento postup (viz. obrázek 12) nám zaručı́ odpovı́dajı́cı́ prořezánı́ kostry blesku. Zbývajı́cı́ kandidáti se stanou body blesku. Bod s největšı́m potenciálem se stane součástı́ leaderu. 7. Jestliže žádný z vybraných bodů nedosáhne země pokračujeme znovu bodem čı́slo 5. Jinak, pokud leader dosáhl země, obdržı́me blesk tak, že spojı́me body v opačném pořadı́, tj. směrem od země k mraku. Přičemž každý bod spojuji s jeho nejbližšı́m sousedem v 3D prostoru. 3.3.2 Implementace Vzhledem k složitosti metody jsem nejprve implementoval metodu na 2D na rastru. Postupně jsem implementoval všechny body algoritmu a experimentoval s parametry a rozlišenı́m rastru. Výsledek si můžete prohlédnout na obrázku 13. Výsledky byly celkem uspokojivé a doufál jsem, že se v 3D prostoru zlepšı́. Od této metody jsem hodně očekával. Ovšem výsledky v trojrozměrném prostředı́ nedopadli nejlépe. Blesk si většinou ponechává přı́liš lineárnı́ tvar a nedostatečně se větvı́. To je zřejmě dané metodou výběru sousedů. Bylo by vhodnějšı́ mı́sto stávajı́cı́ metody (z [6]) použı́t spı́še metodu jinou ,např. metodu z [7]. Tato metoda, ač to v článku nenı́ přı́liš popsané hledá nové kandidáty mı́sto pouze z okolı́ leadera, z okolı́ všech stávajı́cı́ch bodu. Ovšem metodu se ještě musı́ upravit, dodat konvoluce, záře. Hlavnı́ problém těchto metod na fyzikálnı́m principu je náročnost. Metody jsou většinou popsané pro 2D a je řečeno, že ve trojrozměrném prostředı́ je to analogické. Ovšem na prvnı́ problém jsem narazil už v druhém bodě algoritmu. Spočı́tat potenciál pro každou 3D buňku trvalo neúnosně dlouho. Je to logické, napřı́klad při rastru 256 je nutné pro každou buňku (a těch je 2563 = 16777216) spočı́tat minimálně 2562 = 65536 krát vzorec v bodu 2. Samozřejmě mě napadlo tuto metodu optimalizovat a počı́tat potenciál pouze těch buněk, které potřebuji, což znamená všech kandidátů, které se při tvorbě blesku vyskytly. Těch bude také hodně, ale řádově méně. Na obrázku 14 je výsledný blesk generovaný pomocı́ této metody. 17 Obrázek 13: Implementace metody 3 na 2D rastru 256x256. 4 Závěr Po počátečnı́m nadšenı́ z metody na fyzikálnı́m principu jsem si rychle uvědomil, že tato metoda by sice při dalšı́m zkoumánı́ mohla generovat realistické blesky, ale rozhodně né v reálném čase a né bez dalšı́ch zpracovánı́. Nejvı́ce slibná se mi momentálně jevı́ metoda vycházejı́cı́ z fraktálů, je velice rychlá a generuje nejvı́ce realistické blesky ze všech třı́ metod. Kromě toho jsem si jist, že dokážu tuto metodu ještě zrychlit a zefektivnit. Překvapuje mě, že v žádném z článku, které jsem četl, nebyly využity Haltonovi quasi-náhodné sekvence. Jelikož jejich přı́nos v této práci byl významný. A jak jsem popsal u druhé metody (reed), bez nich se generované blesky navzájem velmi lišı́. Jelikož se ukázalo jako velice obtı́žné určit, zda se blesk opravdu podobá realnému přı́rodnı́mu blesku (každý člověk blesk hodnotı́ subjektivně podle svých zkušenostı́), opatřil jsem tento text dodatečně dalšı́mi přı́klady blesků, které naleznete na konci této práce v obrazové přı́loze. Také jsem se rozhodl umı́stit na webové stránky (viz. http://tomas.bergl.cz) obrázkovou galerii s blesky, které jsem doposavad’ nalezl. 18 Obrázek 14: Výsledný blesk generovaný pomocı́ metody založené na fyzikálnı́m principu. Reference [1] Michálek, M.: Modelovánı́ a vizualizace blesků. Semestrálnı́ práce, 2004 [2] Wikipedia. [3] Slovenský učebnı́ text o blesku. http://kekule.science.upjs.sk/fyzika [4] J.Žára, B.Beneš, J.Sochor, P.Felkel: Modernı́ počı́tačová grafika. druhé, přepracované a rozšı́řené vydáni, Computer Press, Brno 2004 [5] T. Reed, B. Wyvill: Visual Simulation of Lightning Proc.SIGGRAPH, 94, pp. 359-364(1994). [6] Batjargal SOSORBARAM, Tadahiro FUJIMOTO,Kazunobu MURAOKA, Norishige CHIBA Visual Simulation of Lightning Taking into Account Cloud Growth Department of Computer and Information Science, Faculty of Engineering, Iwate University, Japan [7] Theodore Kim Ming C. Lin: Physically Based Animation and Rendering of Lightning Department of Computer Science, University of North Carolina at Chapel Hill [8] Andrew Glassner’s Notebook The Digital Ceraunoscope: Synthetic Thunder and Lightning, Part 1 [9] www.root.cz 19 Seznam obrázků 1 Leidenská lahev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Jednotlivé fáze blesku. (obrázek z [5]) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Přı́klad pozitivnı́ho blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4 Typy blesků. A - záporně nabitý shora dolů, B - záporně nabitý zdola nahorů, C kladně nabitý shora dolů, D - kladně nabitý zdola nahorů (obrázek z [1]) . . . . . . . 8 5 Eliášův oheň, obrázek z [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6 Různé typy blesků, obrázek z [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7 Jednoduchý fraktálový blesk ve 2D po 5 průchodech. . . . . . . . . . . . . . . . . . . 11 8 Výsledek metody fraktálů. Nalevo vygenerovaný blesk, napravo realný blesk z fotografie na obrázku 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9 Obrázek popisujı́cı́ princip roztřesenı́, obrázek z [8] . . . . . . . . . . . . . . . . . . . 13 10 Blesk před (vlevo) a po roztřesenı́, obrázek z [8] . . . . . . . . . . . . . . . . . . . . . 13 11 Nalevo výsledek metody čı́slo 2(Reed) s využitı́m Haltonových vektorů a roztřesenı́. Napravo reálný blesk z obrázku z obrázku 25. . . . . . . . . . . . . . . . . . . . . . . 15 12 Popis kroku 6, obrázek z [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 13 Implementace metody 3 na 2D rastru 256x256. . . . . . . . . . . . . . . . . . . . . . . 18 14 Výsledný blesk generovaný pomocı́ metody založené na fyzikálnı́m principu. . . . . . 19 15 Fotografie cloud-to-cloud blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 16 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 17 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 18 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 19 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 20 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 21 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 22 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 23 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 24 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 25 Fotografie čárového blesku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 20 Obrázek 15: Fotografie cloud-to-cloud blesku. Obrázek 16: Fotografie čárového blesku. 21 Obrázek 17: Fotografie čárového blesku. 22 Obrázek 18: Fotografie čárového blesku. Obrázek 19: Fotografie čárového blesku. 23 Obrázek 20: Fotografie čárového blesku. 24 Obrázek 21: Fotografie čárového blesku. Obrázek 22: Fotografie čárového blesku. 25 Obrázek 23: Fotografie čárového blesku. 26 Obrázek 24: Fotografie čárového blesku. Obrázek 25: Fotografie čárového blesku. 27
Podobné dokumenty
Číslo: 9/2010
centra Prahy přijíždějí na spanilé alkoholové jízdy. Ty spočívají v „soutěžním“ přesouvání opilců po jednotlivých
podnicích. Nadměrným hlukem a často až opileckým řevem přitom trpí místní obyvatel...
1 Reaktivn´ı zmeny lymfatických uzlin
sousedstvı́ úseky nukleové kyseliny, které za normálnı́ch okolnostı́ jsou
od sebe vzdáleny. Pokud je k dispozici vhodná sonda (sekvence nukleové
kyseliny, která je částečně komplementá...
Goniometrie
5.3. Goniometrické funkce ..................................................................................................... 873
5.4. Goniometrické rovnice..........................................
Zrcadlení v lineární perspektivě - Matematika a Deskriptivní geometrie
průsečíky této spojnice s přímkami EH a FG označím body M a N, z bodu N vedu kolmici
k přímce JK a průsečík této kolmice s přímkou JK označím písmenem O a trojúhelník MNO je
„řez“ zrcadla přímkou A...
zde - ELI – extreme light infrastructure
Ale i v USA existují místa, kam není tak snadné
se dostat. Jedním z nich je Lawrence Livermore National Laboratory (LLNL) v Kalifornii,
asi 65 km východně od San Franciska. Není
divu. Laboratoře by...
KYBERNETIKA A UMEL´A INTELIGENCE 1.´Uvod do kybernetiky a
OTS rozlišuje systémy dle úrovně detailu jejich popisu.
− Zdrojový systém: vyjmenovány veličiny a jejich interagujı́cı́ podmnožiny
∗ např. veličiny: {U, R, I}, interakce: {{U, R, I}}
− D...
diplomov´a pr´ace - Katedra elektromagnetického pole
Diplomová práce shrnuje zı́skané poznatky v oblasti fraktálnı́ch antén a optimalizace. V mnoha ohledech rozvádı́ závěry bakalářské práce. Text je tematicky rozdělen
na několik částı...