Mendelova univerzita v Brně Provozně ekonomická fakulta Využití fraktálů pro modelování terénu ve 3D nástrojích Bakalářská práce Vedoucí práce: Ing. Mgr. Jana Andrýsková, Ph.D. Martin Novotný Brno 2010
Prostor pro stránku zadání 2
Rád bych poděkoval vedoucí této bakalářské práce, Ing. Mgr. Janě Andrýskové, Ph.D. za cenné rady a připomínky, které mi pomohly v tvorbě této práce.
Prohlašuji, že jsem tuto práci napsal samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 20. května 2010....................................................
5 Abstract Novotný, M. Use of the fractals for the terrain modeling in 3D tools. Bachelor thesis. Brno, 2010. The thesis deals with the creation of a virtual fractal terrain. Theoretic introduction to the issue of fractals is the subject of the first chapter. In following chapters, graphic tools for terrain creation are analyzed and compared. Hereafter, various types of fractals are compared in terms of the modeling of the specific types of landscapes, followed by the suggestion of the methodology for generating a virtual fractal terrain, including its visualization. Abstrakt Novotný, M. Využití fraktálů pro modelování terénu ve 3D nástrojích. Bakalářská práce. Brno, 2010. Tato bakalářská práce se zabývá tvorbou virtuálního fraktálního terénu. První kapitola práce se zabývá teoretickým úvodem do problematiky fraktálů. V dalších kapitolách práce jsou analyzovány a porovnávány grafické nástroje pro tvorbu terénu. Dále jsou porovnány různé typy fraktálů z hlediska modelování konkrétních typů krajin a následně je navržena metodika pro generování virtuálního fraktálního terénu včetně jeho následné vizualizace.
OBSAH 6 Obsah 1 Úvod a cíl práce 8 1.1 Úvod do problematiky.......................... 8 1.2 Cíl práce a metodika........................... 8 2 Teoretická východiska 9 2.1 Vývoj fraktální geometrie........................ 9 2.2 Nekonečně členité útvary......................... 10 2.3 Soběpodobnost a soběpříbuznost.................... 11 2.4 Dimenze fraktálů............................. 12 2.4.1 Topologická dimenze....................... 12 2.4.2 Hausdorffova dimenze...................... 13 2.5 Výpočet Hausdorffovy dimenze..................... 14 2.5.1 Úsečka............................... 14 2.5.2 Čtverec.............................. 15 2.5.3 Krychle.............................. 15 2.5.4 Křivka Helge von Kocha..................... 16 2.5.5 Sierpinského trojúhelník..................... 17 2.5.6 Hausdorffova dimenze vybraných přírodních útvarů...... 18 2.6 Konstrukce fraktálů............................ 19 2.6.1 Dynamické systémy s fraktální strukturou........... 19 2.6.2 L-systémy............................. 19 2.6.3 Systémy iterovaných funkcí IFS................ 20 2.6.4 Stochastické fraktály....................... 21 3 Analýza grafických nástrojů 23 3.1 ZSurf pro Rhinoceros........................... 23 3.1.1 Popis funkcí............................ 23 3.2 Vue 8 Pioneer............................... 26 3.2.1 Popis funkcí............................ 26 3.3 Terragen.................................. 28 3.3.1 Popis funkcí............................ 28 4 Porovnání fraktálů z hlediska modelovaných typů krajin 31 4.1 Mandelbrotova množina......................... 31 4.2 Juliova množina.............................. 31 4.3 Fraktál Flame............................... 32 4.4 Newtonův fraktál............................. 32 4.5 Lorenzův atraktor............................. 33 4.6 Fraktál Phoenix.............................. 34
OBSAH 7 5 Metodika tvorby terénu v programu ZSurf 35 5.1 Potřebný software............................. 35 5.2 Postup tvorby terénu........................... 35 5.2.1 Tvorba fraktálu.......................... 35 5.2.2 Převod obrázku fraktálu na plochu............... 36 5.2.3 Vizualizace a dokončení terénu................. 38 6 Závěr 40 6.1 Možnosti rozšíření............................. 40 6.2 Přínos práce................................ 40 7 Literatura 41 Přílohy 42 A Ukázky modelů fraktálního terénu 43
1 ÚVOD A CíL PRÁCE 8 1 Úvod a cíl práce 1.1 Úvod do problematiky Krajina kolem nás je velice rozmanitá a má velmi mnoho podob. Od jednoduchých tvarů, kterými mohou být například pláně, pouště nebo vodní hladiny, až po složitější útvary, jakými mohou být pohoří, rokle, sopky a jiné. Modelování krajiny tedy není rozhodně jednoduchou záležitostí a bylo by velice složité je provádět ručně. Ručně lze sice dosáhnout přesného tvaru modelovaného povrchu, ale bylo by to příliš náročné a zdlouhavé. Navíc není vždy potřeba dosáhnout takové přesnosti. Proto se budeme snažit tento proces automatizovat a terén generovat. K tomuto účelu nám výborně poslouží fraktály. Pomocí nich a vhodných pracovních metod lze vygenerovat zcela unikátní terén, který pak v případě potřeby můžeme dopracovat ručně. Fraktály jsou však soběpodobné, což může mít za následek, že krajina bude homogenní. To ale neodpovídá reálné krajině, která je různorodá a působí na ni různé klimatické vlivy. Za tímto účelem je nutné terén dotvářet pomocí algoritmů, které ho náhodně upraví. 1.2 Cíl práce a metodika Cílem této práce bude navrhnout vhodnou metodiku pro generování virtuálního fraktálního terénu a provést jeho vizualizaci ve zvoleném grafickém nástroji. Pro dosažení námi stanoveného cíle práce je nutno splnit několik následujících bodů. Nejprve bude potřeba vysvětlit teoretickou problematiku fraktálů a provést analýzu grafických nástrojů pro modelování terénu a vzájemně mezi sebou porovnat jejich vlastnosti, dále pak porovnat různé typy fraktálů z hlediska jejich vhodnosti pro modelování konkrétního typu krajiny. Pro různé krajiny mohou být vhodné různé fraktály.
2 TEORETICKÁ VÝCHODISKA 9 2 Teoretická východiska V této kapitole se budeme věnovat základním pojmům z oboru fraktální geometrie. Budou zde popsány a ukázány způsoby, kterými je možno fraktály vytvářet a vysvětleno, jak poznat, zda je daný matematický či geometrický objekt fraktálem. Dále si ukážeme některé základní význačné fraktály. 2.1 Vývoj fraktální geometrie Fraktální geometrii můžeme charakterizovat jako samostatnou a poměrně rozsáhlou vědní disciplínu, která zasahuje i do dalších oborů. Objevitelem fraktální geometrie je polský vědec, nositel Nobelovy ceny za fyziku Benoit B. Mandelbrot, který je autorem mnoha vědeckých prací a knih (Žára, 2004). Proslavil se především svojí knihou The Fractal Geometry of Nature (1982) Fraktální geometrie přírody, ve které poprvé představil svět fraktálů v plné kráse. K jeho prvnímu kontaktu se světem fraktálů došlo u společnosti IBM, když studoval fluktuace cen bavlny na firemním počítači. Každá cena byla sice nepředvídatelná, nicméně posloupnost změn nezávisela na časovém měřítku. Podobný problém se vyskytl i při studiu náhodných poruch na telekomunikačních linkách, kde byl opět objeven princip opakování poruch v libovolném měřítku. Poté se Mandelbrot zaměřil na další data, jako jsou např. tisícileté záznamy o stavu vody na řece Nilu, které se opakovaly v různých měřítcích. Mandelbrot tyto změny popsal pomocí dvou typů efektů Noemova a Josefova. Noemův efekt znamená nespojitost pokud se některá veličina mění, může se měnit téměř libovolnou rychlostí. Josefův efekt znamená tendenci k setrvalému stavu. Oba efekty působí proti sobě v libovolných měřítcích. Svým dílem přispěl Mandelbrotovi i L. F. Richardson, který mimo jiné poukázal na 20% rozdíl v délce hranic mezi Portugalskem a Španělskem měřené z obou států. To dovedlo Mandelbrota k úvaze, jak dané měřítko ovlivňuje měření délky. Odtud byl už jen krůček k fraktální dimenzi. Roku 1975 se Mandelbrot rozhodl publikovat svou revoluční knihu, kterou sám nazval jako manifest a soubor kazuistik. Fraktály získaly svůj název podle latinského slovníku jeho syna, kde narazil na slovo fractus, značící zlomený, rozbitý apod. V angličtině a také ve francouzštině je toto slovo fractal (Zelinka, Včelař, Čandlík, 2006). Mandelbrot je tedy považován za prvního člověka, který definoval pojem fraktál. O definici fraktálů se před Mandelbrotem pokoušelo i mnoho jiných vědců, avšak jejich popis většinou nebyl celistvý, a proto je právě až Mandelbrot považován za prvního, který dokázal definovat fraktály. Po Mandelbrotovi byl pojmenován jeden z velice význačných a známých dynamických fraktálů ležící v komplexní rovině Mandelbrotova množina (viz obrázek 1). Tento fraktál jako první definoval v roce 1905 francouzský matematik Pierre Fatou, který se věnoval především studiu rekurzivních procesů. Fatou však neměl k dispozici počítač a ruční provádění výpočtů je velice náročné, tudíž nebyl schopen Mandelbrotovu množinu vykreslit. Tu po-
2.2 Nekonečně členité útvary 10 prvé publikoval až Mandelbrot, po kterém je díky tomu tato množina pojmenována. Už dávno předtím, než vůbec vznikl pojem fraktálu a fraktální geometrie, byly Obr. 1: Ukázka Mandelbrotovy množiny (Tišnovský, 2005) zkoumány vlastnosti geometrických útvarů, kterým dnes říkáme fraktály. Příkladem může být třeba sněhová vločka Helge von Kocha nebo Sierpinského kobereček. Tyto geometrické útvary byly prozkoumány a popsány o mnoho let dříve, než se jimi začal zabývat Mandelbrot. Vědci, kteří zkoumali tyto útvary, fraktál matematicky obecně nikdy nedefinovali, ani Mandelbrotova definice není příliš přesná matematická definice. Všeobecně platná definice fraktálů prozatím neexistuje. Intuitivně nejčastěji fraktály popisujeme jako geometrické objekty. Definovat je lze jako nekonečně členité útvary (Tišnovský, 2005). 2.2 Nekonečně členité útvary Pro pochopení tohoto pojmu je potřeba definovat pojem geometricky hladký útvar, který je pravým opakem nekonečně členitého útvaru. Geometricky hladkým útvarem jsou běžná tělesa, které mají neustále stejný počet parametrů a jsou tedy těmito parametry přesně charakterizována. Jedná se například o známé geometrické tvary, jako je krychle, válec, koule, čtverec, trojúhelník, úsečky, přímky, roviny apod. Do doby, než byla fraktální geometrie založena, byla známa pouze tzv. Euklidovská geometrie, která byla s úspěchem používána po celá staletí. Její velkou slabinou, kterou si nikdo neuvědomoval, bylo to, že neuměla jednoduchým způsobem popsat komplikované struktury, kterými jsou právě různé fraktálové obrazce, jakým je třeba fraktál Kapradina (viz obrázek 2). A právě pro popis těchto geometricky hladkých útvarů se používala Euklidova geometrie. Příkladem může být pravouhlý trojúhelník, který je plně popsán známou rovnicí c 2 = a 2 + b 2. Problém však nastane, kdybychom chtěli matematicky vyjádřit tzv. Pythagorův strom (viz obrázek 2). Zde veškeré pokusy o jednoduchý popis selhávají. Tento problém odpadá až při použití fraktální geometrie (Zelinka, Včelař, Čandlík, 2006). A nyní už přejdeme k nekonečně členitým útvarům. Kdybychom měli nekonečně členitý objekt (např. kámen) v určitém měřítku a chtěli bychom změřit jeho obvod,
2.3 Soběpodobnost a soběpříbuznost 11 Obr. 2: Ukázka fraktálu kapradiny a Pythagorova stromu (Zelinka, Včelař, Čandlík, 2006) naměřili bychom určitou délku. Ovšem kdybychom pak přiblížili tento objekt a změřili obvod znovu, byl by jiný větší. Je to způsobeno tím, že přiblížením objektu dojde k odkrytí dalších detailů (např. výstupků na kameni) a obvod by byl delší. Dobrým příkladem nekonečně členitého útvaru, který uvádí Mandelbrot (Benoit Mandelbrot, 2003), je břeh řeky, potoka či pobřeží nějakého libovolného ostrova. V těchto případech se jedná o hranici mezi vodní hladinou a pevninou. Pro zjednodušení předpokládejme, že je hladina klidná a představuje dokonalou plochu. Nyní si můžeme zkusit vypočítat délku pobřeží tohoto ostrova. Dejme tomu, že měření provedeme z mapy nebo leteckého snímku o určitém měřítku, například 1 : 1 000 000. S pomocí kružítka můžeme délku pobřeží přibližně zjistit a přepočítat na kilometry, protože známe předem zadané měřítko mapy. Pokud roztáhneme kružítko tak, aby vzdálenost mezi oběma jeho hroty byla rovna jednomu centimetru a měřítko mapy je rovno zmíněným 1 : 1 000 000, pak to znamená, že při jednom kroku kružítka se na mapě posuneme o 1 000 000 centimetrů, což po přepočtu dává deset kilometrů v reálném terénu. Získáme-li však k dispozici jinou, přesnější mapu, jejíž měřítko bude například 1 : 10 000, a změříme znovu délku toho samého pobřeží, dostaneme délku odlišnou větší. To je způsobeno právě tím, že vidíme více detailů, které na mapě s větším měřítkem viditelné nebyly. Zmenšováním měřítka by délka pobřeží dále rostla a při délce měření blížící se limitně k nule by délka rostla dokonce až do nekonečných hodnot. Výsledkem je tedy fakt, že ostrov o konečné ploše má nekonečnou délku pobřeží. 2.3 Soběpodobnost a soběpříbuznost Dalším důležitým pojmem, který se velmi často používá při popisování abstraktních matematických fraktálů i přírodních útvarů s fraktální strukturou, je soběpodobnost a soběpříbuznost.
2.4 Dimenze fraktálů 12 Obecně platí, že fraktál je objektem, jehož geometrická struktura se opakuje v něm samém. Fraktály tedy můžeme dělit na soběpodobné a soběpříbuzné. Nyní si uvedeme rozdíl mezi těmito dvěma pojmy, které jsou dobře popsány v knize Fraktální geometrie (Zelinka, Včelař, Čandlík, 2006). Soběpodobné fraktály jsou struktury, se kterými se lze setkat jen při matematických konstrukcích. Jejich hlavním znakem je to, že se v nich opakuje původní originální motiv mateřského útvaru či tělesa. Platí tedy, že kterýkoliv výsek je přesnou kopií původního objektu. Soběpříbuzné fraktály jsou struktury, které vídáme každý den v našem životě, aniž bychom si to uvědomovali. Jsou to například hory, lesy, mraky, vodní hladina nebo třeba obličej atd. Jejich hlavním znakem je to, že kterýkoliv výsek je podobnou kopií původního útvaru. Hlavní rozdíl mezi těmito dvěma pojmy je tedy jasný. Pro soběpodobnost platí, že jakýkoliv výsek je přesnou kopií původního objektu a pro soběpříbuznost je to pouze podobná kopie. 2.4 Dimenze fraktálů Dalším důležitým pojmem v oblasti fraktálů je jejich dimenze. Rozlišujeme dva základní typy dimenzí, které si nyní popíšeme. Jedná se o dimenzi topologickou a dimenzi fraktální (někdy je také nazývána jako Hausdorffova dimenze, podle německého profesora židovského původu Felixe Hausdorffa). 2.4.1 Topologická dimenze Geometricky hladké objekty, které je možné popsat klasickou Euklidovskou geometrií, mají celočíselnou dimenzi, nazývanou také topologická dimenze (před zkoumáním fraktálů si vědci vystačili právě s touto dimenzí). Například křivka, úsečka nebo přímka mají dimenzi rovnu 1. To znamená, že je jednorozměrná. Polohu bodu na ní lze tedy určit jedním číslem (souřadnicí). Avšak fakt, že má křivka dimenzi rovnu 1 neznamená, že musí být zobrazena v jednorozměrném prostoru. Dimenze udává pouze počet parametrů nutných k určení polohy bodu na křivce. Příkladem, který uvedl Tišnovský (Tišnovský, 2005), je následující křivka, která má dimenzi rovnu jedné, ale je zobrazována v trojrozměrném prostoru: x = sin(t) log(t) y = cos 2 (t) z = t Zde si můžeme všimnout, že jediným použitým parametrem je parametr t a poloha bodu je určena trojicí souřadnic x, y a z. Dá se tedy říci, že křivky, které mají topologickou dimenzi rovnu jedné, mají definovánu svoji délku (která může být i nekonečná), ale jejich plocha je nulová (nekonečně tenká). Jakákoliv hladká plocha má dimenzi rovnu 2, což znamená, že polohu bodu na této ploše je třeba určit dvěma
2.4 Dimenze fraktálů 13 parametry. Patří sem např. trojúhelníky, čtverce, obdélníky, n-úhelníky atd. Plochy nemají objem, pouze obsah, protože jejich tlouštka je nulová. Krychle, koule, jehlan nebo jakékoliv jiné prostorové těleso nebo celý běžný prostor kolem nás mají dimenzi rovnu 3, protože poloha bodu v nich je jednoznačně určena třemi parametry. Zajímavým specifickým případem je bod, který má dimenzi nulovou, jelikož polohu bodu v něm samém není potřeba určovat žádným nezávislým parametrem. Všechny výše zmíněné útvary i tělesa mají jednu společnou vlastnost. Každému z nich můžeme přiřadit celé číslo, které nazýváme počet rozměrů nebo také topologická dimenze daného útvaru či tělesa (Zelinka, Včelař, Čandlík, 2006). 2.4.2 Hausdorffova dimenze Jak bylo uvedeno výše, pro mnohé objekty vystačíme s celočíselnými dimenzemi 0, 1, 2 nebo 3. Avšak byly objeveny zvláštní typy geometrických útvarů, kde si s těmito celočíselnými dimenzemi nevystačíme. Tyto útvary nejsou pouze abstraktní objekty vznikající ve fantazii matematiků, ale často mají své vzory v přírodě. Příkladem mohou být břehy toků, pobřeží ostrovů nebo povrchy planet. Pokud budeme měřit délku geometricky hladké křivky, která má topologickou dimezi rovnu jedné, zjistíme, že v různých měřítkách má pokaždé stejnou délku. Avšak budeme-li měřit délku pobřeží ostrova, což je také křivka s topologickou dimenzí rovnou jedné, zjistíme, že při zmenšování měřítka se délka postupně stává nekonečně velkou. Pobřeží ostrova zabírá v rovině více místa než hladká křivka, ale nezabírá všechno místo. Přesněji řečeno, nevyplňuje celou rovinu. Dimenze pobřeží ostrova je tedy větší než topologická dimenze geometricky hladké křivky (ta je rovna 1) a současně je menší než topologická dimenze roviny (ta je rovna 2). Výsledkem tedy je, že dimenze takového útvaru není celočíselná, jelikož leží někde mezi dimenzí jedna a dimenzí dvě. A právě toto necelé číslo je nazýváno fraktální dimenzí (Zelinka, Včelař, Čandlík, 2006). Dimenze fraktálních objektů, také nazývaná Hausdorffova dimenze, nabývá hodnoty rozdílu mezi fraktální dimenzí a dimenzí topologickou. Tato hodnota pak udává úroveň členitosti danného objektu a také nám říká, s jakou rychlostí roste délka těchto útvarů do nekonečna. Z uvedeného vyplývá, že pokud se bude fraktální dimenze od topologické lišit velmi málo, bude takový objekt méně členitý, a naopak pokud bude fraktální dimenze značně větší oproti dimenzi topologické, bude objekt naopak velmi členitý. Také definice fraktálů formulovaná Mandelbrotem využívá rozdíly mezi topologickou a fraktální dimenzí. Definice fraktálů se postupem času měnila podle toho, jak se objevovala nová fakta. Dnes zní definice takto: fraktál je množina či geometrický útvar, jehož Hausdorffova dimenze je ostře větší nežli její dimenze topologická (Žára, 2004).
2.5 Výpočet Hausdorffovy dimenze 14 2.5 Výpočet Hausdorffovy dimenze Pro lepší objasnění rozdílu mezi topologickou dimenzí a dimenzí Hausdorffovou si ukážeme způsob, jakým je možno spočítat Hausdorffovu dimenzi na některých známých útvarech. Nejprve si určíme fraktální dimenzi u geometricky hladkých útvarů a potom spočítáme Hausdorffovu dimenzi pro fraktální objekt. Následující vztahy a vzorce jsou citací z knihy Fraktální geometrie (Zelinka, Včelař, Čandlík, 2006). 2.5.1 Úsečka Jako první základní příklad pro výpočet Hausdorffovy dimenze si ukážeme úsečku. Nejprve vytvoříme úsečku, která má jednotkovou délku. Potom rozdělíme tuto úsečku na N dílů, jak je naznačeno na obrázku 3. To odpovídá tomu, jako bychom se Obr. 3: Rozdělení úsečky se změnou měřítka (Tišnovský, 2005) na úsečku podívali s N-násobným zvětšením. Měřítko nové úsečky vzniklé rozdělením je tedy určeno vztahem: ɛ = 1/N (1) kde ɛ značí měřítko a N je počet dílů, na které se útvar rozdělí. V našem případě jsme úsečku rozdělili na dva díly. Pro Hausdorffovu dimenzi D pak obecně platí tato následující podmínka: Nɛ D = 1 (2) Z toho vyplývá, že Hausdorffova dimenze D se pro dané dělení N a dané měřítko ɛ vypočítá pomocí postupu: Nɛ D = 1 (3) log Nɛ D = log 1 (4) log N + log ɛ D = 0 (5) log N + D log ɛ = 0 (6) D log ɛ = log N (7) D = ( log N)/ log ɛ (8) D = log N/ log(1/ɛ) (9) Po dosazení vztahu (1) do poslední rovnice (9) získáme výsledek:
2.5 Výpočet Hausdorffovy dimenze 15 D = log N/ log(1/ɛ) = log N/ log N = 1 (10) Výpočtem jsme tedy zjistili, že Hausdorffova dimenze je rovna jedné, stejně jako topologická dimenze úsečky. Hausdorffova dimenze se tedy rovná dimenzi topologické. To znamená, že neplatí definice fraktálu (pro fraktál musí být fraktální dimenze ostře větší než dimenze topologická). Z toho vyplývá, že úsečka není fraktál. 2.5.2 Čtverec Dalším typickým útvarem, u kterého budeme zkoumat Hausdorffovu dimenzi, je čtverec. Vytvoříme čtverec se stranou jednotkové délky. Plocha tohoto čtverce je taktéž jednotková. Po dvojnásobném zvětšení bude čtverec vypadat tak, jako by měl čtyřnásobnou plochu, což můžeme názorně vidět na obrázku 4. Měřítko musí být tedy změněno podle následujícího vztahu: ɛ = 1/N 1/2 Hausdorffova dimenze se pak určí vzorcem: D = log N/ log(1/ɛ) = log N/ log N 1/2 = 1/(1/2) = 2 Topologická dimenze čtverce je rovna dvěma, jelikož se jedná o plošný útvar z Euklidovské geometrie. Námi určená Hausdorffova dimenze je také rovna dvěma, tudíž opět dle předchozí definice, čtverec není fraktálem. Obr. 4: Rozdělení čtverce se změnou měřítka (Tišnovský, 2005) 2.5.3 Krychle Pro objekty vyšší dimenze vypadá výpočet opět podobně. Jako další příklad máme jednotkovou krychli v prostoru R 3. Následným rozdělením krychle na díly, jak je znázorněno na obrázku 5, se výsledné krychličky zmenší o třetí odmocninu z N. Měřítko poté vypočítáme vztahem: ɛ = 1/N 1/3
2.5 Výpočet Hausdorffovy dimenze 16 Hausdorffova dimenze se pak určí vzorcem: D = log N/ log(1/ɛ) = log N/ log N 1/3 = 1/(1/3) = 3 Topologická dimenze krychle je rovna třem, jelikož se jedná o hladký útvar v prostoru R 3. Námi vypočtená fraktální dimenze je také rovna třem, takže krychle, podobně jako úsečka a čtverec, opět není fraktálem. Obr. 5: Rozdělení krychle se změnou měřítka (Tišnovský, 2005) 2.5.4 Křivka Helge von Kocha Nyní se pokusíme o výpočet Hausdorffovy dimenze pro další zajimavý útvar Kochovu křivku. Zjemnění o jeden krok spočívá v tom, že se každá úsečka předchozího tvaru nahradí dvěma úsečkami se třetinovou délkou a rovnostranným trojúhelníkem, který je strojen uprostřed mezi dvěma novými úsečkami (viz obrázek 6). Výsledný objekt je nazýván podle svého objevitele vločka či křivka Helge von Kocha (Tišnovský, 2005). Pokud provedeme trojnásobné zjemnění, tak se délka křivky zvětší Obr. 6: První čtyři iterace křivky Helge von Kocha (Tišnovský, 2005) čtyřikrát, proto Hausdorffova dimenze není celé číslo. Pro N = 4 se tedy měřítko musí zmenšit na třetinu: ɛ = 1/3 N = 4
2.5 Výpočet Hausdorffovy dimenze 17 Hausdorffova dimenze křivky Helge von Kocha se vypočítá vzorcem: D = log N/ log(1/ɛ) = log 4/ log 3 = 1, 2618595 Topologická dimenze této křivky je rovna jedné, avšak výše vypočtená fraktální dimenze je větší než jedna. V tomto případě je tedy definice fraktálu splněna a lze říci, že křivka Helge von Kocha je fraktálem. 2.5.5 Sierpinského trojúhelník Jedná se o útvar, který vzniká z rovnoramenného (příp. rovnostranného) trojúhelníku vynecháním prostředního ze čtyř stejných trojúhelníků, které jej dělí. Stejnou proceduru aplikujeme na zbylé tři trojúhelníky a tento postup se pak stále opakuje (viz obrázek 7). V první iteraci získáme N = 3 pokrývacích útvarů s mě- Obr. 7: První čtyři iterace Sierpinského trojúhelníku (Tišnovský, 2005) řítkem ɛ = 1/2. Ve druhé iteraci získáme N = 3 3 = 9 útvarů s měřítkem ɛ = 1/2 1/2 = 1/4. Obecně pak platí v n-té iteraci vztah: N = 3 n ( 1 n ɛ = 2) a fraktální dimenze bude určena vztahem: D = lim ɛ 0 log N log ( 1 ɛ log 3 n ) = lim n log 2 n = lim n n log 3 n log 2 = log 3 log 2 = 1.5850 Topologická dimenze Sierpinského trojúhelníku bude rovna jedné, protože Sierpinského trojúhelník neobsahuje sebemenší souvislou část plochy. Dle výše uvedené definice a námi vypočtené fraktální dimenze lze říci, že je tento útvar fraktálem. Můžeme si také všimnout, že jeho fraktální dimenze je větší než u Kochovy křivky, a proto ve fraktálním smyslu vyplňuje plochu lépe.
2.5 Výpočet Hausdorffovy dimenze 18 2.5.6 Hausdorffova dimenze vybraných přírodních útvarů Názornou ukázku fraktálních dimenzí některých zajímavých přírodních útvarů můžeme vidět v tabulce 1. Z této tabulky je dobré si uvědomit některé důležité poznatky, na které poukazuje kniha fraktálů (Zelinka, Včelař, Čandlík, 2006). Vezmeme-li si například jeden z objektů neerodovanou skálu a oddělíme její povrch od skály jako tělesa, tak se na první pohled zdá, že toto rozlišení neskrývá žádné problémy. Povrch má topologickou dimenzi plochy, která je menší než dimenze fraktální. Z toho podle Mandelbrotovy definice vyplývá, že tento objekt je fraktálem. Dle Richardsonova efektu můžeme považovat obsah povrchu za nekonečný, i když využívá omezenou část prostoru. Těleso skály má topologickou dimenzi rovnu 3 a jistě konečný objem. Podle vztahu Tab. 1: Odhad Hausdorffovy dimenze některých přírodních útvarů (Žára, 2004) Přírodní objekt Odhad fraktální dimenze Pobřeží 1,26 Povrch mozku člověka 2,76 Neerodované skály 2,2 2,3 Obvod 2D-průmětu oblaku 1,33 pro výpočet fraktální dimenze lze dokázat, že pro libovolnou podmnožinu M R n je její fraktální dimenze D M n. Pro skálu mají obě dimenze stejnou hodnotu tři. Takže těleso skály není fraktálem. Tento fakt potvrzuje obecnou filozofii fraktální geometrie, ve které platí, že fraktál je takový útvar, který svou členitostí vyplňuje v jistém prostoru více místa než nefraktální objekt se stejnou topologickou dimenzí. Skála, jako těleso v běžném trojrozměrném prostoru, nemůže zabrat nic víc než jen jeho jistou část. Obecně platí, že v Euklidovském prostoru R n lze zkonstruovat fraktál libovolné fraktální dimenze nepřevyšující n. Označíme-li celou část reálného čísla, Ind M a Dim M topologickou, resp. fraktální dimenzi množiny M, pak platí následující věta: V prostoru R n, n 1, existuje každému D (0, n] soběpodobný fraktál F R n takový, že DimF = D a IndF = DimF, pokud není DimF celočíselná, jinak IndF = DimF 1. Toto tvrzení obsahuje několik důležitých informací. V Euklidovském prostoru lze pro libovolnou hodnotu fraktální dimenze z intervalu (0, n] zkonstruovat příslušný fraktál, a jelikož je soběpodobný, je možno ho zkonstruovat velmi jednoduše. Existují i útvary s celočíselnou fraktální dimenzí, které však mají topologickou dimenzi o jedničku menší.
2.6 Konstrukce fraktálů 19 2.6 Konstrukce fraktálů V této kapitole se budeme zabývat metodami, kterými lze vytvořit fraktály. Je dobré si uvědomit, že vlastní způsob tvorby (generování) fraktálů se liší podle typu fraktálu. Většinou platí, že fraktály stejného typu se generují s využitím podobných algoritmů. Začneme tedy tím, že provedeme hrubé rozdělení fraktálů, které uvádí Tišnovský (Tišnovský, 2005), na následující typy: Dynamické systémy s fraktální strukturou L-systémy Systémy iterovaných funkcí IFS Stochastické fraktály 2.6.1 Dynamické systémy s fraktální strukturou Dynamické systémy jsou poměrně velikou skupinou fraktálů, které mají široké uplatnění v technické praxi. Dynamický systém je matematický model, který popisuje chování nějakého systému. Jeho stav je závislý na nějaké nezávislé veličině, nejčastěji na čase odtud je také odvozen název těchto systémů. Stav systému v libovolném časovém okamžiku je dán vektorem. Dynamický systém vychází z počátečních podmínek a je jimi v čase determinován. Existují i dynamické systémy, které se po určitém čase neustálí v pevném stavu, ale ani nedivergují. Tento případ bývá označován termínem deterministický chaos a má většinou fraktální dynamiku. Z toho vyplývá, že chování systému může být různé, může se postupně ustálit v pevném bodě, může oscilovat nebo se chovat zcela chaoticky. Vědět, v jakém stavu se systém nachází, jestli je ustálený, či zda směřuje k chaosu, je velmi důležité pro výpočty prováděné nad tímto systémem. Pro chaotický systém není možné předpovědět stav systému ve vzdálené budoucnosti, aniž by se musel simulovat celý vývoj systému. Dále platí, že dynamické systémy jsou velmi závislé na počátečních podmínkách, což znamená, že i nepatrná změna počátečních podmínek má za následek změnu chování systému v budoucnosti. Často uváděným příkladem dynamického systému s fraktální strukturou je například výpočet populačního růstu, kde lze volbou jediného parametru určit, zda bude systém ustálený, oscilující, nebo chaotický. Dynamické systémy s fraktální strukturou existují také v komplexní rovině. Příkladem mohou být Juliovy množiny a Mandelbrotova množina, které jsou v počítačové grafice velmi známé. Existuje i rozšíření Juliových množin a Mandelbrotovy množiny do hyperkomplexního (čtyřrozměrného) prostoru. 2.6.2 L-systémy L-systémy, často označovány v literatuře také jako Lindenmayerovy systémy, jsou skupinou fraktálů definovaných pomocí přepisovacích technik. Název pochází z anglické zkratky LOGO-like turtle. LOGO je programovací jazyk založený na Lispu, určený pro výuku programování. V tomto jazyku je možné nakreslit různé obrazce
2.6 Konstrukce fraktálů 20 s pomocí jednoduchých příkazů, které ovládají virtuální želvu pohybující se po ploše. Tyto obrazce bývají nejčastěji složeny z úseček. Ukázku takového obrazce si můžeme prohlédnout na obrázku 8. Podstatou tvorby L-systémů je přepisování řetězců podle určitých pravidel (gramatik). Každému terminálnímu symbolu znaku, který již nebude přepsán, je v řetězci přiřazen jistý geometrický význam, který odpovídá příkazu pro virtuální želvu v jazyce LOGO. Pokud použijeme v jazyce LOGO rekurzi, začnou vznikat velice zajímavé obrazce. L-systémy se nejčastěji využívají pro vytváření 3D modelů stromů, keřů, travin a jiných přírodních útvarů. Složitější aplikace směřují k využití těchto fraktálů ke generování plošných i prostorových (tj. objemových) textur. Obr. 8: Ukázka L-systému vytvořeného v ploše (Tišnovský, 2005) 2.6.3 Systémy iterovaných funkcí IFS IFS systémy vycházejí z toho, že je možné konstruovat fraktály pomocí afinních transformací. Tyto afinní transformace provádějí s daným objektem následující operace: rotaci, zmenšování a posun. Vlastní matematický popis afinní transformace je dán podle knihy fraktální geometrie (Zelinka, Včelař, Čandlík, 2006) následujícími vztahy: w (x) = w ( ) ( ) ( ) ( ) x1 r1 cos ϕ r2 sin υ x1 e =. + x1 r1 sin ϕr2 cos υ x2 f ( ) ( ) ( ) ( ) x1 a b x1 e w (x) = w =. + x1 cd x2 f
2.6 Konstrukce fraktálů 21 V těchto vztazích mají jednotlivé parametry následující význam. Úhel ϕ určuje otočení osy x, v jejímž směru je útvar přeškálován parametrem r1. Otočení osy y určuje úhel υ, v jejímž směru je útvar přeškálován parametrem r2. Dále parametry e a f určují translaci útvaru podle jednotlivých (neotočených) os. Pokud budeme stále opakovat aplikaci afinní transformace, dosáhneme toho, že se z vlastního útvaru začne stávat fraktální struktura. Výsledný charakter fraktálu ovlivní způsob, jakým budou tyto afinní transformace používány. Soběpodobný fraktál lze získat tím, že budeme používat všechny transformace pravidelně. Pokud použijeme tzv. hierarchický IFS, neboli HIFS, a jestliže budou transformace používány s ohledem na uživatelsky zadané pravděpodobnosti pro každou transformaci, pak bude výsledkem fraktál soběpříbuzný. HIFS je v podstatě kombinování několika IFS v různých úrovních. Název IFS systémů je odvozen z původního anglického označení Iterated Function System. Do češtiny lze tento název přeložit jako systém iterovaných funkcí. Algoritmus pro generování IFS fraktálů může být jak deterministický, tak nedeterministický neboli stochastický (Tišnovský, 2005). 2.6.4 Stochastické fraktály Stochastické fraktály lze definovat jako nepravidelné. Tyto fraktály tvoří poměrně velkou skupinu fraktálů. Všechny předchozí typy fraktálů byly v určitém smyslu symetrické, zatímco nepravidelné fraktály vnášejí při generování fraktálu do algoritmu náhodu (Zelinka, Včelař, Čandlík, 2006). Stochastické fraktály také umožňují nejlepší popis přírodních objektů. Pokud budeme generovat například strom pomocí klasického L-systému nebo IFS koláží, dostaneme jako výsledek perfektně symetrický strom. Stromy, které se nacházejí v přírodě, však symetrické nejsou, jelikož mají nepravidelné délky a tloušťky větví. Také úhel růstu větví není vždy stejný, strom rostoucí ve zdravém prostředí vypadá jinak, než stejný druh stromu rostoucí v prostředí špatném apod. Proto je vhodné zavést do generování fraktálů náhodu (Tišnovský, 2005). Stochastické fraktály můžeme vytvářet různými způsoby. První ze způsobů spočívá v simulaci Brownova pohybu v ploše a nebo v prostoru. Brownův pohyb byl nejprve pozorován jako chaotický pohyb mikroskopických částeček pylu ve vodě a v roce 1905 byl zdůvodněn Einsteinem jako pohyb, který je způsobený náhodnými nárazy molekul vody na relativně malá a lehká zrnka pylu. Často může být Brownův pohyb nazýván jako náhodná procházka. Brownův pohyb se využívá například při generování toků řek nebo vytváření obrazů difúze, ale není příliš vhodný pro tvorbu trojrozměrných objektů. Další velmi typickou metodou generování stochastických fraktálů je metoda přesouvání středního bodu. Tato metoda může být použita jak na ploše, tak i v prostoru, a velmi často je používaná v počítačové grafice pro generování tzv. výškového pole (height field) a následné vizualizaci přírodní krajiny. Celkový ráz krajiny lze
2.6 Konstrukce fraktálů 22 měnit volbou maximální odchylky při posunu středního bodu. Díky tomu je možno vytvářet zajímavé krajiny od pouští až po velehory. Často používanou metodou je spektrální syntéza, vycházející z principu výpočtu Fourierovy řady. Podstata této metody spočívá v tom, že využívá exitující vztah mezi fraktální dimenzí stochastických fraktálů a určitou veličinou jejich Fourierova obrazu. Generování fraktálů pomocí spektrální syntézy je pak uskutečněno pomocí generování Fourierových obrazů tak, aby vyhovovaly zmíněné spektrální hustotě se zadanou fraktální dimenzí. Po provedení zpětné Fourierovy transformace získáme požadovaný fraktál. Tato metoda má řadu výhod. S její pomocí můžeme generovat fraktály v libovolném rozměru od fraktálních úseček po čtyřdimenzionální šumy. Výhodou je také to, že lze přímo zadat požadovanou Hausdorffovu dimenzi výsledného objektu. Spektrální syntéza bývá často používána například pro generování hor či povrchů planet (Žára, 2004).
3 ANALÝZA GRAFICKÝCH NÁSTROJŮ 23 3 Analýza grafických nástrojů Pro modelování terénu existuje celkem velké množství různých programů. Každý program se zabývá tímto problémem trochu jinak. Někdy se jedná o programy, sloužící přímo pro účel generování fraktální krajiny, které mají velké množství funkcí, a bývají velmi složité a propracované. Druhou kategorií mohou být programy nadstavbové, které pracují pod nějakým jiným programem, který není určen přímo pro generování fraktálního terénu. Tyto nadstavby umožňují obohatit původní program o funkce potřebné pro generování terénu. V této kapitole si ukážeme konkrétní ukázky těchto programů, ať už samostatných, určených přímo pro generování terénu, tak nadstavbových, a provedeme vzájemné porovnání jejich rozdílů. 3.1 ZSurf pro Rhinoceros Prvním programem pro účel generování fraktálního terénu, kterým se budeme zabývat, je celkem malý program sloužící jako nadstavba pro Rhinoceros. Než se budeme dále věnovat tomuto nadstavbovému programu, je dobré si nejprve říci něco o programu Rhinoceros, se kterým tato nadstavba spolupracuje. Rhinoceros, často zkráceně nazývaný také Rhino, je placený software umožňující modelování prostorových objektů. Rhinoceros bývá často využíván v architektuře, designu, strojírenství apod. Díky velkému množství nástrojů umožňuje vytvářet libovolné modely. Mezi tyto nástroje patří například pokročilé deformace těles, možnosti nasvětlování, tvorba virtuálního modelu z fotografií, booleovské operace s tělesy apod. Rhino podporuje velké množství nadstavbových programů (plug-inů), které nějakým způsobem rozšiřují funkce tohoto programu. Jedním z nich je právě ZSurf, který budeme dále rozebírat. Program ZSurf má velmi jednoduché uživatelské rozhraní i vzhled a není nutno provádět jeho instalaci do Rhina, jelikož pracuje zcela nezávisle na něm. ZSurf není náročný na hardware a měl by běžet na každém dnešním počítači. Výhodou je i jeho velmi malá velikost. Na disku zabere pouze okolo 1 MB místa. Podrobnější informace k požadavkům ZSurfu na hardware nejsou dostupné, jelikož program nemá žádné oficiální webové stránky. ZSurf si jako vstup vezme bitmapové obrázky (formát bmp) nebo také nativní 32-bitové obrázky (formát bsf), které následně zpracuje a převede je do trojrozměrné podoby. Převedením do trojrozměrné formy rozumíme převod bitmapového obrázku na NURBS plochu. Jako výstup program vytvoří soubor formátu IGES, který lze přímo otevřít v programu Rhinoceros. 3.1.1 Popis funkcí I přes svoji jednoduchost má ZSurf poměrně velké množství funkcí. Kromě hlavní funkce převodu obrázku na plochu se zde nachází celá řada filtrů, s jejíchž pomocí lze ovlivňovat výsledný výtvor. Filtry jsou ovládány pomocí posuvných jezdců, pro
3.1 ZSurf pro Rhinoceros 24 Obr. 9: Ukázka uživatelského rozhraní programu ZSurf které obecně platí, že při jejich posuvu směrem doprava plynule zvyšujeme účinek filtru a naopak. Jedinou výjimkou je filtr Stretch Z-level, který má nejmenší hodnotu uprostřed a posunutím jezdce doprava nebo doleva roztahujeme plochů dolů nebo nahoru. Některé filtry také obsahují posuvné jezdce ve vertikálním směru, které zlepšují práci filtru. Na obrázku 9 vidíme náhled na jednotlivé filtry a další funkce, které probereme později. A nyní už přejdeme ke stručnému popisu jednotlivých filtrů: Smoothing (vyhlazení) tento filtr slouží pro zjemnění výsledné plochy. Čím vyšší nastavení budeme mít, tím hladší bude výsledná plocha. Avšak s rostoucím vyhlazením dochází ke ztrátě detailů. Blurring (rozostření) tento filtr lze přirovnat ke Gaussovu filtru, který se nachází v mnoha grafických editorech. Blurring je vhodné použít, pokud chceme odstranit zubatost a šum se zachováním co nejvíce detailů.
3.1 ZSurf pro Rhinoceros 25 Mean-variance (střední odchylka) použitím tohoto filtru docílíme odstranění šumu, zvýšení strmosti a tvarování prvků s minimální ztrátou detailů. Dilation (rozšíření) tímto filtrem provedeme celkové zvýšení velikosti světlých oblastí obrázku a tím také potlačení tmavých oblastí. Díky tomu je výsledná plocha odsazena směrem ven. Erosion (eroze) tento filtr je opakem filtru dilatačního, snižuje se velikost bílých oblastí a tím je výsledná plocha erodována. Dochází jakoby k ukusování či obrušování výsledné plochy. Profile Shape (tvar profilu) s pomocí tohoto filtru je možné zaoblit ostré vrcholy a vytvářet tak efekt zakulaceného vrcholu. Malým vertikálním jezdcem je možno řídit tvar. Posunutím vertikálního jezdce z jeho výchozí polohy směrem dolů dosáhneme spíše efektu zkosení. Stretch Z-levels jedná se o filtr sloužící k posunu souřadnice Z každého pixelu, a to buď nahoru, nebo dolů podle posunu jezdce. Tento filtr se využívá například pro modifikaci tvaru příčného řezu, vytvořeného s pomocí filtru Profile Shape. Kromě filtrů najdeme dále na hlavní obrazovce programu možnost nastavení rozměru šířky a výšky výsledné plochy (scale x, scale z) a funkci Invert, sloužící k obrácení celé plochy naruby. Vedle této funkce je dále ještě tlačítko Invert process, které převrátí způsob, jakým ovladače zpracují bitmapu při generování plochy. Dále se zde nachází tlačítko Step Response. Jedná se o velmi účinný analytický nástroj sloužící k zobrazení okna s ukázkou příčného řezu plochou, která by byla vygenerována s pomocí aktuálního nastavení. Díky tomu můžeme sledovat, jak jednotlivé funkce a filtry ovlivňují výsledný tvar plochy. Pod tímto tlačítkem se nachází možnost převést celý obrázek na negativ, nebo převést barevný obrázek na stupně šedi. Tímto jsme popsali celé hlavní okno programu. Nyní začneme se stručným popisem horní lišty, která obsahuje další doplňkové funkce. První záložka Files je základní nabídkou, která bývá v každé okenní aplikaci. Umožňuje nám otevírat nové bitmapové soubory pro zpracování a průběžně je ukládat, pokud na nich provedeme nějakou změnu. Nechybí zde ani možnost Exit pro ukončení programu. Následující záložky Edit a Options jsou nefunkční, jelikož ještě nebyly implementovány. Edit bude nejspíše sloužit k ořezávání, vyjmutí či vkládání a pro volbu Options se plánuje umožnit výstup do různých typů ploch, jako například různé stupně NURBS plochy, plocha typu polygonová síť apod. Další volbou je záložka Text, sloužící pro rychlé vložení textu, který je následně převeden na obrázek, ze kterého můžeme vytvořit plochu. Tím můžeme získat efekt vystouplých písmen nad rovinu plochy, nebo při inverzi barev získáme naopak efekt, kdy jsou písmena zahloubena dovnitř plochy. Záložka Fractals slouží pro rychlé vygenerování a vložení fraktálu Mandelbrotovy množiny. V okně náhledu na fraktál můžeme myší vybrat požadovanou oblast fraktálu a nechat podle tohoto fraktálu vygenerovat výslednou plochu. Samozřejmě je možné použít i externí program pro tvorbu fraktálů, vytvořit v něm libovolný fraktál, uložit ho a následně otevřít v ZSurfu. Následující záložka Basesurf slouží k umístění námi generované plochy na jinou plochu. V sou-
3.2 Vue 8 Pioneer 26 časnosti je implementováno 5 typů základních ploch rovina, koule, válec, anuloid a bitmapa (obrázek). Poslední volbou je záložka Help, pomocí které můžeme zobrazit stručnou anglickou nápovědu k tomuto programu. 3.2 Vue 8 Pioneer Dalším programem, který budeme zkoumat, je Vue 8 Pioneer, který poskytuje společnost E-on software (E-on software, 2010). Společnost poskytuje velké množství různých verzí programu Vue, z nichž každá verze je zaměřena na specifické odvětví. Společnost své Vue produkty dělí do tří základních skupin. První skupina je určena pro běžné uživatele, kteří si chtějí vyzkoušet tvorbu krajiny. V této skupině jsou levnější produkty, včetně verze Vue 8 Pioneer, kterou se budeme dále zabývat. Programy Vue jsou rozdělené podle konkrétních scenérií, na které se chce uživatel při modelování zaměřit. Například Vue Science Fiction pro modelování, vesmíru, povrchů neznámých planet, vesmírných lodí apod. Dále Vue Fantasy pro modelování pohádkové krajiny, stromů, bytostí apod. Případně jsou k dispozici dražší verze, které obsahují obsah z více Vue programů. Druhá skupina programů Vue je určena již pokročilým uživatelům či umělcům zabývajících se profesionální tvorbou krajin a 3D scenérií. Tyto programy jsou dražší než předchozí skupina a obsahují více pokročilých funkcí. Mají také větší výběr objektů a hodí se tak pro modelování více typů krajin. Třetí skupinou jsou produkty určené výhradně profesionálům. Tyto programy jsou nejdražší, ale také obsahují nejvíce funkcí a umožňují spolupráci s jinými profesionálními programy pro 3D modelování, jako jsou například Cinema 4D, 3ds Max, Maya, LightWave apod. Nyní už přejdeme k námi vybranému programu Vue 8 Pioneer. Jak již bylo řečeno výše, tato verze programu Vue patří do nejnižší skupiny, ale jako jediná verze je poskytována zdarma, což je velikou výhodou oproti ZSurfu, kde potřebujeme placený program Rhinoceros. Vue 8 Pioneer je samostatným programem, který pro svůj chod nepotřebuje žádný další program. Z toho vyplývá, že oproti ZSurfu je značně větší. Na disku vyžaduje okolo 200 MB místa a má již vyšší nároky na hardware počítače. Minimální požadavky jsou Windows XP a vyšší, procesor o taktu alespoň 1 GHz a minimálně 512 MB RAM (doporučeno 1 GB). Doporučuje se také výkonější grafická karta s podporou OpenGL. Vue také podporuje 64-bitové operační systémy a vícejádrové procesory. 3.2.1 Popis funkcí Po zapnutí programu si můžeme všimnout velmi pěkně graficky zpracovaného prostředí. Uspořádání prvků programu je velmi intuitivní a přehledné. Podobně jako v jiných programech pro 3D modelování zde také najdeme jednotlivé pohledy na modelovanou krajinu zeshora, ze strany, zepředu a z perspektivy (viz obrázek 10). Po stranách nechybí ani lišty s ikonami pro rychlé spuštění nejpoužívanějších operací.
3.2 Vue 8 Pioneer 27 Program umožňuje také práci s vrstvami. Jednotlivým částem vytvořené krajiny je možno přiřazovat vrstvy, a tím ještě více zpřehlednit a zjednodušit práci. Podobně jako v jiných grafických programech, nechybí ani možnost uzamknutí nebo skrytí vrstev. Obr. 10: Ukázka uživatelského rozhraní programu Vue 8 Pioneer Nyní už přikročíme k samotnému vytváření terénu v tomto programu. Není zde potřeba vkládat žádnou předlohu, podle které by se terén generoval, tak jak tomu bylo v ZSurfu. Pokud chceme vytvořit nějaký konkrétní typ terénu, stačí pouze vložit nový objekt typu terén (terrain) do projektu a zvolit, jaký požadovaný typ krajiny se má generovat (hory, poušť, ledovce apod.), a program již sám zvolí vhodný fraktál a vygeneruje zcela náhodnou krajinu. Přesto tu nechybí možnost vložit obrázek s fraktálem a vygenerovat z něj terén podobně jako v ZSurfu. Tuto vygenerovanou krajinu pak můžeme ručně dotvářet pomocí mnoha nástrojů a filtrů, které program nabízí. Mezi tyto nástroje patří například snižování či zvyšování terénu v určitých místech, vyhlazování a další funkce či filtry. Výhodou je členění jednotlivých vygenerovaných kusů krajiny na objekty, se kterými lze provádět nejrůznější operace. Mezi
3.3 Terragen 28 tyto operace patří například posun, změna velikosti, rotace a nechybí ani booleovské operace mezi objekty, díky kterým můžeme například sjednotit dva vygenerované terény v jeden celek. Na rozdíl od ZSurfu se program nezabývá pouze tvorbou holého terénu, ale vytváří krajinu jako celek. Je tedy možné přidat další objekty, jako je obloha, mraky, fauna a flóra, kameny, vodní hladina a další. Nechybí také možnost pro otexturování vygenerovaného terénu pomocí velké škály textur, které program obsahuje. Po vytvoření celé krajiny je možno vyrenderovat výsledný pohled. V renderování lze nastavovat výslednou kvalitu a rozlišení, což také ovlivní dobu renderování krajiny. Vue 8 Pioneer obsahuje dokonce i funkci animování, s jejíž pomocí lze vytvářet různé průlety kamerou nad námi vygenerovanou krajinou. Renderování animace je velmi náročné na výkon a i na vícejádrových procesorech zabere značnou dobu. 3.3 Terragen Posledním programem, který si ukážeme je Terragen, který poskytuje společnost Planetside software. V současnosti existují dvě verze tohoto programu. První, starší verzí je Terragen Classic a druhou, novější verzí je Terragen 2. Obě verze produktů Terragen jsou placené, ale pro osobní (nekomerční) použití je možno Terragen používat volně. Tyto volně dostupné verze programu mají omezenou maximální kvalitu renderování, rozlišení (max. 800 x 600) a kvalitu antialiasingu (Planetside software, 2009). Podobně jako předchozí program Vue je Terragen samostatným programem a nepotřebuje pro svůj chod žádný další program. Oproti Vue je Terragen o hodně menší a na disku zabírá jen okolo 2 MB a novější verze Terragen 2 je o něco obsáhlejší, ale i přesto zabírá jen okolo 30 MB. Díky malé velikosti není grafické rozhraní Terragenu tak moderní a propracované, jako tomu bylo u programu Vue, a také zde nejsou objekty ani takové množství textur povrchů. Hardwarové nároky Terragenu 2 jsou poměrně velké, srovnatelné s programem Vue. Minimální pořadavky jsou Windows 2000, XP, Vista nebo Windows 7, procesor o taktu alespoň 1 GHz (doporučené jsou dvoujádrové procesory), 1 GB RAM (doporučené 4 GB). Terragen Classic je na tom lépe, vyžaduje pouze Windows 95 a vyšší. Nyní přejdeme k podrobnějšímu popisu Terragenu, pro který jsme použili Terragen Classic. 3.3.1 Popis funkcí Po zapnutí programu a naběhnutí hlavního okna programu můžeme vidět poměrně prosté grafické prostředí programu (viz obrázek 11), které už není tak intuitivní, jak tomu bylo u programu Vue. Na levé straně jsou ikony, z nichž každá slouží pro tvorbu určité části krajiny. Tyto ikony lze považovat za jednotlivé body, které je potřeba projít k vytvoření výsledné krajiny. Kromě těchto ikon je k dispozici
3.3 Terragen 29 také klasická horní lišta, která umožňuje provádět standartní operace otevření, uložení nebo vytvoření nového projektu. Dále v záložce View obsahuje možnost zapínat jednotlivé funkce ke generování krajiny, které lze také zapnout s pomocí výše zmíněných ikon. V záložce pojmenované Terragen lze najít doplňkové funkce Obr. 11: Ukázka uživatelského rozhraní programu Terragen Classic spouštějící skripty a nadstavbové programy pro Terragen, mezi které patří například Scripter, Terranim, CamPath. Ty nám umožňují obohatit Terragen o další možnosti, mezi které patří například animace či průlety kamerou. Poslední záložka Help slouží pro zobrazení nápovědy programu a informací o programu. Nyní už přikročíme k popisu jednotlivých ikon, kterými se postupně generuje výsledný terén. Rendering Controls (nastavení renderování) slouží pro nastavení výsledné kvality a velikosti renderovaného obrázku. Dále je zde možnost nastavit pohled kamery k určení části krajiny, kterou chceme snímat. Landscape (krajina) asi nejdůležitější položka sloužící pro určení tvaru výsledné krajiny. Pomocí náhodných fraktálových obrazců generuje náhled výškové mapy, podle které je později renderována výsledná krajina. Nechybí ani možnost ručního dotváření výškové mapy pomocí myši a volba textury povrchu.
3.3 Terragen 30 Water (voda) umožní přidat do krajiny vodní plochu. Velké množství ovladačů umožňuje nastavovat různé parametry vzhledu pro vlny, odrazy, pobřeží apod. Cloudscape (oblaka) umožňuje náhodně vygenerovat mraky. Obsahuje velké množství funkcí pro ovlivnění výsledné velikosti, četnosti, tvaru a vzhledu generovaných mraků. Atmosphere (atmosféra) slouží pro nastavení atmosféry (vzhledu oblohy a horizontu). Pomocí velkého množství funkcí lze nastavit například barvu jednotlivých složek oblohy apod. Lighting Conditions (světelné podmínky) slouží pro celkové nasvětlení scény. 3D Preview (3D náhled) umožňuje vygenerovat rychlý náhled na modelovanou krajinu pro představu, jak bude zhruba vypadat výsledný vyrenderovaný obrázek. Last rendered image (poslední renderovaný obrázek) zobrazí poslední vyrenderovaný obrázek.
4 POROVNÁNí FRAKTÁLŮ Z HLEDISKA MODELOVANÝCH TYPŮ KRAJIN 31 4 Porovnání fraktálů z hlediska modelovaných typů krajin Krajina kolem nás je velice rozmanitá a každý typ krajiny vypadá jinak. Proto při generování terénu pomocí fraktálů musíme dobře zvolit typ fraktálu, podle kterého se krajina bude generovat. Pokud budeme generovat louky, pláně a jiné rovné terény, musíme použít jiný fraktál než pro generování horských pásem, kopců apod. V této kapitole si ukážeme jednotlivé typy fraktálů, provedeme jejich převod na plochy pomocí programu ZSurf a rozhodneme, na jaký typ krajiny bude vhodné dané fraktály použít. 4.1 Mandelbrotova množina Jako první vyzkoušíme velice známý fraktál Mandelbrotovy množiny. Nejprve vybereme několikanásobným zvětšováním okraje tohoto fraktálu vhodnou oblast, ze které necháme vygenerovat výsledný terén. Vygenerovaný terén se velmi podobá mořským břehům a skálám. Fraktál je také vhodný pro generování zálivů nebo kaňonů. Vygenerovanou ukázku terénu můžeme posoudit na obrázku 12. Obr. 12: Ukázka terénu vygenerovaného z Mandelbrotovy množiny 4.2 Juliova množina Dalším známým fraktálem, kterému určíme, pro jaký typ krajiny je vhodný, je Juliova množina. S pomocí této množiny se dají vygenerovat hory a horská pásma. Při změně rozlišení tohoto fraktálu, případně výběru jiné jeho části je vhodný také pro generování menších kopců či zvlnění terénu. My jsme tento fraktál použili v jeho základním tvaru, čímž vzniklo pohoří které vidíme na obrázku 13.
4.3 Fraktál Flame 32 Obr. 13: Ukázka terénu vygenerovaného z Juliovy množiny 4.3 Fraktál Flame Následující fraktál patří do velmi zajímavé skupiny fraktálů. Tento fraktální typ je Scottem Dravesem nazvaný Fractal Flames. Jeden ze zástupců této skupiny fraktálů je použitý pro generování zajímavého terénu, který vidíme na obrázku 14. Tento terén je velmi podobný povrchu Měsíce. Obr. 14: Ukázka terénu vygenerovaného z fraktálu Flame 4.4 Newtonův fraktál Následující ukázka je vytvořena s pomocí Newtonova fraktálu. Výsledný fraktál pro vyvoření této trojrozměrné krajiny byl získán přibližováním středové oblasti základního Newtonova fraktálu. Tento obrazec lze vzhledově přirovnat ke květu nějaké rostliny. S jeho pomocí se nám podařilo vytvořit model sopky (viz obrázek 15). Nastavením výsledného rozměru plochy osy X a osy Z je možno ovlivňovat výsledný
4.5 Lorenzův atraktor 33 tvar sopky. Například zvyšováním hodnot pro osu X můžeme získat širší a mohutnější sopku, snižováním těchto hodnot naopak získáme užší a strmější sopku. Pomocí výškové osy Z je možno ovlivňovat celkovou výšku sopky. Obr. 15: Ukázka terénu vygenerovaného z Newtonova fraktálu 4.5 Lorenzův atraktor Následující terén byl vygenerován s pomocí Lorenzova atraktoru. Tento fraktál je sice již sám o sobě vytvořen v trojrozměrném prostoru, ale my jsme použili jeho dvojrozměrnou podobu. S pomocí tohoto atraktoru jsme vytvořili zvlněný terén, který se podobá pouštním dunám. Jednotlivé linie tohoto atraktoru vytvořili na povrchu dun zajimavé zvlnění, připomínající působení větru na písečné duny. Pro dosažení tohoto efektu se nesmí při převádění tohoto obrázku atraktoru na plochu použít žádné vyhlazovací filtry, jinak by došlo k zahlazení těchto linií na terénu. Výslednou ukázku vygenerovaného terénu pouštních dun můžeme posoudit na obrázku 16. Použitím obrázku Lorenzova atraktoru ve větší velikosti a snížením hodnoty výšky při převádění obrázku atraktoru na plochu lze dosáhnout také efektu mnoha jemných vlnek, které se podobají zvlnění vodní hladiny.
4.6 Fraktál Phoenix 34 Obr. 16: Ukázka terénu vygenerovaného z Lorenzova atraktoru 4.6 Fraktál Phoenix Posledním fraktálem, který vyzkoušíme je fraktál Phoenix. Tento fraktál je vhodný pro generování vodních ploch, prohlubní, propastí apod. Na obrázku 17 můžeme vidět model jezera vygenerovaný z fraktálu Generalized Phoenix II. Hlavní částí tohoto fraktálu je jeho černá středová oblast, která představuje dno generovaného jezera. Podle tvaru černého středu fraktálu lze jednoduše odhadnout, jaký bude výsledný tvar jezera. Existuje více typů tohoto fraktálu a každý z nich má jiný tvar středové černé oblasti, čímž je možno získat velké množství různých tvarů jezer. Obr. 17: Ukázka terénu vygenerovaného z Phoenixova fraktálu
5 METODIKA TVORBY TERÉNU V PROGRAMU ZSURF 35 5 Metodika tvorby terénu v programu ZSurf V této kapitole postupně probereme celkový postup, který je potřeba znát, abychom mohli vytvořit vlastní konkrétní krajinu. Pro tento návod jsme zvolili program ZSurf pro Rhinoceros. 5.1 Potřebný software Než budeme moci začít s vlastní tvorbou terénu, musíme uvést, jaké k tomu budeme potřebovat nástroje. Základem je ZSurf, který nám bitmapový obrázek převede na plochu. Jelikož generujeme fraktální terén, musíme počítat s tím, že někde potřebujeme získat obrázek fraktálu, který pak bude programem ZSurf převeden. Pro tento účel existuje mnoho programů, které umožňují tvořit a prohlížet fraktály. My použijeme poměrně známý program Fractal Explorer. S jeho pomocí získáme obrázek fraktálu, který s pomocí ZSurfu převedeme na plochu. Pro zobrazení vygenerované plochy budeme potřebovat program Rhinoceros, kterým v případě potřeby můžeme ještě dále doupravit výsledný terén. 5.2 Postup tvorby terénu Teď když víme, jaký software budeme potřebovat k vytvoření výsledné krajiny, můžeme postupně přejít k vysvětlování postupu tvorby. Začněme tím, že vytvoříme obrázek s fraktálem, se kterým budeme později dále pracovat. Než začneme s tvorbou fraktálu, musíme promyslet, jaký typ krajiny budeme tvořit, a podle toho zvolit vhodný fraktál. Zvolíme si například tvorbu nějaké pobřežní skalnaté oblasti. Z předchozí kapitoly porovnání fraktálů víme, že pro takový typ krajiny je vhodné použít Mandelbrotovu množinu. 5.2.1 Tvorba fraktálu Nyní přejdeme k samotné tvorbě fraktálového obrázku. Po stažení a rozbalení programu Fractal Explorer jej zapneme pomocí souboru fe.exe a tím dojde k otevření okna programu, které vidíme na obrázku 18. Po otevření okna vidíme základní panel ikon pro rychlé volby a horní lištu programu obsahující všechny jeho funkce. Pro založení nového fraktálu klikneme na ikonu New 2D Fractal s obrázkem Mandelbrotovy množiny, nebo lze použít horní panel programu, kliknout na záložku File a volbu New Fractal. Tím dojde k otevření okna, kde se vygeneruje základní fraktál Mandelbrotovy množiny (viz obrázek 18), což se nám zrovna hodí, protože tento fraktál právě potřebujeme. V případě potřeby jiného fraktálu než Mandelbrotovy množiny je možno kliknout na ikonu Select Fractal s obrázkem odmocniny z alfa, nebo v horním panelu na záložku Fractal, kde je tato funkce také. Otevře se nové okno, ve kterém můžeme zvolit, jaký fraktál požadujeme. Teď, když máme vytvořený požadovaný fraktál, můžeme z něj vybrat vhodnou oblast pro vytvoření terénu. Samozřejmě by také bylo možné fraktál použít tak, jak
5.2 Postup tvorby terénu 36 Obr. 18: Ukázka uživatelského rozhraní programu Fractal Explorer je, a generovat terén z jeho základního tvaru. Mnohdy je však vhodnější najít oblast, která bude lépe vyhovovat našim požadavkům a výsledek bude lepší. Pro výběr vhodné oblasti z Mandelbrotovy množiny bude potřeba provést přiblížení okraje fraktálu. To provedeme tak, že pomocí levého tlačítka myši vybereme požadovanou okrajovou oblast a poté klikneme na pravé tlačítko myši, čímž dojde k přiblížení pohledu na námi vybranou oblast. Celý postup opakujeme vícekrát (cca 5x), dokud není námi vybraná oblast zcela přiblížena. Nyní máme hotový fraktálový obrázek a můžeme přikročit k jeho uložení, aby s ním bylo možné dále pracovat. V horním panelu nástrojů zvolíme záložku File a v ní klikneme na volbu Save image, sloužící k uložení námi vytvořeného obrázku. Nyní zvolíme cestu, kam uložit výsledný obrázek. Pro usnadnění práce je vhodné uložit si jej přímo do složky s programem ZSurf, jelikož ten ho bude dále používat. Po zadání cesty musíme vybrat, v jakém formátu chceme obrázek fraktálu uložit. Zde musíme vybrat formát *.bmp, jelikož pouze tento z nabízených formátů dokáže ZSurf otevřít. Teď už stačí jen kliknout na tlačítko Uložit a obrázek fraktálu bude uložen. V případě, že si nejsme jisti vybranou oblastí a chtěli bychom později s fraktálem dále pracovat, můžeme využít volbu Save project, která uloží celý projekt v aktuálním stavu, který můžeme později otevřít a dále s ním pracovat. 5.2.2 Převod obrázku fraktálu na plochu Úspěšně jsme získali obrázek fraktálu, takže nyní můžeme přejít k programu ZSurf a převést tento obrázek na plochu terénu. Po zapnutí programu ZSurf a naběhnutí hlavního okna musíme provést načtení obrázku fraktálu do ZSurfu. To provedeme
5.2 Postup tvorby terénu 37 tak, že klikneme v horní liště na záložku Files a poté klikneme na Open. Otevře se další okno, ve kterém musíme označit k otevření bitmapový soubor s obrázkem fraktálu, který jsme předtím vytvořili. Po kliknutí na soubor s obrázkem můžeme ve spodní části okna upravit rozlišení, ve kterém se obrázek načte. To má vliv na detailnost výsledného terénu. Nám v tomto případě bude stačit výchozí přednastavená velikost, takže necháme zatrženu volbu Natural Resolution. V případě, že bychom chtěli rozlišení změnit, klikneme na volbu Custom Resolution (vlastní rozlišení) a napíšeme požadované rozlišení do okýnek Width a Height (výška a šířka). Teď už stačí jen kliknout na tlačítko Otevřít a obrázek se otevře a načte do programu. Pokud jsme provedli otevření obrázku správně, uvidíme náš obrázek v náhledovém okně programu. Na obrázek můžeme aplikovat filtry, které slouží pro doladění vzhledu generovaného terénu. Filtry lze použít dvojím způsobem. Buď je možné ovládat všechny filtry jednotlivě, anebo pomocí hlavního jezdce Master anti-alias level ovládat všechny filtry zároveň. Název anti-alias znamená vyhlazení, z čehož plyne, že filtry mají především krajinu vyhladit a zjemnit ostré přechody. Pro námi vytvářený terén nastavíme Master anti-alias level na tři dílky, pro jemné vyhlazení vytvářeného pobřeží. Příliš vysoké hodnoty by mohly způsobit ztrátu detailu. Dalším důležitým parametrem, který musíme nastavit, je celkový rozměr plochy a výška plochy. Rozměr plochy Scale X je ve výchozím stavu nastavený na hodnotu 100, což je vyhovující a není potřeba tuto hodnotu nijak měnit. Výška plochy terénu Scale Z je již důležitější, jelikož určuje celkovou výšku, jakou terén dosáhne. Příliš nízké hodnoty výšky způsobí příliš nízké pobřeží, a vysoké hodnoty vytvoří naopak příliš strmé a kolmé pobřeží. Na obrázku 19 vidíme porovnání dvou vygenerovaných Obr. 19: Ukázka vlivu parametru výšky na terén terénů s rozdílným parametrem výšky. Levý terén má parametr výšky nastaven na hodnotu 1 a vidíme, že pobřeží připomíná spíše nízkou písečnou pláž. Pravý terén s parametrem výšky nastaveným na hodnotu 10 má zcela jiný charakter podobný velmi strmému skalnatému pobřeží. Ideální hodnoty výšky pro náš terén se pohybují mezi 3 až 10 podle výšky břehu, jaký požadujeme. Zvolme tedy hodnotu 5.
5.2 Postup tvorby terénu 38 Nyní máme vše potřebné nastavené a přejdeme k vlastnímu generování terénu. Kliknutím na tlačítko Process se vygeneruje plocha terénu. Vytvořený terén se pak uloží do souboru srf.igs, který se nachází ve složce s programem ZSurf. 5.2.3 Vizualizace a dokončení terénu V předchozí sekci jsme vytvořili terén a teď bude potřeba provést jeho zobrazení, případně dodělání v programu Rhinoceros. Po zapnutí Rhina je možné, že se otevře okno s výběrem šablon pro velikost a jednotek modelu. Krajinu lze považovat za velký objekt, proto zvolíme možnost velkého objektu v metrech a klikneme na tlačítko Otevřít. Tím se nastartuje základní pracovní plocha programu Rhino. Načtení vytvořeného terénu provedeme rozkliknutím volby Soubor v horní liště programu a vybereme možnost Importovat. V následujícím okně vybereme cestu do adresáře s nainstalovaným programem ZSurf, kde se nechází soubor srf.igs s vytvořeným terénem. Aby bylo možné soubor otevřít, musíme z nabídky typů souborů vybrat soubor typu IGES. Pak stačí jen označit soubor srf.igs a kliknout na Otevřít. Objeví se okno s dotazem na změnu měřítka při importu. Zde musíme zvolit možnost Ne, aby nedošlo ke změně měřítka, jinak by se terén vložil v milimetrových jednotkách a byl by příliš malý. Načtená krajina se objeví v náhledových oknech Rhina, kde si ji můžeme prohlédnout z různých úhlů pohledu a posoudit, jestli vypadá podle našich představ. Ve výchozím stavu všechny pohledy zobrazují krajinu drátovým způsobem. Pro lepší představu zobrazení terénu je možné v horním panelu v nabídce Pohled zvolit stínované, případně renderované zobrazení. Výslednou krajinu je možné vyrenderovat a uložit jako obrázek, ale předtím je nutné nastavit vlastnosti renderování v Rhinu, jelikož ve výchozím nastavení nevypadá stínování vyrenderované plochy příliš dobře. Kliknutím na volbu Render v horní liště nástrojů dojde k otevření nabídky, kde zvolíme možnost Vlastnosti renderu. Otevře se nové okno, kde v levém seznamu možností klikneme na Síť. Zde můžeme provést nastavení kvality renderovací sítě. Ve výchozím stavu bývá většinou nastavena volba hrubého a rychlejšího renderování. Přepnutím na možnost hladké a pomalejší kvality dosáhneme sice lepšího výsledku, ale pořád to není úplně dobré. Proto zvolíme volbu uživatelského nastavení, čímž získáme možnost nastavovat jednotlivé parametry kvality renderování. Dle článku Jana Slaniny (Slanina, 2006) pomůže nastavit minimální počet výchozích obdélníků na nějakou velkou hodnotu, třeba 100 000 až 400 000 a dále je potřeba vypnout volbu zjemnění síťě. Potom stačí pouze potvrdit změny tlačítkem Ok a terén se vyhladí. Pro lepší vzhled okrajů je dále dobré v nastavení renderování nastavit možnost antialiasingu (vyhlazování) na nějakou vyšší hodnotu. Na obrázku 20 vidíme, jak by měl terén vypadat po správném nastavení renderování Rhina. Levý obrázek ukazuje, jak bude vypadat renderovaný výstup s výchozím nastavením, kdy neprovedeme žádné změny v nastavení, a pravý obrázek ukazuje renderovaný výstup při správném nastavení renderování podle výše uvedených parametrů.
5.2 Postup tvorby terénu 39 Obr. 20: Ukázka terénu před optimalizací nastavení renderování Rhina a po ní Po nastavení renderování Rhina bude dalším krokem vyrenderování obrázku s terénem. Začneme tím, že v jednom z pohledů na krajinu (například v perspektivě) zvolíme vhodný pohled na vytvářený terén. To uděláme tak, že přesuneme kurzor myši do daného pohledu, klikneme a držíme pravé tlačítko myši a pohybem myší pak otáčíme terénem v libovolném směru. Pro přiblížení nebo oddálení pohledu na terén můžeme použít kolečko myši. Po nalezení vhodného pohledu provedeme vlastní vyrenderování terénu, které spustíme kliknutím na Render v horní liště nástrojů a v následující nabídce opět zvolíme Render. Tím se otevře okno a začne proces renderování, který může chvíli trvat v závislosti na složitosti terénu a nastavení parametrů kvality renderování. Jakmile bude terén vyrenderovaný, můžeme provést jeho uložení. To provedeme kliknutím v horní liště renderovacího okna na Soubor a dále na Uložit jako. Zde máme k dispozici poměrně velký výběr formátů, pomocí kterých si uložíme výsledný vyrenderovaný terén jako obrázek. Tento krok je dobré udělat až úplně nakonec, jelikož takto uložený terén do obrázku již nelze nijak dále upravovat a domodelovávat v Rhinu. Aby bylo možné s terénem dále pracovat, je potřeba provést jeho uložení v Rhinu do formátu 3dm. Tímto jsme úspěšně dokončili vytváření modelu terénu vytvořeného z fraktálu Mandelbrotovy množiny. Pokud jsme dodrželi správný postup, zejména v části převodu obrázku fraktálu na plochu pomocí ZSurfu, měl by se výsledný terén podobat terénu skalnatého pobřeží (viz příloha A). Samozřejmě jsme tímto postupem vytvořili pouze holý terén, pokud bychom chtěli vytvořit plnohodnotný model krajiny, museli bychom s terénem ještě dále pracovat. Pro Rhinoceros existuje pro tento účel nadstavba Flamingo, která přináší spoustu nových funkcí. Flamingo obsahuje velké množství textur fotorealistických povrchů, s kterými by bylo vhodné povrch terénu otexturovat. Dále je zde velké množství objektů rostlin a stromů, možnost vytvoření atmosféry, mraků, slunce a další možnosti, s kterými je možné vytvořit z terénu plnohodnotnou krajinu.
6 ZÁVĚR 40 6 Závěr Cílem této práce stanoveným v počátku bylo navrhnout vhodnou metodiku pro generování virtuálního fraktálního terénu a provedení jeho vizualizace ve zvoleném grafickém nástroji. Pro splnění daného cíle práce bylo provedeno důkladné teoretické probrání fraktálů. Úspěšně jsme vysvětlili pojem fraktálu, jeho základní vlastnosti a provedli jsme rozdělení fraktálů podle jejich konstrukce. Dále následovalo důkladné popsání a porovnání grafických nástrojů pro modelování terénu. Zjistili jsme, že každý nástroj k tomuto problému přistupuje trochu odlišně a každý nám nabízí jisté výhody a nevýhody oproti jiným programům. Nejlepší a nejpřehlednější byl program Vue, který umožňoval velice rychle a jednoduše vytvořit nejen terén, ale i celkovou krajinu se vším, co k ní patří. Nevýhodou mohou být jen větší nároky na výkon a potřebné místo v počítači. Následně jsme porovnávali fraktály z hlediska vhodnosti pro daný typ terénu. Probrali jsme známé typy fraktálů a zjistili jsme, že s každým fraktálem je výsledek odlišný. Nyní již dokážeme při modelování konkrétního terénu spolehlivě určit, jaký fraktál bychom měli použít. Díky těmto postupům jsme následně mohli přejít k samotné metodice generování terénu s pomocí ZSurfu. Tento program byl zvolen právě proto, že slouží přímo pro převádění obrázků na plochy. Úspěšně jsme popsali krok za krokem celý postup vytvoření terénu z obrázku fraktálu až po jeho vizualizaci. Závěrem lze říci, že se nám povedlo navrhnout postup, dle kterého je možné vytvořit konkrétní model terénu, a tím jsme splnili cíl této práce. 6.1 Možnosti rozšíření Tuto práci by bylo možné do budoucna rozšířit o postup dodělání holého terénu na reálnou krajinu v Rhinu pomocí nádstavby Flamingo, avšak je možné použít výše zmíněný program Vue, který tuto činnost zvládá automaticky a bez nutnosti dalších nadstavbových programů. Dále by bylo možné práci rozšířit o další typy fraktálů k porovnání z hlediska typů modelovaných krajin, jelikož fraktálů je velké množství. 6.2 Přínos práce Přínosem práce může být využití zejména v geografických informačních systémech, kde generování fraktálního terénu může usnadnit vizualizaci konkrétní krajiny, která by musela být jinak složitě vytvářena ručně. Dále je možné využití v odvětví počítačových her a různých simulátorů, kde jsou většinou potřebné velké plochy fiktivního terénu, jejichž ruční tvorba by byla velice zdlouhavá a náročná. Příkladem můžou být různé letecké, železniční nebo silniční simulátory.
7 LITERATURA 41 7 Literatura Žára, J. a kol. Moderní počítačová grafika. 2. vyd.. Brno: Computer Press, 2004. 609 s. ISBN 80-251-0454-0. Tišnovský, Pavel. Fraktály v počítačové grafice [online]. 2005 [cit. 2010-01- 30]. Dostupný z WWW: <http://www.root.cz/clanky/fraktaly-v-pocitacovegrafice-i/>. Zelinka, Ivan, Včelař, František, Čandlík, Marek. Fraktální geometrie: principy a aplikace. 1. vyd. Praha: BEN, 2006. 160 s. ISBN 80-7300-191-8. Mandelbrot, Benoit. Fraktály: Tvar, náhoda a dimenze. Vyd. 1. Praha: Mladá fronta, a. s., 2003. 216 s. ISBN 80-204-1009-0. E-on software [online]. 2010 [cit. 2010-04-15]. Dostupné z WWW: <http://www.e-onsoftware.com/>. Planetside software [online]. c2009 [cit. 2010-04-22]. Dostupné z WWW: <http://www.planetside.co.uk/>. Slanina, Jan. Rhino3D.cz [online]. 30. 3. 2006 [cit. 2010-05-12]. ZSurf tvorba plastických reliéfních ploch z obrázku. Dostupné z WWW: <http://www.rhino3d.cz/clanky/zasuvne-moduly/zsurf-tvorba-plastickychreliefnich-ploch-z-obrazku.html>.
Přílohy
A UKÁZKY MODELŮ FRAKTÁLNíHO TERÉNU 43 A Ukázky modelů fraktálního terénu Obr. 21: Perspektivní pohled na vymodelovaný fraktální terén pobřeží z Mandelbrotovy množiny Obr. 22: Perspektivní pohled na vymodelovaný fraktální terén pobřeží z Mandelbrotovy množiny