Západočeská unierzia Plzni Fakula aplikoaných ěd Kaedra informaik a ýpočení echnik DIPLOMOVÁ PRÁCE Plzeň 2009 Zdeněk Prokop
Západočeská unierzia Plzni Fakula aplikoaných ěd Kaedra informaik a ýpočení echnik Diplomoá práce Simulace poěrnosních liů na ýškoé map Plzeň 2009 Zdeněk Prokop 2
Prohlašuji že jsem diplomoou práci pracoal samosaně a ýhradně s použiím cioaných pramenů. V Plzni dne Zdeněk Prokop i
Absrak Simulaion of climaic influences on heigh fields This diploma hesis is focused on a simulaion of erosion. Informaion abou some erosion echniques has been gahered and hese echniques are described in deail. Librar wih chosen erosion mehods was creaed. This librar conens classes for errain creaion errain represenaion and errain isualizaion. This work also includes a program for librar demonsraion. I presen here a new mehod for isual wind erosion. ii
Obsah 1. Úod... 1 2. Základní daoé srukur... 3 3. Eisující meod... 6 3.1. Tepelná eroze... 7 3.1.1. F. Kenon Musgrae Craig E. Kolb a Rober S. Mace... 7 3.1.2. Bedřich Beneš Rafael Forsbach... 9 3.1.3. Jacob Olsen... 9 3.2. Vodní eroze... 11 3.2.1. F. Kenon Musgrae Craig E. Kolb a Rober S. Mace... 11 3.2.2. Bedřich Beneš Rafael Forsbach... 12 3.2.3. B. Neidhold M. Wacker O. Deussen... 16 3.2.4. X. Mei P. Decaudin B.-G. Hu... 20 3.3. Věrná eroze... 24 3.3.1. Bedřich Beneš Tone Roa... 25 3.4. Shrnuí... 27 4. Implemenace... 29 4.1. Daoé srukur... 30 4.2. Váření erénu... 32 4.3. Reprezenace erénu a erozní meod... 33 4.3.1. Tepelná eroze... 34 4.3.2. Vodní eroze... 35 4.3.3. Věrná eroze... 38 4.4. Vizualizace erénu... 42 5. Tesoání... 45 6. Záěr... 49 Lieraura... 50 Příloha... 52 iii
1. Úod Modeloání realisick padajícího erénu je předměem zkoumání počíačoé grafik již spousu le. Vzniklo mnoho různých algorimů jak erén generoa éměř žd se šak skládají ze dou kroků. Nejpre se generuje hrubý ar krajin a poé se upraí různými erozními algorim. Pro generoání hrubého aru krajin se poměrně časo užíá frakální geomerie například náhodná procházka random walk kerá chází z Brownoa pohbu dále meoda náhodného přesouání sředního bodu random midpoin dispacemen jejíž podsaa spočíá rekurziním dělení úsečk na poloinu a posouání prosředního bodu o nějaké náhodné číslo nebo meoda náhodných poruch random fauls meod kde se cklu proádí rozdělení map na dě čási nejčasěji přenuím přímkou a následné ýšení jedné čási a snížení druhé o nějakou sejnou náhodnou hodnou. Samozřejmě eisuje i spousa dalších meod. Podrobnější informace o zmíněných meodách a odkaz na další naleznee knize [ZBSF04]. Formoání skuečného erénu je ale oliňoáno obroským množsím klimaických liů jako jsou ír oda eploa nebo různé chemické proces. Proo se pro dodání šší ěrohodnosi generoané krajině použíají na generoaný erén erozní algorim. Práě ěmio algorim se zabýá ao práce. Erozní algorim lze rozděli do ří základních kaegorií epelná odní a ěrná eroze. Tepelná eroze ermoeroze je proces při kerém liem elkých eploních rozdílů dochází k opadáání čáseček maeriálu čímž dochází k hlazoání porchu a orbě sahů keré mají určiý sklon záisejícím na lasnosech erodoaného maeriálu na úpaí hor. Vodní erozi můžeme rozděli na da druh globální a lokální. Globální odní eroze je způsobená dešěm kd dopadem dešťoých kapek dochází k odděloání malých půdních čásic. Pokud množsí srážek přeýší infilraci půd dojde ke spláchnuí čáseček půd ekoucí odou z šších mís do nižších. Lokální odní eroze je způsobena proudící odou kerá způsobuje drolení čáseček maeriálu a může se projeoa jako schlé řečišě meandr nebo dela. Věrnou erozi lze rozděli na dě fáze. Prní je obrus způsobený řením ěrem ransporoaného maeriálu je záislý na síle a úhlu dopadajícího ěru a na množsí a hrubosi unášeného maeriálu. Druhou je pak odnos spkého zěralého maeriálu. Věrná eroze se z ěcho ří pů erozí použíá počíačoé grafice nejméně slouží předeším pro modeloání písečných dun. 1
Cílem éo práce blo prosudoa a porona eisující erozní algorim z nich bra podmnožinu s co nejširším spekrem pokrí a oři modulární programoé baení. Programoé baení a brané meod bl implemenoán prosředí.net konkréně jazce C#. 2
2. Základní daoé srukur Před ím než začneme s popisem a podrobnějším rozebíráním jednoliých erozních algorimů b asi blo dobré se zmíni o základních daoých srukurách keré se použíají pro reprezenaci erénu a se kerými pak ed musí každý erozní algorimus pracoa. Asi nejčasěji použíanou daoou srukurou pro reprezenaci modeloaného erénu je praidelné ýškoé pole regular heigh field někd aké označoané jako ýškoá mapa. V podsaě se jedná o dourozměrné pole jehož prk předsaují konkréní ýšku na dané pozici odkud znikl náze. Tao reprezenace má několik ýhod ale aké spousu neýhod. Asi nejěší ýhodou ýškoých map je jejich malá náročnos na paměť naopak elkou neýhodou je že ao srukura není plně rojrozměrná umožňuje reprezenoa pouze spojiou plochu proo se aké někd označuje jako 25 rozměrná. Pomocí ýškoých polí není například možné oři různé jeskně skalní přeis apod. Pro zobrazení se obkle ao pole přeádějí na síě rojúhelníků. Z pohledu erozních algorimů má ao srukura ýhodu om že algorim s ní pracující jsou elmi rchlé oproi jiným daoým srukurám. Na druhou sranu se ale zase předpokládá že se buď celý erén skládá z jednoho homogenního maeriálu nebo každý prek ješě dále obsahuje celou řadu další paramerů jako například množsí zde držené od schopnos maeriál rozpoušě se e odě množsí minerálů sílí ad. a předpokládá se že se z jednoho homogenního maeriálu skládá celý konkréní sloupec erénu. Obě možnosi ale přinášejí značné omezení proože se zrácí informace o podložních srukurách daného maeriálu. Další možnou reprezenací erénu jsou oel což jsou prk praidelné řídimenzionální mřížk prosoru. Voel jsou obdobou pielů dourozměrné grafice. Umožňují reprezenaci plně rojrozměrných erénů mohou zachi liboolné porch a členiosi. Každý oel předsauje malou 3D krchličku kerá si udržuje informace o určiých sých lasnosech podobným ěm z ýškoých polí druh maeriálu množsí držené od odolnos prosředí ad. Technik založené na oelech dáají lepší ýsledk a mají šší přesnos. Jsou elmi silným násrojem proože umožňují náhlé změn srukur. Kůli omu jsou ale aké elmi pomalé. Také eliká daoá náročnos éo daoé srukur a její pomalé zobrazoání jsou značnými neýhodami. Terén lze reprezenoa aké pomocí síě rojúhelníků. Takoáo reprezenace umožňuje jádři plně rojrozměrné objek ale pouze jako ploch o niřní srukuře se nic nedozíme. Nejěší ýhodou éo reprezenace je bezpochb rchlos jejího zobrazoání 3
eisují dokonce adapiní zobrazoací algorim keré umožňují podle zadané úroně deailu dnamick generoa zjednodušené síě rojúhelníků iz [ZBSF04]. Jak jsem se už ýše zmínil ýhodou ýškoých polí je jejich malá daoá náročnos a elká rchlos algorimů s nimi pracujícími neýhodou pak že neumožňují uchoáa informace o podložních srukurách. Na druhou sranu oeloá reprezenace informace o podložních srukurách uchoáa umí ale je příliš náročná na paměťoé prosředk práce s ní je pomalá a akéž je pomalé její zobrazoání. Beneš a Forsbach proo [BF01] narhli z. rsenou daoou reprezenaci kerá je kompromisem mezi ýškoými poli a oeloými reprezenacemi. Inspiroali se geologickými průzkum půd. Podzemní srukura půd se skládá z různých rse maeriálů o různé loušťce kerá je ale obkle poměrně eliká a pro reprezenaci pomocí oelů je o plýání da. Proo se rozhodli použí nějaký druh ineraloé srukur kerou lze chápa jako RLE kompresi sloupců oeloé srukur. Konkréně supní erén uložili do dourozměrného pole jehož každý prek se skládá z ýšk porchu erénu na daných souřadnicích a jednorozměrného pole keré obsahuje loušťk jednoliých podložních rse a informace o maeriálech ze kerých jsou o rs složen. Srukura ohoo jednoho prku pole padá podle [BF01] ako: Tpedef sruc { ProperiesT daa [MAX_LEVEL]; floa heigh; } ElmT; //one elemen of he arra MAX_LEVEL je konsana určující elikos pole a ím pádem aké omezuje maimální poče rse. Pokud bchom se chěli omuo omezení hnou můžeme použí míso pole spojoý seznam. V každém prku pole daa se uchoáají šechn paramer daného maeriálu pořebné pro erozi jako jsou například husoa maeriálu jeho nasákaos schopnos se usazoa a další. Můžeme si šimnou že pokud b bl maimální poče rse éo daoé srukur omezen pouze na jednu získáme ím klasickou ýškoou mapu. Proo můžeme brá uo srukuru jenom jakési rozšíření ýškoé map keré nám umožní dík informaci o podložní srukuře půd erén lépe erodoa proo jsem si uo srukuru bral pro reprezenaci erénu se kerým budu dále pracoa a nadále při řešení budu uažoa pouze ji. Beneš a Forsbach ošem uo soji srukuru ješě dále doplnili o o že jednolié rs se mohou skláda nejen ze zemin ale aké z od nebo plnu což umožňuje reprezenoa 4
jeskně přeis nebo dír což je další ýhoda éo reprezenace zděděná z oelů. Mým úkolem ale blo zabýa se erozními algorim ýškoých map keré o úar zobrazi neumožňují proo jsem se ímo lepšením příliš nezabýal a předpokládal jsem že se jednolié rs budou skláda pouze z pených maeriálů. 5
3. Eisující meod Modeloání erénu je předměem počíačoé grafik už dlouhou dobu. Zpočáku se erén generoal hlaně pomocí meod užíajících frakál. Například roce 1988 publikoali Kelle a koleki článku [KMN88] meodu kerá užíá frakáloou inerpolaci ke spojení předdefinoaných řek a údolí. Na uo meodu později naázali i Belhadj a Audiber [BA05]. Terén generoané pomocí frakálních meod ale měl u neýhodu že pokud bchom je oočil ak ab rcholk hor ořil údolí a naopak údolí ořila rcholk hor erén b padal pořád sejně. Ve skuečné přírodě akoouo lasnos mají možná jen elmi mladá pohoří u ěšin osaních hor se ale ar údolí a ar rcholků hor podsaně liší a o dík působení erozních procesů. Praděpodobně asi prní algorimus pro izuální simulaci eroze předsail Musgrae a koleki roce 1989 [MKM89] kde uedl algorim pro epelnou a odní erozi keré použil na erén generoaný pomocí frakáloé echnik. Oběma ěmo algorimům se budeme podrobněji ěnoa dále kapiolách 3.1.1. a 3.2.1. Algorimus epelné eroze pak roce 2001 dále rozšířili Beneš a Forsbach [BF01] ak že půodní algorimus pro ýškoou mapu upraili pro sojí lasní daoou srukuru kerá dokáže uchoáa informace i o podložních rsách erénu. Jejich meoda je popsána kapiole 3.1.2. Kapiola 3.1.3. popisuje opimalizaci algorimu epelné eroze kerou narhnul roce 2004 Jacob Olsen [Ols04]. I na algorimus odní eroze z [MKM89] Beneš s Forsbachem naázali. A o roce 2002 článku [BF02] kde noě přidali k procesu eroze i krok pařoání a celý proces rozdělili na krok keré jsou na sobě nezáislé a umožňují ak paralelní zpracoáání. Tako upraený algorimus je popsán kapiole 3.2.2. Vodní erozi založenou na silách kerými působí ekoucí oda popsal roce 1998 Chiba s kolekiem článku [CMF98]. Na uo práci naázala spousa dalších auorů například B. Neidhold M. Wacker a O. Deussen článku [NWD05] z roku 2005 uo erozní meodu rozšířili o rsenou daoou srukuru a aké uo meodu zrchlili zjednodušením ýpoču rchlosi od. Podrobnějším popisem éo meod se zabýá kapiola 3.2.3. Dalšími kdo naázali na [CMF98] bli roce 2007 Xing Mei Philippe Decaudin a Bao-Gang Hu keří článku [MDH07] pro ranspor od užili z. pipe model a ýpoče eroze přeedli z CPU na GPU čímž ho aké poměrně ýrazně urchlili. I ao meoda je zde podrobněji popsána a o kapiole 3.2.4. Implemenace odní eroze kerá je založená na silách pro GPU je 6
popsána aké [ASA07] neužíá ale pro ranspor od pipe model a pracuje s rojrozměrným ekorem rchlosí od. Článek kerý b se přímo zabýal ěrnou erozí jsem bohužel nenašel. Eisuje ale pár akoých keré se zabýají modeloáním poušních krajin zejména pak písečných dun. Jedná se ed spíše jen o přesun písku ěrem což je pouze součás ěrné eroze. Chbí zde obrušoání hornin ímo unášeným pískem ab se jednalo o plnohodnonou ěrnou erozi. Jedním z článků zabýajících se modeloáním poušní krajin je [BR04]. Způsob simulace ransporu písku éo práci je popsán kapiole 3.3.1. Další práce keré se ouo émaikou zabýají jsou například [ON00] a [ON03]. Jak již blo zmíněno úodu erozní algorim můžeme rozděli do ří základních skupin na epelnou odní a ěrnou erozi. Každou skupinou zlášť se budou zabýa jednolié podkapiol a každé budou ueden někeré již eisující erozní algorim. Erozní algorim mohou bý popsán přesunem maeriálu mezi jednoliými prk erénu. To jadřuje následující diferenciální ronice: Q ds Qou 3.1 d in = kde Q in je celkoé množsí maeriálu keré daný prek získá od osaních prků a Q ou je celkoé množsí maeriálu keré daný prek předá osaním prkům. S je objem maeriálu uniř ohoo prku a je čas. Různé algorim použíají různé přísup k řešení éo ronice ok maeriálu pak záisí na jeech keré algorimus simulují. 3.1. Tepelná eroze Tepelná eroze je proces při kerém liem elkých eploních rozdílů dochází k opadáání čáseček maeriálu čímž dochází k hlazoání porchu a orbě sahů keré mají určiý sklon záisejícím na lasnosech erodoaného maeriálu na úpaí hor. 3.1.1. F. Kenon Musgrae Craig E. Kolb a Rober S. Mace Tao podkapiola chází z článku [MKM89]. Algorimus kerý Musgrae a koleki narhli simuluje rozrušoání maeriálu kerý poé padá a hromadí se na úpaí hor. Váří sah se sejným sklonem je rchlý a má jednoduchou implemenaci. ýškou Algorimus funguje následoně: každém časoém kroku 1 se poronáá rozdíl mezi a z předchozího kroku každého rcholu a každým sousedním rcholem u 7
s globálním sahoým úhlem T alus angle. Kdž je spočíaný sah ěší než sahoý úhel přesune se nějaká finí čás c rozdílu na souseda. To jadřuje následující zah: > = u u u u u u a T a a T a a c a T a a a : : 1 3.2 Erodoaný maeriál je důležié rozmísi spraedliě na šechn sousední prk keré jsou menší ed podle poměrů rozdílů ýšk erodoaného prku a ýšk sousedů. Výška souseda se pak spočíá podle následujícího zahu: oal u u u d a a T d c a a = ma 1 3.3 kde d ma je rozdíl mezi ýškou práě erodoaného prku a ýškou jeho nejnižšího souseda a d oal je celkoý souče rozdílů ýšk daného prku a ýšk jeho nižších sousedů. Obrázek 3.1 znázorňuje zjednodušený příklad přesunu maeriálu uedený [Ols04] maeriál pořebuje přemísi pouze do jedné sousední buňk. V prním kroku a o znamená že maeriál se bude přesoua z na pokud c = 1 bude a. T a a h h d = = = 1 0 0 1 1 a 0 2 a 0 T a a h h d > = = 2 0 0 2 2 1 0 1 1 1 a h a = = T a a = 0 2 1 Obrázek 3.1: Příklad přesunu maeriálu obrázek pochází z [Ols04] 8
3.1.2. Bedřich Beneš Rafael Forsbach Bedřich Beneš a Rafael Forsbach naimplemenoali [BF01] předchozí algorimus eploní eroze kerý bl naržen pro ýškoé map pro jejich rsenou daoou srukuru kerá bla popsána e 2. kapiole. Tím ho obohaili o někeré noé ěci keré si nní popíšeme. Oproi půodnímu algorimu se liší ýpoče gradienu kd se musí nejpre počía celkoá ýška šech rse daném prku a až pak ji poronáa se soused. Při erozi daného prku se množsí maeriálu k přenesení počíá z nejrchnější rs. Pokud se přenáší íce maeriálu než rsa obsahuje nasaíme jí případě reprezenace rse pomocí pole nuloou ýšku nebo při použií spojoého seznamu ji odsraníme. Dále pokračujeme rsou kerá se nachází pod ouo odsraněnou rsou. Erozi je možné aplikoa nejen na porch erénu ale aké na podporchoé jeskně u nichž umožňuje aké simuloa padání maeriálu ze sropu. Oproi ýškoým mapám aké umožňuje nasai lasnosi erodoaného maeriálu různé od lasnosí půodního maeriálu. Obkle neusazený maeriál je oiž elmi husý kdž se ale eroduje ak je pohb změněn na prach a en má úplně jiné lasnosi než půodní maeriál. 3.1.3. Jacob Olsen Jacob Olsen cházel z předchozího algorimu epelné eroze z podkapiol 3.1.1. a [Ols04] narhl jeho opimalizaci. Půodní implemenace pracuje s hodnoami d ma a d oal keré se určují následujícím způsobem: d i = h - h i ; if d i > T { d oal = d oal d i ; if d i > d ma d ma = d i ; } Pokud e ýše uedeném posupu použijeme míso Mooreoa okolí Von Neumannoo okolí sníží se poče podmínek na poloinu. Proože je množsí přenášeného maeriálu úměrné d ma přesune se dík Von Neumannoě okolí sejné množsí maeriálu za poloiční čas. 9
Algorimus může bý dále urchlen ím že elmi zjednodušíme přenos erodoaného maeriálu. Míso oho abchom přenášeli na každého nižšího souseda čás maeriálu úměrnou k d d i oal kde d i je rozdíl ýšk erodoaného prku a ýšk jeho i-ého souseda d i < T a d oal je souče šech d i ěších než T přeneseme šechen erodoaný maeriál pouze na nejnižšího souseda. Neýhodou ohoo zjednodušení je že může bý přenášeno méně maeriálu na každý prek. To je ale čásečně kompenzoáno ím že se přenáší maimální množsí maeriálu jaké je jen možné ed: d ma h = 3.4 2 Přenesení ohoo množsí způsobí o že se ýšk erodoaného prku a jeho nejnižšího souseda ronají. V půodní implemenaci z předchozí kapiol se nepřesouá celé množsí maeriálu určeného k přesunu ale pouze jeho čás abchom se hnuli oscilacím. Podobný problém b nasal i zde pokud b například čři soké hodno obklopoal hlubokou díru nedošlo b pouze k jejímu plnění ale ořila b se zde soká špička. To je způsobeno ím že ýškoá mapa zůsáá nezměněna dokud nejsou zpracoán šechn její prk daném čase. Proo abchom se ěmo oscilacím hnuli musíme změn ýškoé map proádě okamžiě po dokončení ýpoču ýšk každého konkréního prku což nám i elmi mírně zýší ýpočení rchlos. Dále ješě Olsen zjisil při eperimenech s různými druh okolí že upraená erze Von Neumannoa okolí zobrazená na obrázku 3.2 c dáá ýsledk o rošku podobnější půodní implemenaci. Obrázek 3.2: a Mooreoo okolí b Von Neumannoo okolí c upraené Von Neumannoo okolí obrázek pochází z [Ols04] 10
3.2. Vodní eroze Vodní erozi můžeme rozděli na da druh globální a lokální. Globální odní eroze je způsobená dešěm kd dopadem dešťoých kapek dochází k odděloání malých půdních čásic. Pokud množsí srážek přeýší infilraci půd dojde ke spláchnuí čáseček půd ekoucí odou z šších mís do nižších. Lokální odní eroze je způsobena proudící odou kerá způsobuje drolení čáseček maeriálu a může se projeoa jako schlé řečišě meandr nebo dela. 3.2.1. F. Kenon Musgrae Craig E. Kolb a Rober S. Mace Jak již jsem uedl na začáku éo kapiol Musgrae a koleki článku [MKM89] narhli jak algorimus pro epelnou erozi ak i algorimus pro odní erozi. Teno algorimus odní eroze simuluje nános od na prk ýškoé map což simuluje déšť. Síla eroze od je funkce elikosi jejího objemu a množsí práě unášeného sedimenu. Dále umožňuje pohb od i se zachceným erodoaným maeriálem na nižší sousední prk. Každý prek ýškoé map obsahuje ýšku a objem od w a množsí sedimenu rozpušěného e odě s čase. V každém časoém kroku se přelije nadbek od se sedimenem z prku do každého souseda u. Množsí od keré se přelije w je definoáno ako: u w w a w a u w = min 3.5 Pokud w 0 usadí se čás sedimenu rozpušěného e odě prku : jinak: a s 1 1 = a = K 1 K d s s d w 1 = w w u u w 1 = w w c = K w s c 3.6 3.7 kde c s je kapacia přemisťoané od w konsana K c je kapacia sedimenu kerá určuje maimální množsí sedimenu rozpusné jednoce od a K d je konsana nánosu kerá rchlos s jakou se rozpušěný sedimen usazuje. Kdž se přelije sedimen z do u odsraníme nejýše oo množsí sedimenu z s 1 s u u přidáme ho do. Kdž je c s ěší než čás rozdílu je odečena od a je přidána k a s a s 1 11
což předsauje erozi zemin z bodu. Nakonec se čás sedimenu zbýající prku usadí ak jak již blo uedeno ýše. Ted pokud s c s proedeme o operace: jinak: s s u 1 a s s 1 1 u 1 a 1 1 = s u = a = = s c s K 1 K u = a = 0 d d s cs s c s Ks K c s s s cs s s 3.8 3.9 K s je konsana kerá určuje měkkos zemin a umožňuje ak oládání rchlosi jakou je zemina přeměňoána na sedimen. Usazený sedimen je přičen k ýšce daného prku. Během ýše popsaného procesu se oda s rozpušěnou zeminou přemisťuje z šších poloh erénu do nižších kde se posupně usazuje. V plně dourozměrné implemenaci musíme sejně jako u epelné eroze podkapiole 3.1.1. disribuoa odu s rozpušěným sedimenem do šech nižších sousedních prků akoém poměru kerý je úměrný rozdílu ýšek. 3.2.2. Bedřich Beneš Rafael Forsbach Bedřich Beneš a Rafael Forsbach předsaili článku [BF02] algorimus odní eroze kerý se skládá ze čř různých na sobě nezáislých kroků což může bý značná ýhoda například při paralelizaci. Například předešlé implemenaci z podkapiol 3.1.1. bl o proces simuloán jako souisející kd usazoání maeriálu blo funkcí přenosu od. Prním krokem je ýsk noé od kd se oda objeí na nějakém mísě nebo mísech například liem dešě nebo z nějakého odního zdroje. Druhým krokem je že oda rozrušuje erén pod sebou a zacháá jej. To může bý způsobeno například prouděním od nebo rozpoušěním. Třeím krokem je pak přemísění od se zachceným sedimenem podle niřních a nějších sil kd asi nejdůležiějším fakorem přispíajícím k odnímu oku je graiace. Ačkoli niřní síl hrají aké důležiou roli omo přísupu zachcen nejsou. Nánosoý proces při kerém oda necháá unášený maeriál určiých mísech je záislý na dou hlaních fakorech. Prním je en že oda zpomaluje akže ěžké čásečk maeriálu nemohou bý přenášen na liboolné míso. Druhým fakorem je pak nadbek objemu odního sedimenu kerý je způsoben pařoáním od což je poslední črý krok. 12
Pro implemenaci algorimu Beneš s Forsbachem použili rsenou srukuru da blíže je popsána e 2. kapiole ale pro zjednodušení popisují algorimus na ýškoé mapě proo si nní aké uedeme eno popis algorimu pouze pro ýškoou mapu. Obrázek 3.3: Zobrazení rcholů a maeriálu. Leý sloupec je prozkoumáaný rchol a praý je předsaiel sousedního rcholu. Obrázek pochází z [BF02] Označme si ed ýšku maeriálu na dané pozici písmenem m objem od ohoo prku w a množsí e odě rozpušěné zemin s daném čase. Čas 1 pak znamená liboolný časoý krok nebo jednoduše jiný sa ssému nikoli zýšení času o jednu sekundu nebo hodinu. Dále pro jednoduchos budeme předpokláda pouze jeden sousední prek jehož ýšku maeriálu označíme m objem od w a množsí e odě rozpušěné zemin s. Příklad značení je ueden na obrázku 3.3. V prním kroku což je ýsk noé od předpokládáme že se oda může objei buď případě odního zdroje lokálně na nějaké pozici anebo může posihnou elké oblasi erénu e formě dešě. V obou ěcho případech je úroeň od prku jednoduše zěšena o koeficien K r kerý udáá množsí noé od keré přibýá jednom časoém kroku. To je popsáno následující ronicí: w 1 = w K r 3.10 K r sice může bý konsana odpoídající konsannímu příoku od ale k dosažení lepších ýsledků simulace b měl eno koeficien respekoa čas i pozici P prosoru ed bý funkcí K r P. Například přírodě odpoídá inenzia dešě daném bodě záislosi n čase funkci e aru zonu. Kdž se eď podíáme na črý krok jímž je pařoání od zjisíme že množsí pařené od záisí na ploše odní hladin kerá je pro reprezenaci ýškoou mapou konsanní a na eploě kerou budeme pokláda aké za konsanní a bude jadřoa průměr eplo e elkém časoém ineralu. Vpařoání od je popsáno ronicí: 13
dw = Kew 3.11 d kde K e je koeficien pařoání a odpoídá rchlosi pařoání od daném časoém rozsahu. Z řešení ronice 3.11 plýá že množsí od daném rcholu záisí pouze na počáečním objemu od w 0 a na čase. Voda čase ubýá eponenciálně. To jadřuje zah 3.12. w K e = w 0 e 3.12 V prakické implemenaci b úroeň od nikd nedosáhla úplné nul proo se zaádí prahoá hodnoa T. Kdž množsí od klesne pod uo prahoou hodnou nasaíme ji na nulu což nám umožní simuloa schání někerých oblasí. Upraený zah 3.12 má formu: K e w = w0 e T 3.13 Beneš a Forsbach se nezabýají erozí založenou na silách ale pouze nánosem maeriálu kerý je e odě rozpušěný. Také nesimulují usazoání maeriálu způsobené ím že čásečk maeriálu dosáhnou dna a nemůžou bý dále přenášen ale použíají jinou echniku usazoání. Množsí zemin rozpušěné určiém objemu od nemůže přesáhnou úroeň nascení. Úroeň nascení S je jádřena ímo zahem: S = K w 3.14 s kde K s je koeficien nascení kilogramech na lir a říká že lir od může nés K s kilogramů maeriálu. Pokud je oda nascena a dojde k paření nějakého objemu od úroeň nascení se překročí akže odpoídající množsí maeriálu musí bý usazeno na dané pozici. Pomocí ronice 3.14 zjisíme úroeň nascení S poronáme ji s množsím maeriálu na dané pozici s a pokud bude s > S usadíme s S. Výsledná ýška pak ed bude: s S m 1 = m 3.15 Pro přemísění od při pomalém pohbu můžeme použí jednoduchý difúzní model e kerém se pro každou pozici e ýškoé mapě zjisí u kerých prků ýška od přesahuje soused a přesune se k sousedům keří jsou pod nimi. Výška kerá dosahuje úroně od akuální pozici je souče šech přispíajících množsí ed ýšk maeriálu a objemu od: samozřejmě pro ýšku souseda obdobně plaí: h = m w 3.16 h = m w 3.17 14
Pokud je rozdíl h h menší než nula akuální prek je díře a musíme čás nebo šechnu odu přesunou. Obrázek 3.4 ukazuje da důležié případ keré mohou nasa při přesunu od. V leé čási je znázorněna siuace před přesunem a praé čási po přesunu od. V horní čási je naznačen případ kd je nuné přesunou pouze čás od dolní čási je pak případ kd je pořeba přesunou z ššího prku eškerou odu. Obrázek 3.4: Da případ pohbu od. Leé kresb znázorňují siuaci před a praé po přesunu od. Obrázek pochází z [BF02] V plně dourozměrné implemenaci musí bý množsí od rozděleno úměrně k relainím rozdílům ýšek nižších sousedních rcholů. Označme ýšku akuálního rcholu písmenem h a ýšk sousedních rcholů h i pro i = 0 1 7 iz Obrázek 3.5. Obrázek 3.5: Indeoání sousedních rcholů Obrázek pochází z [BF02] Množsí od keré b mělo bý odsraněno w je rozděleno podle ronice: di wi = w 3.18 sum kde w i je množsí od keré se přesune do i-ého rcholu d i = h h i a zároeň h i < h a sum = di. 15
Dosažení ronoáh od ješě neznamená že je ssém sabilní. Sousedící prk mohou obsahoa úroně rozpušěných sedimenů keré se elmi liší. T b měli bý aké rozložen ronoměrně proo se použíá řešení keré je obdobou ýše popsaného odního přesunu jen se rozděluje koncenrace sedimenu e odě. 3.2.3. B. Neidhold M. Wacker O. Deussen Neidhold a koleki [NWD05] popisují další algorimus odní eroze kerý bere poaz i rchlos proudící od. Půodní algorimus odní eroze založený na silách ekoucí od popré předsail Chiba [CMF98]. Neidhold s kolekiem eno půodní algorimus pouze o něco rozšířili předeším o rsenou daoou srukuru. Proo zde budu popisoa až eno rozšířený algorimus míso oho půodního. Jak již blo řečeno algorimus pracuje opě s rsenou daoou srukurou a daa kerá se uchoáají pro každý prek map jsou: rojrozměrný ekor zrchlení a r a rojrozměrný ekor rchlosi od r množsí od F daném prku množsí rozpušěného maeriálu S a ýška erénu H. Pro simulaci pohbu od užíají zjednodušené Naier-Sokeso ronice. Výsledk jsou pak o něco méně fzikálně přesné ale ýpoče je o mnoho rchlejší. Pohb od je záislý na rchlosi r a zrchlení a r a ronice mají následující ar: r F &r r r r = a K A. = K A. m 3.19 r &r = Paramer K 0 1 umožňuje oliňoa elikos ření mezi odou a maeriálem. Například A pokud použijeme K A = 03 napodobujeme ím elmi rdý porch kerý rchlos klouzající od snižuje o 30 procen za jednoku času. aru: Proože pracujeme s diskréním časem budeme ronice 3.19 použía následujícím r r r r = a. K r r =. A r.. 3.20 Nejpre musíme počía ekor akuálního zrchlení a r jehož elikos je určena následujícím zorcem: r a = sinα.g 3.21 Kde g je elikos graiačního zrchlení g 9 81 zrchlení získáme pomocí gradienu I m.s -2 a α je úhel nejěšího spádu. Směr kerý určuje směr nejěšího spádu. 16
T I I I = 3.22 I je rozdíl ýšek dou počíaných prků a určují jejich zdálenos. Pro jednoduchou aproimaci gradienu můžeme zí pouze da prk e směru os a da prk e směru os je ale lepší pro ěší přesnos simulace počía deriace e směru a pro šechn sousední prk keré jsou nižší než akuální prek. Gradien pak padají následujícím způsobem: I7 0 I5 I7 I6 I5 I8 I4 I 1..8 = 3.23 0 0 I1 0 I3 I1 I2 I3 kde I = I pro n = 1 8. I počeme podle zorce 3.24 a I n značí I n n n I n kde n a n jsou souřadnice n-ého souseda počíaného prku. I = H K. F 3.24 Paramer K 0 1 říká jaké množsí od na daném prku bude oliňoa ýpoče F zrchlení. Například referoaném článku se použíal pro ýpoče K F následující zah: r = ma 1 005. 0 3.25 K F Výsledný gradien se spočíá jako průměr jednoliých deriací jak naznačuje zah 3.26. I = ag 3.26 I 1.. 8 F Teno způsob ýpoču gradienu je poměrně rchlý je šak hodný pouze pokud má oda elikou rchlos a gradien konkréním mísě ok příliš neoliňuje. Pro pomalý ok od se ale příliš nehodí proože umožňuje urchlení od pouze jednom směru a o e směru gradienu. U malé rchlosi od musíme ok rozděli a akceleroa jednoliých směrech šech nižších sousedů. To kerý způsob ýpoču použijeme rozhodneme podle určié hodně zolené prahoé rchlosi. Nní máme počíaný gradien a ed i určený směr zrchlení m r roině : r m = I 3.27 Pro získání rojrozměrného směru zrchlení M r ješě musíme započís osu z. Názorná siuace je idě na obrázku 3.6. 17
Obrázek 3.6: Výpoče zrchlení obrázek pochází z [NWD05] Vekor M r je projekcí ekoru m r do roin kolmé k normáloému ekoru erénu a procházející počíaným bodem. Plaí následující zah: T T I I I I M n M I I n = = = 2 2 2 2 0. 1 r r r r 3.28 Vekor zrchlení ed určíme následoně: M M g a r r r. sinα. = 3.29 Dík ýpoču ekoru M r můžeme ješě sin α nahradi podílem proilehlé sran a oděsn znázorněného rojúhelníku ed: M M z r = α sin 3.30 kde M z je souřadnice z ekoru M r. Výsledný zorec pro ýpoče zrchlení daném bodě ed je: M M g M M a z r r r r.. = 3.31 Nní máme spočíané zrchlení a můžeme se rái k ronicím 3.20 kde už můžeme dopočía rchlos r. Kdž známe r můžeme aké dopočía r ed oblas kam se 18
unášený maeriál dosane. Tao oblas nemusí jí přesně na jeden konkréní prek om případě se pak maeriál pomocí bilineární inerpolace rozdělí na čři nejbližší prk. Pokud označíme půodní množsí od cíloém prku F des a přenášené množsí od F add dosaneme noé množsí od cíloém prku F new pouhým sečením ěcho dou množsí: Pro noou rchlos od r new F = F F 3.32 se rchlosi áží podle množsí přenášené od. r r r = k. 1 k r des new new F k = F je půodní rchlos od cíloém prku r add k je áhoý koeficien. des add cíloém prku je ýpoče podobný jen s ím rozdílem že des new des add 3.33 je rchlos přenášeného množsí od a Je aké důležié po každém kroku simulace přida difúzní krok e kerém se rchlosi a množsí unášeného maeriálu mírně promíchají a ronají. To proedeme ak že akuální hodnou daného prku disribuujeme do jeho čř přímých sousedů. Teno difúzní krok je důležiý kůli omu ab neznikal oscilace. To b blo še o ransporu od nní se podíáme na samonou erozi kerá se skládá z rozrušoání maeriálu odou a jeho usazoání. Abchom zjisili jaké maimální množsí maeriálu může bý rozpušěno e odě na daném prku spočíáme si kapaciu od c S : c S KC r =.F. 3.34 K C je konsana kapaci kerá určuje jak mnoho maeriálu může bý rozpušěno jednokoém objemu od ekoucí jednokoou rchlosí a F je množsí přenesené od. Abchom rozlišili zda budeme maeriál rozpoušě nebo usazoa poronáme kapaciu c S s akuálním množsím rozpušěného sedimenu S. Pokud je následujícím způsobem: Pokud je K D H = H. S cs K D S = S S. S c S c S rozpoušíme podle následujícího předpisu: S 3.35 S > c S usazujeme 19
KS H = H. S cs KS S = S S. S cs 3.36 K 01 je usazoací konsana pomocí keré můžeme konroloa rchlos usazoání D maeriálu a K 0 1 je rozpoušěcí konsana pomocí keré můžeme konroloa rchlos rozpoušění maeriálu. S 3.2.4. X. Mei P. Decaudin B.-G. Hu V článku [MDH07] je popsán opě algorimus odní eroze založený na silách. Ten chází z erozního algorimu kerý je popsaný předchozí kapiole 3.2.3. ed z článků [CMF98] a [NWD05]. Pro ranspor od je zde ale použi z. pipe model kerý popsali James F. O Brien a Jessica K. Hodgins [OH95]. Celý proces eroze se skládá z následujících kroků. Nejpre se na mapě objeí nějaká oda. Ta může bý buď z odních zdrojů anebo z dešě. Pomocí pipe modelu se pak spočíá ok od a upraí se odní hladina a rchlos od každém prku ýškoé map. Upraené rchlosi od se dále užijí při erodoání nebo usazoání maeriálu a následném přenosu maeriálu rozpušěného e odě. Nakonec dojde k odpaření určié čási od. Pro každý prek ýškoé map je pořeba si zapamaoa následující údaje: ýšku erénu kerá bude dále označena b ýšku od nad erénem označenou d množsí rozpušěného L R T B maeriálu s odok od jednoliých směrech f f f f f rchlosi od = u r = a ekor horizonální. Obrázek 3.7 o hodno pořebné pro simulaci znázorňuje. Dále budou u jednoliých proměnných použíán inde pro rozlišení jakém čase se nacházejí. Například d jadřuje ýšku od čase a d jadřuje ýšku od dalším časoém kroku. Pokud bude inde číselný například d 1 nebo d 2 znamená o že se jedná o meziýpoč ýšk od někde mezi čas a. 20
Obrázek 3.7: Hodno pořebné pro simulaci obrázek pochází z [MDH07] Pro ýsk noé od daném časoém kroku je použi následující jednoduchý zah: d = d. r 3.37 1 kde r je množsí od keré přibude na daném mísě za jednoku času dík někerému odnímu zdroji nebo deši. Dalším krokem je ranspor od. Teno krok je z celé simulace asi nejsložiější. Jak již blo řečeno na začáku užíá se zde z. pipe model znázorněný na obrázku 3.8. Jednolié buňk si se sými přímými soused předáají odu skrz iruální rouru a pamaují si elikos ohoo oku. Obrázek 3.8: Pipe model obrázek pochází z [MDH07] V každém kroku se ok mění podle rozdílu hdrosaických laků uniř od buňkách připojených k iruální rouře. Poé se ýška hladin od upraí podle souču šech oků ze šech iruálních rour. Může nasa siuace kd jde ýška hladin záporná což nelze. V omo případě b se musela čás chbějící od sáhnou zpě od sousedů keří odu odebrali. Auoři článku eno problém řeší jiným způsobem. U každé buňk pracují pouze s ýsupními ok keré L R T B uchoáají proměnné f f f f f L = kde f znamená odok od z akuální buňk do leé sousední buňk o souřadnicích 1 podobně f R je odok z akuální buňk do praé soudní buňk o souřadnicích 1 f T je odok do horní sousední buňk 21
1 a je odok do spodní sousední buňk 1. Pokud nasane siuace kd souče šech ýsupních oků přešuje množsí od dané buňce je každý ýsupní ok úměrně zmenšen ak ab souče šech ýsupních oků bl roen nule. B f Pro ýpoče jednoliých oků je nejpre pořeba spočía rozdíl ýšek mezi danou buňkou a jejími soused podle následujících zahů: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = = = = d b d b h d b d b h d b d b h d b d b h B T R L 3.38 Tok pro danou buňku se pak spočíají podle zorce 3.39 kde i = {L R T B} A je plocha příčného řezu iruální rour g je graiační zrchlení a l je délka iruální rour. 2. 981 = s m g & = l h g A f f i i i... 0 ma 3.39 Po spočíání šech čř ýsupních oků dané buňce musíme ješě zjisi zda eisuje pro odok dosaek od a případně ýsupní ok zmenši. Spočíáme proo fakor zmenšení K podle zahu 3.40. = f f f f l l d K B T R L Y X... 1 min 1 3.40 Konsan l X a l Y znamenají zdálenosi bodů mřížk e směru os a e směru os. Pokud je K menší než jedna musíme ješě šechn čři ýsupní ok ímo fakorem násobi čímž dosaneme celkoý ýsledný ok kerý je roen množsí od dané buňce. Konečný ýsupní ok ed jadřuje eno zah:. f K f i i = 3.41 Pro buňk nacházející se na okrajích ýškoé map předpokládáme že oda nebude odéka mimo mapu proo b se měl ýsupní ok od ěcho buňkách kerý směřuje na neeisujícího souseda mimo mapu nasai na nulu. Nní kdž jsou spočíán šechn ýsupní ok šech buněk musíme uprai ýšku odní hladin a rchlos od. Změna odní hladin d je dána rozdílem celkoého příoku do dané buňk od šech sousedů a celkoým odokem z dané buňk. Výpoče jadřuje následující zorec: 22
= = B T R L i i T B L R Y X f f f f f l l d 1 1 1 1 3.42 Celkoá ýška od d 2 je pak dána součem půodní ýšk hladin d 1 a změn odní hladin d: 1 2 d d d = 3.43 Rchlos od můžeme spočía z průoku od danou buňkou. Průměrné množsí od keré projde danou buňkou za jednoku času e směru os je: u = r 2 1 1 f f f f W L R L R X = 3.44 Průměrné množsí od keré projde danou buňkou za jednoku času e směru os je: 2 1 1 = f f f f W B T B T Y 3.45 Pomocí ěcho průměrných množsí od už snadno dopočíáme ýslednou rchlos podle zorce 3.46 kde 2 2 1 d d d = je průměrná ýška od během prních dou kroků. =.. d l W d l W Y Y X X r 3.46 Po dokončení ransporu od začíná proces eroze a usazoání. Teno proces je elmi podobný omu z předcházející kapiol liší se jen neparně e ýpoču kapaci od pro rozpušěný sedimen. Opě probíhá ak že ekoucí oda pod sebou rozrušuje půdu zacháá její čásečk a unáší je na jiné míso kde dojde k jejich usazení. Rchlos ohoo procesu oliňuje hlaně elikos kapaci od C. Ta se zde počíá následujícím způsobem: sin K C C r = α 3.47 kde K C je konsana kapaci sedimenu kerou definuje užiael a α je úhel sklonu erénu daném mísě. Neýhodou ohoo ýpoču je že pokud je erén roný a úhel sklonu se blíží k nule je eroze minimální a ím pádem neznaelná. Teno problém se dá řeši ak že se nasaí prahoá hodnoa minimálního úhlu sklonu akže pokud je úhel sklonu menší než ao prahoá hodnoa je nasaen na uo hodnou. Pro rozhodnuí zda se bude erodoa půda nebo usazoa rozpušěný sedimen se poroná počíaná kapacia s akuálním množsím e odě rozpušěného C 23
sedimenu s. Pokud C je ěší než dojde k rozpušění půd e odě následujícím způsobem: b = b K S s C s K C s s = s 1 S V opačném případě dojde k usazení rozpušěného sedimenu: b = b K C s K C s s = s D 1 D s = s u.. 3.50 3.48 3.49 K S je konsana rozpoušění a K D je konsana usazoání. Obě o konsan si definuje sám užiael. Poé co se proede eroze nebo usazení pro každý prek map je noě zniklý rozpušěný sedimen přemísěn odou podle ohoo zahu: 1 Pokud souřadnice pro s 1 necházejí celočíselně ale ukazují někam mezi prk mřížk získáme ýslednou hodnou pomocí lineární inerpolace čř nejbližších prků od éo pozice. Posledním krokem je pařoání od. To je jádřeno následoně: K e je konsana pařoání. d = d 1 K e. 3.51 2 3.3. Věrná eroze Věrnou erozi lze rozděli na dě fáze. Prní je obrus způsobený řením ěrem ransporoaného maeriálu je záislý na síle a úhlu dopadajícího ěru a na množsí a hrubosi unášeného maeriálu. Druhou je pak odnos spkého zěralého maeriálu. Věrná eroze se z ěcho ří pů erozí použíá počíačoé grafice nejméně slouží předeším pro modeloání písečných dun a poušních krajin. Poušě jsou oiž oblasi s minimálním množsím srážek a ak zde odní eroze hraje pouze neparnou roli uáření krajin. Hlaní je zde předeším epelná eroze proože pouších dochází k mnohem ěšímu kolísání eplo než oblasech s egeací. Dík epelné erozi se posupně skalnaé čási porchu drolí a mění na písek. Vír pak zrnka písku zachcuje a přenáší na jiné míso. Unášená zrnka písku mohou ješě dále obrušoa skalnaé čási ím dochází k ěrné erozi. 24
3.3.1. Bedřich Beneš Tone Roa Bedřich Beneš a Tone Roa předsaili [BR04] algorimus pro simulaci poušní krajin. Nejedná se přímo o simulaci ěrné eroze ale pouze o přemisťoání písku ěrem. Teno ranspor maeriálu je ale důležiou součásí ěrné eroze. V algorimu simulují přemisťoání lehkých zrnek písku keré ír snadno zachí a přenese na nějaké jiné míso kde se usadí do energeick nejýhodnější poloh. Vír ak písku áří lnk keré jsou pro poušě charakerisické. Určié nejmenší množsí písku keré může bý zachceno ěrem může bý předměem ří procesů: poskakoání suspenze a plazení. Tz. poskakoání zniká kdž ír zachí čásečk písku a přemísí je na jiné míso. Teno proces jadřují následující ronice: hf p = hf p q p hf p l = hf p l q p s s 3.37 kde hf je označení pro ýškoou mapu čase hf označuje ýškoou mapu čase kde je časoý krok p značí pozici kde je písek zachcen q s je množsí zachceného písku keré se počíá podle zahu: q s 1 anh p = q0 hf 3.38 kde q 0 je průměrné množsí přeneseného písku. Vekor l = l i l j je ekor horizonálního posunuí se složkami: l l i j = = l w hf 0i hf 1 anh i hf l w hf 1 anh 0 j i j j 3.39 kde w = w i w j je ekor kerý reprezenuje ír elikos ekoru odpoídá inenziě ěru a směr ekoru odpoídá směru ěru l 0 = l 0i l 0j je ekor kerý určuje průměrný skok a spolu s ekorem w oliňují frekenci lnek. Paramer q 0 w a l 0 si určuje sám užiael musejí ale bý z ineralu 0 1 jinak b bl ssém nesabilní a lnk b se neořil. Obrázek 3.9 schemaick znázorňuje jeden skok ohoo procesu. 25
Obrázek 3.9: Znázornění procesu poskakoání obrázek pochází z [BR04] Při poskakoání může nasa problém pokud narazíme na nějakou překážku. Písek nemůže bý přenesen doniř objeku pokud b akoáo siuace nasala musí bý ýsledná pozice přesunu upraena ak že se písek usadí ěsně před objekem mšleno e směru ěru. Siuaci naznačuje obrázek 3.10. Obrázek 3.10: Případ přesunu písku doniř maeriálu obrázek pochází z [BR04] Další problém kerý musíme řeši při ýsku nějaké překážk je ěrný sín kerý za sebou překážka áří. Beneš a Roa narhli čisě ad hoc echniku kerá je rchlá a dáá ěrohodné izuální ýsledk. K určení ěrného sínu musíme nejpre objek promínou do roin kolmé ke směru ěru a procházející sředem objeku. Sřed objeku a směr ěru určují hlaní osu ěrného sínu. Délka ěrného sínu je záislá na ýšce objeku a na inenziě ěru. Šířka ěrného sínu je záislá pouze na šířce promínué oblasi. Pokud se bod ýškoé map nachází e ěrném sínu a je předměem procesu poskakoání je inenzia ěru lineárně snížena záislosi na zdálenosi od objeku a na jeho ýšce. Inenzia záisí nejen na zdálenosi od překážk ale aká na zdálenosi od hlaní os ěrného sínu. Příklad ěrného sínu můžee idě na obrázku 3.11. 26
Obrázek 3.11: Věrný sín obrázek pochází z [BR04] Proces suspenze zniká kdž ír zachí čásice prachu a přenáší je neurčiě dlouhou dobu. Blížeji eno proces auoři článku nepopisují. Posledním procesem je z. plazení. Pokud se písek přesune na nesabilní míso začne se sesoua ze sahu dolů dokud nedosáhne energeick nejýhodnější pozice. Teno proces se proádí pomocí modifikoaného algorimu epelné eroze popsaným kapiole 3.1.1. Nejpre se pro každý prek ýškoé map počíá lokální gradien a pak se eno gradien každého prku poronáá se sahoým úhlem T alus angle. V případě pořeb se přesune maimální možné množsí písku a oo množsí je na soused rozděleno úměrně k elikosi gradienu. Teno proces se opakuje ak dlouho dokud je pořeba nějaký maeriál přemisťoa. 3.4. Shrnuí Blo zde předsaeno několik algorimů různých druhů eroze. Základní algorimus epelné i odní eroze narhli Musgrae a koleki roce 1989. Věšina dalších auorů na o algorim ať již přímo či nepřímo naazuje a něčím noým je obohacuje. Dá se říci že bchom mohli předpokláda že čím noější algorimus je ím zpraidla býá lepší než algorim předcházející. Zásadním lepšením keré je možné aplikoa na liboolné druh erozí je podle mého názoru naržení rsené daoé srukur. Dík éo srukuře už nemusejí erozní algorim pracoa pouze s ýškoou mapou s jedním homogenním maeriálem čímž se mohou íce přiblíži skuečné přírodě. Dále asi obecně plaí že z. ad hoc erozní algorim jejichž ýsup jsou založen pouze na izuální podobnosi s realiou a nikoli na fzikální koreknosi býají zpraidla rchlejší než algorim založené na fzice. Obkle ale žadují nasaoání elkého množsí různých koeficienů práce s nimi není olik inuiiní a pro efekiní práci je pořeba mí s daným algorimem určié zkušenosi. Také o algorim nejsou příliš použielné 27
aplikacích keré žadují fzikální přesnos jako jsou například různé geografické informační ssém apod. Proo si mslím že jsou lepší algorim založené na fzice keré kromě ěší ýpočení náročnosi mají oproi izuálně založeným algorimům jenom samé ýhod. Pokud se zaměříme jen na epelnou erozi zjisíme že od půodní erze z roku 1989 se příliš nezměnilo. Beneš a Forsbach eno algorimus rozšířili pouze o krok pařoání a jednolié krok od sebe oddělili. Olsen poé narhnul opimalizaci kde míso Mooreoa okolí použil upraené Von Neumannoo okolí a ím snížil poče hodnocoaných podmínek na poloinu a množsí přenášeného maeriálu zýšil na maimum. Pro implemenaci jsem si proo zolil epelnou erozi kerou narhli Beneš a Forsbach rozšířenou o Olseno opimalizace. U odní eroze je siuace rochu komplikoanější proože se oo éma ěší ěšímu zájmu auorů. Posupem času se odní eroze rozdělila na da podp: odní erozi založenou na silách a odní erozi založenou na rozpusnosi. Oběma p se zabýalo několik auorů a například Šťaa Beneš Brisbin a Křiánek [SBBK08] oba o p spojili. Osobně si ale mslím že odní eroze založená na silách sama o sobě dáá elmi dobré ýsledk a e spojení s erozí založenou na rozpusnosi se o ýsledk už příliš nezmění zao narose ýpočení náročnos algorimu. U odní eroze je elmi důležiý ranspor od proože pokud se simuloaná oda nechoá jako skuečná oda nemůže ani simuloaná eroze pada jako skuečná. Během mé práce jsem zkoušel několik způsobů ransporu od z nich nejíce podobný choání skuečné od bl způsob popsaný [OH95]. Vodní erozi založenou na silách a užíající eno způsob ransporu od popsali Mei Decaudin a Hu článku [MDH07] proo jsem při implemenaci cházel hlaně z něj. Oproi předchozím děma pům erozí jsem se nesekal s článkem kerý b se zabýal čisě ěrnou erozí. Eisují pouze článk keré se zabýají orbou písečných dun a lnek písku ořených ěrem. Proo jsem se rozhodnul oři lasní algorimus ěrné eroze kerý ale nebude jako předešlé da algorim založený na fzice ale spíše na izuální podobnosi. 28
4. Implemenace Pro implemenaci bl použi programoací jazk C#. Bla ořena knihona ErosionLibrar..dll kerá obsahuje řídu pro áření erénu TerrainCreaor řídu pro reprezenaci erénu Terrain kerá aké umožňuje erozi a řídu pro izualizaci erénu TerrainVisualizer. Diagram ěcho říd je znázorněn na obrázku 4.1 kde z úsporných důodůů nejsou zobrazen soukromé proměnné. Věšině ěcho soukromých proměnných ale odpoídají eřejné lasnosi keré diagramu znázorněn jsou. Dále ao knihona obsahuje ješě inerní řídu Generaor sloužící pro generoání náhodných čísel s normálnímm rozdělením kerá má pouze jednu meodu bez paramerů NeNumber racející náhodné číslo a eřejné daoé srukur použíané osaních řídách keré jsou znázorněn na obrázku 4.2 a popsán následujícíí kapiole 4. 1. Obrázek 4.1: Diagram eřejných říd knihon ErosionLibrar.dll 29
Tao knihona bla ořena pro WPF Windows Presenaion Foundaion. V dalších podkapiolách si sručně popíšeme použíané daoé srukur éo knihoně a základní ři říd TerrainCreaor Terrain a TerrainVisualizer. U říd Terrain se pak deailněji zaměříme na popis jednoliých erozních meod keré jsou hlaním émaem éo práce. 4.1. Daoé srukur Knihona pracuje s následujícími šesi daoými srukurami: WaerSource Rain InPoin Maerial MapElemen Laer. To srukur znázorňuje diagram na obrázku 4.2. Všechn srukur obsahují eřejné proměnné a kromě srukur MapElemen aké konsrukor kerý o proměnné naplní hodnoami. Všechn proměnné jsou eřejné z oho důodu ab práce s nimi bla rchlejší i přesože o z programáorského hlediska není úplně korekní. Přísup k proměnným přes lasnosi je oiž pomalý a způsoboal b ýrazné prodloužení ýpočení dob proože se k ěmo proměnným během ýpoču přisupuje poměrně časo. Nejdůležiějšími srukurami jsou Maerial a MapElemen. Srukura Maerial slouží pro uchoáání informací o jednoliých maeriálech použiých e rsách erénu. Každý maeriál má sou denziu densi z ineralu od nul do jedné kerá určuje jeho odolnos ůči epelné erozi. Nuloá denzia znamená že epelná eroze maeriál ůbec neoliní naopak jednokoá denzia způsobí maimální rozpad maeriálu při epelné erozi. S epelnou erozí je ješě spojen úhel maimálního sklonu sahu alus e supních. Dále má každý maeriál sou rozpusnos dissolubili aké z ineralu od nul do jedné. Tao rozpusnos udáá míru rozpusnosi maeriálu e odě. Pokud je rozpusnos nuloá maeriál je zcela odolný ůči odní erozi pokud je jednokoá je maimálně rozpusný e odě. Koeficienem pro oliňoání mír ěrné eroze je inersewindresisii opě z ineralu od nul do jedné kde nula znamená úplnou odolnos proi ěru a jedna minimální odolnos proi ěru. Poslední informací kerou si maeriál uchoáá a kerou budeme pořeboa pro jeho izualizaci je eura maeriálu eure. Srukura MapEleme slouží k reprezenaci jednoho prku ýškoé map. Každý eno prek obsahuje ýšku erénu heigh omo bodě pole rse erénu laers kde jsou jednolié rs erénu seřazen od nejšší po nejnižší základní rsu. To rs jsou reprezenoán srukurou Laer kerá obsahuje pouze loušťku hickness dané rs daném mísě a idenifikační číslo maeriálu dané rs maerialid. Too idenifikační číslo odpoídá indeu maeriálu poli šech použiých maeriálů. Při oření erénu pole laers obsahuje pouze rs s kladnou loušťkou ed nikoli s nuloou. Dále každý prek ýškoé 30
map obsahuje ýšku od waerheigh a objem od waervolume. Objem od udáá ýšku od nad porchem erénu rozměr buněk erénu se předpokládají jednokoé proo ýška od nad porchem číselně odpoídá objemu od na dané buňce. Výška od waerheigh pak udáá absoluní ýšku odní hladin ed souče ýšk erénu heigh a objemu od waervolume. Dále si každý prek pamauje množsí e odě rozpušěného sedimenu dissoledsedimen rchlos od eloci daném mísě a čři ýsupní ok poli flow. To ok bl použi pro simulaci ransporu od kapiole 3.2.4. a budou ješě dále podrobněji popsán kapiole 4.3.2. Dalšími srukurami jsou Rain a WaerSource keré slouží pro uchoáání údajů o zdrojích od pro odní erozi. Srukura Rain obsahuje informace o deši a o elikos objemu kapk raindropvolume kerá udáá množsí ed ýšku od keré dopadne na porch erénu jedné buňce jako jedna dešťoá kapka a sílu dešě rainpower z ineralu od nul do jedné kerá oliňuje poče kapek spadlých jednom kroku odní eroze. Pokud je síla nuloá nespadne žádná dešťoá kapka pokud je jednokoá spadne jednom kroku poče kapek roný celkoému poču prků ýškoé map. Neznamená o ale že na každý prek dopadne jedna kapka. Kapk dopadají náhodně a může se sá že na někerý prek dopadne íce kapek jednom kroku a na někerý jiný žádná. Srukura WaerSource slouží pro reprezenaci odního zdroje kerým může bý buď oda kerá se jednorázoě na začáku simulace eroze objeí nějaké oblasi nebo oda kerá se určié oblasi objeuje praidelně každém kroku. Oblas ýsku předsauje pole prků pu InPoin kde srukura InPoin obsahuje pouze -oou a -oou souřadnici jednoho prku ýškoé map. V každém prku éo oblasi pak přibude množsí od definoané proměnné waervolume. 31
Obrázek 4.2: Diagram eřejných srukur knihon ErosionLibrar.dll 4.2.. Váření erénu Třída pro áření erénu TerrainCreaor obsahuje konsrukor kerý slouží k oření základní ýškoé map a k určení lasnosí erodoaného maeriálu. Výškoá mapaa základního erénu se nače buď ze zadané bimap nebo ze zadaného raw souboru kde jsou naíc dalšími paramer pořebnými pro oření ýškoé map její rozměr ed ýška a šířka proože pokud nebudeme předpokláda pouze čercoé map nedokážeme pouze z elikosi souboru urči o rozměr. Další paramer jsou minimální a maimální hodnoa ýšk ýškoé map podle kerých se ýška jednoliých prků map inerpoluje maeriál ze kerého se základní erén skládá a maeriál a maeriál erodoané rs. Pro rsu základního erénu je nasaena nekonečně eliká loušťka. Dále řída TerrainCreaor obsahuje jednu eřejnou meodu AddLaer kerá umožňuje k základnímu erénu přidáa noé rs s odlišnými lasnosmi. Pro oření akoéoo noé rs je zapořebí zada buď bimapu nebo už jen náze raw souboru ze kerého se bude ýškoá mapa načía. Rozměr ýškoé map se předpokládají sejné jako bl rozměr základního erénu. Dále je opě nuné zada ješě minimální a maimální hodnou ýšk éo map a maeriál ze kerého se bude noá rsa skláda. Šířka rs je nasaenaa pro každý prek indiiduálně podle rozdílu ýšk noé rs a ýšk dosaadní nejšší 32
rs erénu. Pokud je eno rozdíl záporný ed ýška noé rs je pod úroní dosaadního erénu rsa se pro daný prek nepřidá. Poslední meodou kerou řída TerrainCreaor obsahuje je saická meoda SaeTerrain kerá uloží ýškoou mapu zadaného erénu do raw souboru. Paramer jsou pouze ukládaný erén a náze souboru do kerého se ýškoá mapa uloží. 4.3. Reprezenace erénu a erozní meod Sěžejní řídou celé knihon je řída Terrain. Ta slouží pro reprezenaci erénu a proože znikla za účelem proádění různých druhů erozí obsahuje elké množsí lasnosí sloužících pro nasaoání ěcho erozí. To lasnosi si popíšeme až u jednoliých druhů erozí. Mimo o lasnosi řída obsahuje ješě několik dalších lasnosí a meod keré si popíšeme nní. Nejpre začneme konsrukorem říd. Pro oření noého erénu je zapořebí zada rozměr ýškoé map ed její šířku widh a ýšku heigh dourozměrné pole heighmap obsahující srukur MapElemen a reprezenující uo ýškoou mapu a jednorozměrné pole maerials skládající se ze srukur Maerial keré obsahuje eškeré maeriál použié e rsách erénu. Prek ohoo pole s indeem nula předsauje maeriál použiý pro erodoaný maeriál. Všechn o zadané paramer pak můžeme pomocí příslušných lasnosí éo říd kdkoli přečís. Dále ao řída obsahuje lasnosi MinHeigh a MaHeigh keré umožňují přečís minimální a maimální ýšku erénu. Poslední lasnosí kerá se neýká přímo někerého druhu eroze je lasnos pouze pro čení IsWorking. Tao lasnos rací hodnou rue pokud probíhá ýpoče eroze opačném případě rací hodnou false. Třída Terrain obsahuje ři eřejné meod. Jednou z nich je meoda GeIeraionNumber kerá rací případě že probíhá ýpoče eroze akuální číslo ierace neboli poče již proedených kroků simulace. V případě že ýpoče eroze neprobíhá rací nulu. Další eřejnou meodou je meoda Cancel. Tao meoda slouží k přerušení probíhajícího ýpoču. Výpoče se nepřeruší okamžiě ale až po dokončení akuálně počíaného kroku eroze. Poslední a nejdůležiější meodou celé éo říd je meoda Erosion. Jejími paramer jsou celkoý poče kroků eroze sepcoun a proporce jednoliých erozí ed waererosionproporion pro odní erozi winderosionproporion pro ěrnou erozi a hermalerosionproporion pro epelnou erozi. To proporce udáají jakém poměru se 33
jednolié krok erozí budou generoa. Například pokud bude poměr odní ěrné a epelné eroze 100:50:1 znamená o že každém noém kroku eroze bude praděpodobnos 100 50 proedení odní eroze praděpodobnos proedení ěrné eroze a praděpodobnos 151 151 1 proedení epelné eroze. Jak již je asi parné z oho příkladu hlaním úkolem éo 151 meod je proés simulaci zadaného poču kroků eroze a každém kroku rozhodnou podle zadaného poměru jednoliých erozí kerý p eroze se něm proede. Po omo rozhodnuí se zaolá jedna ze ří soukromých meod WaerErosionSep WindErosionSep ThermalErosionSep a proede se krok příslušné eroze. Po každém kroku se ješě zakualizuje ýška odní hladin kůli izualizaci a ýškoá mapa se zkopíruje do pomocné proměnné kde je připraena na předání během ýpoču dalšího kroku ab se nemohlo sá že b se předala jen čásečně zerodoaná mapa. V následujících podkapiolách si popíšeme jeden krok každého druhu eroze. 4.3.1. Tepelná eroze Krok epelné eroze je poměrně jednoduchý. Pro každý prek ýškoé map se nejpre určí šichni sousedé z upraeného Von Neumannoa okolí iz obrázek 3.2 kapiole 3.1.3. jejichž ýška erénu je nižší než ýška erénu daného prku snížená o rozdíl ýšek sousedních prků při maimálním možném sahu. Označme eno rozdíl ýšek při maimálním možném sahu T. Vpočíáme ho z úhlu alus kerý určuje maimální elikos úhlu sahu rchního maeriálu počíaného prku ako: kde l T = l. an alus 4.1 je zdálenos mezi děma sousedními prk a předpokládáme zde že je jednokoá. U šech nižších sousedů pak sečeme rozdíl ýšek erénu počíaného prku a ěcho sousedů. Teno souče označíme sum a nejěší rozdíl označíme d ma. Množsí maeriálu keré se přenese z daného prku spočíáme podle zorce 4.2. S = rnd. 05. D. d 4.2 kde D je denzia maeriálu rchní rs daného prku a rnd je náhodné číslo keré e ýpoču bý může i nemusí. Číslo rnd je do ýpoču zahrnuo z oho důodu že reálné přírodě se še choá s určiou náhodnosí. Je generoáno s normálním rozdělením se sřední hodnoou 1 a rozplem 02. Pokud je jeho hodnoa ěší než 1 je nasaena na 1 ab nemohlo bý přeneseno íce maeriálu než je dooleno. ma S 34
Pokud přenášené množsí maeriálu S je ěší než loušťka rchní rs pouze snížíme na uo loušťku a rchní rsu smažeme. V půodní implemenaci jsem sice použil posup sejný jako u osaních erozí ed že jsem míso pouhého snížení S pokračoal erozí další rs jenže během esoání programu jsem objeil chbu kerou eno způsob řešení způsobuje. Teno způsob oiž při změně rs zohlední pouze měnící se denziu jenže s rsou se změní i její úhel maimálního sahu alus. Proo abchom zohlednili i změnu ohoo úhlu bchom museli proádě znou sronáání se šemi soused a ed celý ýpoče z oho důodu je sníženo množsí přenášeného maeriálu na loušťku rs ab bla pouze odsraněna a eroze rs pod ní se proede až následujícím kroku. Too řešení ale samozřejmě zpomalí průběh eroze nicméně dáá lepší ýsledk. Poé co se odeče přenášený maeriál celkoá ýška erénu. Nní už zbýá jen maeriál keří přispěli do souču sum a o následujícím způsobem: S S od loušťk rs sníží se o uo hodnou i S h hi hi = hi 4.3 sum S spraedliě rozděli šem sousedům kde h i je ýška erénu souseda a h je ýška erénu počíaného prku. Nesmíme aké zapomenou o přidělené množsí maeriálu zýši loušťku rs erodoaného maeriálu. Všechn změn proádíme ihned nikoli až na konci kroku pro šechn prk najednou. Krok epelné eroze je ímo hoo nní už je poznámka k hledání sousedů okrajoých prků map. Zde je několik možnosí jak oo řeši například zěšením map a zdojením okrajoých prků nebo ošeřením podmínkami. Zdojení okrajoých prků sice sníží množsí hodnocoaných podmínek při ýpoču ale na druhou sranu zase žaduje elké množsí paměi naíc hlaně u ěších map. Proo jsem se rozhodl použí ošeření podmínkami. 4.3.2. Vodní eroze Krok odní eroze se skládá z několika čásí. Nejpre se na prk map nanese noá oda což je řešeno mimo meodu kroku odní eroze kůli odním zdrojům keré přidáají noou odu pouze před začákem eroze. Nanášení od je jednoduché u prků určených odním zdrojem se zýší objem od o sanoené množsí. U dešě je o sejné jen prk nejsou určen přímo. Jsou určen pouze procenem pokrí map ze kerého se počíá poče prků na keré se bude oda nanáše. Před každým krokem odní eroze se pak generuje poče pozic odpoídající určenému poču prků a na o pozice se oda nanese. 35
Další čásí je ranspor od. Ten bl deailně popsán kapiole 3.2.4. a proože je elmi důležiý uedu zde čás zjednodušeného kódu bez deklarací proměnných a bez ošeřených okrajoých prků: for in = 0; < heigh; { for in = 0; < widh; { h = heighmap[ ].waerheigh; //ýška odní hladin flow = heighmap[ ].flow; //ýsupní ok flow[0] = * G * h - heighmap[ - 1 ].waerheigh; flow[1] = * G * h - heighmap[ 1 ].waerheigh; flow[2] = * G * h - heighmap[ - 1].waerHeigh; flow[3] = * G * h - heighmap[ 1].waerHeigh; if flow[0] < 0 //udržujeme pouze ýsupní ok supní nulujeme flow[0] = 0f; if flow[1] < 0 flow[1] = 0f; if flow[2] < 0 flow[2] = 0f; if flow[3] < 0 flow[3] = 0f; ouv = * flow[0] flow[1] flow[2] flow[3]; wvolume = heighmap[ ].waervolume; //objem od if ouv > wvolume { //konrola dosaečného objemu od coef = wvolume / ouv; //fakor zmenšení flow[0] *= coef; flow[1] *= coef; flow[2] *= coef; flow[3] *= coef; } } } for in = 0; < heigh; { for in = 0; < widh; { flow = heighmap[ ].flow; //ýsupní ok sum = heighmap[ 1 ].flow[0] - flow[0]; heighmap[ - 1 ].flow[1] - flow[1]; heighmap[ 1].flow[2] - flow[2]; heighmap[ - 1].flow[3] - flow[3]; //zapamaoání sarého objemu od pořebného pro ýpoče rchlosi oldwaervolume[ ] = heighmap[ ].waervolume; newwaervolume = oldwaervolume[ ] * sum; //noý objem od if newwaervolume < 0f newwaervolume = 0f; heighmap[ ].waervolume = newwaervolume; //akualizace ýšk odní hladin heighmap[ ].waerheigh = heighmap[ ].heigh newwaervolume; } } 36
Je zde opradu důležié nuloa záporné supní ok proože jinak b blo elmi problemaické ošeři případ kd je pořeba z buňk odés íce od než obsahuje. Po ransporu od přichází na řadu eroze. Nejpre pořebujeme urči ekor rchlosi od horizonálním směru. Jeho jednolié složk určíme z průoků od danou buňkou příslušných směrech podle zorce 3.46 z kapiol 3.2.4. Zde je pořeba dáa pozor na průměrnou ýšku od d kerá může bý nuloá. V omo případě pak zorec pro ýpoče rchlosi nepoužijeme ale ronou rchlosi přiřadíme ekor s nuloou délkou. Dále pořebujeme urči úhel sklonu erénu daném mísě α nebo lépe sinus ohoo úhlu. Ten určíme následujícím zahem: dma sinα = ma prah 4.3 2 1 dma kde d ma je rozdíl ýšk erénu daného prku a ýšk erénu jeho nejnižšího souseda a prah je prahoá hodnoa určující minimální hodnou sinα ab i u roného erénu docházelo k erozi našem případě bl zolen prah = 0 01. Nní kdž známe šechn proměnné spočíáme elikos kapaci od C podle zahu 3.47 poronáme je s rozpušěným sedimenem a rozhodneme zda se bude maeriál na daném prku usazoa nebo rozpoušě. Vrs jsou u každého prku uložen poli laers kde prek s indeem 0 je hrazen pro rsu erodoaného maeriálu a osaní rs erénu jsou uložen dalších prcích seřazen od nejšší po nejnižší kde nejnižší a udíž poslední rsa je žd základní rsa s nekonečnou loušťkou. Pokud dojde k rozpoušění a rozpušěné množsí maeriálu překročí loušťku rs ak pokud se nejedná o rsu erodoaného maeriálu je rsa smazána a udíž řazena z pole laers. Tao rsa už nemůže bý budoucích krocích nikd obnoena proože jediná rsa kerá se přenáší je rsa erodoaného maeriálu. Osaní rs mohou bý pouze na erodoaný maeriál přeměněn en se ale už na jiné rs nepřemění. Pokud je mazána rsa erodoaného maeriálu je pouze její loušťka nasaena na nulu ale z pole se neodsraňuje proože budoucnu se do ní může noý maeriál opě přida. Jako rchní rsa je pak nasaena rsa kerá je ěsně pod smazanou rsou a s jejími paramer se znou spočíá množsí rozpoušěného maeriálu. Too množsí se ješě naíc násobí poměrem neuspokojené čási rozpušěného maeriálu z předchozí rs. Například pokud je půodní horní rsě spočíáno že se musí rozpusi 10 cm maeriálu ale loušťka rs je pouze 6 cm rozpusí se 6 cm a rsa se odsraní. Tím se uspokojí 60 % požadaku na rozpušění a zblých 40 % se ezme z množsí určeného 37
k rozpušění při ýpoču s noou horní rsou. Jak idíme nerozpusí se pouze zblé 4 cm z následující rs ale 40 % z noě rozpušěného množsí. Pokud b noá rsa měla sejnou rozpusnos jako rsa půodní opě b šlo k rozpušění 10 cm maeriálu a udíž b se rozpusil zblé 4 cm. Pokud b ale například noá rsa bla zcela nerozpusná bude určeno k rozpušění 0 cm a z nich se ezme 40 % což je 0 cm. Žádný další maeriál se ed z noé horní rs nerozpusí. Pokud b ani loušťka éo noé rs neposačoala k celkoému uspokojení rozpoušěného maeriálu je opě odsraněna a počíá se sejným způsobem dále dokud není požadaek uspokojen zhledem k omu že loušťka poslední rs je nekonečná bude uspokojen žd. Ted pokud budeme předpokláda že měla sejné paramer jako předešlá rsa a požadaek bl opě 10 cm z nichž se měl rozpusi už jen čři. Jenže loušťka éo rs je jenom 2 cm což je 50 % požadaku celkoě je ed uspokojeno 80 % a zblých 20 % se zkusí uspokoji další rsou. Co se ýká usazoání zde žádný problém není usazuje se žd jen erodoaný maeriál ed rsa s indeem nula. Nesmíme zapomenou usazený maeriál odečís od rozpušěného a aké žd kdž změníme šířku rs musíme změni ýšku erénu a obráceně. Poé co dokončíme rozpoušění nebo usazoání musíme přesunou aké sedimen podle 3.50. Jedná se pouze o bilineární inerpolaci mezi čřmi prk ýškoé map. Zde žádný problém neidím. Poslední čásí je paření od. To proedeme podle zahu 3.51. Pokud objem od klesne pod prahoou hodnou minwaervolume nasaíme objem od na nulu. Tím končí jeden krok odní eroze. 4.3.3. Věrná eroze Poslední erozní meodou kerou jsme si ješě nepředsaili je krok ěrné eroze. Jedná se o můj lasní algorimus kerý nikde předešlém eu popsán nebl proo jeho popis bude podrobnější než bl popis předchozích meod keré cházel z eoreické čási práce. Jedná se o algorimus kerý není fzikálně založený snaží se pouze reálné ěrné erozi co nejíce izuálně přiblíži. Pracuje opě jako předešlé da algorim s rsenou daoou srukurou. Pro zjednodušení si předsame erén e dourozměrném prosoru kde na ose je znázorněn inde ýškoé map a na ose je zobrazena ýška erénu prku s daným indeem iz obrázek 4.3. Pokud budeme předpokláda že ír ane sále jedním směrem a pokud narazí na nějakou překážku například horu posupuje po jejím porchu sále e směru sého 38
horizonálního směru áí ak dlouho dokud mu překážka brání fouka e sém přirozeném směru. Proo abchom mohli jednoduše urči zda se někerý objek nebo prek ýškoé map nachází e ěrném sínu můžeme posupně procháze erén po směru ěru a pamaoa si minimální ýšku do keré ír fouká. Na začáku nasaíme uo minimální ýšku ěru na ýšku erénu. Při posupu na další prek ýškoé map žd snížíme minimální ýšku ěru o hodnou kerá udáá o jakou ýšku ír klesne mezi děma prk při přirozeném foukání. Pokud se budeme nacháze na prku jehož ýška erénu je šší než minimální ýška ěru prek se nachází na náěrné čási a minimální ýšku ěru musíme zýši na ýšku erénu ohoo prku proože se ír pohbuje po porchu erénu. Pokud se budeme nacháze na prku jehož ýška je nižší než minimální ýška ěru nacházíme se e ěrném sínu. Obrázek 4.3: Znázornění ěrného sínu e 2D Ve ěrném sínu ír nijak nepůsobí může sem pouze zanáše maeriál kerý zachil cesou. Na náěrné sraně ír rozrušuje srchní maeriál a zacháá jej. Někeré čásice se mohou roněž na náěrné sraně usadi například ěžké čásice keré nemohou bý přenášen příliš daleko. Množsí erodoaného maeriálu záisí přeážně na odolnosi maeriálu proi ěru a na ploše na kerou ír dopadá. Čím je ýškoý rozdíl mezi současným a následujícím prkem ěší ím je i ěší plocha a ím silnější je eroze. Přesný zah pro ýpoče množsí erodoaného maeriálu R E h h C s Se padá následoně: S = min 4.4 e wind kde R je koeficien odolnosi maeriálu proi ěru z ineralu od 0 do 1 0 znamená zcela odolný E je koeficien eroze winderosioncoef kerý určuje sílu ěrné eroze opě barrier 39
z ineralu od 0 do 1 je rozdíl akuální ýšk erénu h a minimální ýšk ěru h wind ak h barrier se spočíá ako: barrier 0min h h h h = ma 4.5 ne ak wind kde h ne je ýška následujícího prku ed prku na kerý se přejde po dopočíání akuálního. Člen C s 4.4 určuje maimální množsí maeriálu keré ješě může ír zachi než dojde k jeho nascení. C zde určuje kapaciu ěru windcapaci a s množsí již e ěru zachceného maeriálu. Spočíané množsí erodoaného maeriálu se odeče od loušťk rchní rs daného prku. Pokud rsa neobsahuje dosaečné množsí maeriálu proedou se sejné operace jako u odní eroze předchozí kapiole. Nakonec se množsí erodoaného maeriálu odeče i od ýšk daného prku. Po kroku eroze přichází krok usazoání keré zde rozdělíme na da druh: na usazoání e ěrném sínu a usazoání na náěrné sraně. Ve ěrném sínu je usazoání jednoduché usadíme čás S sd maeriálu zachceného e zduchu. Jak elký díl unášeného maeriálu bude usazen určuje koeficien windshadowdeposiion z ineralu od 0 do 1: = s windshadowdeposiion 4.6 S sd Usazoání na náěrné sraně je komplikoanější proože se zde snažíme zachi náan maeriálu před nějakou překážkou. Množsí usazeného maeriálu Swd hne hak Swd = s min winddeposiion 1 4.7 windtalus spočíáme ako: Kde winddeposiion je koeficien z ineralu od 0 do 1 kerý oliňuje míru usazoání maeriálu na náěrné sraně a windtalus určuje rozdíl ýšek sousedních prků při maimálním sahu. Teno rozdíl ýšek můžeme olini lasnosí WindTalus kerá se zadáá e supních a určuje úhel maimálního sahu. Nní jsme si sělili funkci naržené ěrné eroze na zjednodušeném příkladu. U dourozměrné ýškoé map ale můžeme akoého zjednodušení dosáhnou aké a o řezem erénu erikální roinou. Pokud se zaměříme pouze na inde ýškoé map jedná se o řez úsečkou. A jelikož máme ýškoou mapu kerá se skládá z jednoliých buněk a je ed diskréní oříme řez pomocí raserizoané úsečk iz [ZBSF04] ronoběžné s horizonálním směrem ěru. Pro pokrí celé ýškoé map o rozměrech n n pořebujeme minimálně n a maimálně 2n akoýcho řezů. Hlaní ěc kerou od raserizoaných úseček žadujeme je ab 40
pokrl úplně celou ýškoou mapu a ab se nikde nepřekrýal což může bý problém pokud chceme ab řez bl ronoběžné se směrem ěru a aké abchom posupoali po řadách kolmých ke směru ěru. Pokud bchom neposupoali po kolmých řadách ale například po řadách žd e směru jedné z os ořila b se mísa z čási zerodoaná ze směru ěru a z čási zaronaná s jednou z os. Na začáku kroku si ed oříme počáeční řadu kerá je kolmá ke směru ěru je široká sejně jako ýškoá mapa a alespoň jeden její prek se nachází na okrajoém prku ýškoé map osaní mimo mapu. Pro každý její prek si pamaujeme minimální ýšku ěru a množsí maeriálu zachceného ěrem. Tar éo řad se během kroku nemění a řada se celá posupně posouá e směru řídící os směru ěru dokud se neprojdou šechn prk ýškoé map jak naznačuje obrázek 4.4. Obrázek 4.4: Procházení prků ýškoé map začáek a konec Posun éo řad mapou ale není jediný posun ke kerému dochází. Uniř řad se ješě posouají prk ak jak se posouá raserizoaná úsečka znázorňující směr ěru. Na obrázku 4.4 je naznačena pozice indeu 0 na začáku a na konci procházení a idíme jak kopíruje směr ěru. Ješě lépe je posouání indeů poli idě na obrázku 4.5 kde je znázorněno několik po sobě jdoucích posunů jsou oddělen bareně. Je zde zýrazněna siuace na kerou si musíme dáa pozor. Pokud se zaměříme pouze na inde nula osaní inde se 41
auomaick posunují s ním ak při každém sudém posunu ěru do sran se inde neposune o jednu pozici před jako obkle ale pouze do sran čímž bočí z úsečk směru ěru a ráí se na ní až nadcházejícím posunu. Obrázek 4.5: Procházení ýškoé map znázornění posunu indeů Při posouání indeů dochází k siuacím kd je prek řad na jedné sraně z ýškoé map sunu a na druhé sraně ložen. Zde si můžeme zoli jak se erén bude choa. Můžeme například uo siuaci ignoroa a eškerý maeriál se bude přenáše z jedné sran map na druhou čímž sice nedojde ke zráě maeriálu ale nemusí o pada příliš dobře. Další možnosí je řeba maeriál nášený z map disribuoa ronoměrně nebo náhodně. Vzkoušel jsem spousu možnosí ale nakonec jsem se rozhodl maeriál nesený z map už z nou do map nerace proože oo řešení podle mého názoru dáá nejlepší izuální ýsledk. 4.4. Vizualizace erénu Pro izualizaci erénu bla naržena řída TerrainVisualizer. Vizualizace ale nebla hlaním cílem éo práce a slouží spíše k izuálnímu oěření spránosi erozních meod. Celý proces izualizace je poměrně pomalý a nehodí se pro zobrazoání reálném čase. Tao řída obsahuje čři meod dě pro áření eur a dě pro áření geomerických modelů. Prní meoda CreaeHeighMapTeure není určena přímo pro izualizaci. Slouží pro oření bimapoého obrázku ýškoé map daného erénu kde černá bara předsauje nejnižší hodno ýškoé map a bílá bara nejšší. Tao meoda 42
může bý užia například pro násroj pro zadáání odních zdrojů jak je omu u ukázkoé aplikace nebo pro uložení ořené ýškoé map jako obrázku. Druhou meodou pro áření eur je meoda CreaeTerrainTeure. Tao meoda oří euru celého porchu daného erénu kerá pak následně může bý použia při izualizaci. Velikos éo eur bech je možné nasai lasnosí TeureSize. Podmínkou ale je že ao elikos nemůže bý menší než je čřnásobek elikosi ýškoé map. Pokud bude elikos nasaena menší auomaick se zěší. Výsledná eura se pak spočíá kombinací jednoliých eur maeriálů. Nezáleží pouze na om kerý maeriál je na porchu erénu ale aké na šířce rs s ímo maeriálem. Užiael si může sám olini dě prahoé hodno lasnosmi MinErodedMaerial a MinThickness. Prní určuje minimální loušťku rs erodoaného maeriálu kerá je ješě idielná. Pokud je loušťka erodoaného maeriálu menší než ao prahoá hodnoa jeho eura se ůbec nezobrazí a míso ní se zobrazí eura rs ležící ěsně pod ní. Druhá prahoá hodnoa MinThickness určuje minimální loušťku rs kd je zobrazena pouze eura maeriálu rchní rs. Pokud je loušťka rchní rs menší než ao hodnoa je rchní rsa čásečně průhledná ed míchá se eura éo rs s eurou rs ležící ěsně pod ní. Míra idielnosi horní rs záisí na poměru loušťk éo rs a prahoé hodno MinThickness. Meoda kerá slouží k oření modelu erénu se jmenuje CreaeTerrainModel. Tao meoda oří z ýškoé map daného erénu množinu rojúhelníků a přiřadí jí maeriál pro přirácenou i odrácenou sranu mšleno podle orienace rojúhelníků. Pro odrácenou sranu je použi maeriál kerý užiael může nasai lasnosí TerrainBackMaerial. Maeriál pro přirácenou sranu je možné nasai parameru meod. Pokud nasaen není je použi difúzní maeriál s akualizoanou eurou erénu. Poslední meoda se jmenuje CreaeWaerModel a slouží pro oření modelu od. Opě jako u předchozí meod se oří množina rojúhelníků enokráe z ýšk odní hladin a přiřadí se jí maeriál přirácené sran WaerMaerial a maeriál odrácené sran WaerBackMaerial. Vrchol rojúhelníků se nemusejí skoa každém prku ýškoé map jako omu blo u áření erénu skují se pouze am kde se skuje oda a zároeň její objem je ěší než prahoá hodnoa určená lasnosí MinWaerVolume. Pokud b objem od bl menší než ao prahoá hodnoa je s prkem zacházeno jako b zde žádná oda nebla a ím pádem se zde nezobrazí. Váření modelu od je poměrně jednoduché a někerých siuacích může dojí k chbnému zobrazení. Například pokud se oda skuje prku kerý má pouze jednoho souseda s odou oda se zde nezobrazí proože neoří rojúhelník. To samé plaí i pro prk s odou ležící za sebou jedné přímce keré okolo sebe 43
mají jen prk bez od. Jak ale již blo uedeno dříe ao izualizace slouží spíše jen pro orienaci proo si zde akoéo drobné chb zobrazení můžeme dooli. Je o cena za jednoduchos implemenace a nepříliš elikou náročnos ýpoču. 44
5. Tesoání V éo kapiole se pokusíme oěři sprános funkcionali ořené knihon izuální konrolou erénu a porona dob ýpoču pro různě eliké ýškoé map a aké o dob srona s jinými implemenacemi z referoaných článků. Tes bl proáděn na počíači s procesorem Inel Core 2 Duo E8400 3.0 GHz operační paměí 2 GB a operačním ssémem Microsof Windows XP SP2. Nejpre začneme s určením dob ýpoču. Měření blo proedeno pro ýškoé map s rozlišením 256 256 512 512 a 1024 1024. Výsledk znázorňuje abulka 5.1. Doba kroku eroze [ms] rozlišení epelná ěrná odní 256 256 234 312 482 512 512 1718 2109 2625 1024 1024 11328 10875 18539 Tabulka 5.1: Doba kroku eroze Je idě že s rosoucí elikosí ýškoé map rose doba ýpoču jednoho kroku nelineárně a pro map s rozlišením od 512 512 přesáá bý eroze proedielná reálném čase proože obkle pořebujeme proés elké množsí kroků. Pokud sronáme dob odní eroze s [SBBK08] nebo s [MDH07] jsou naše dob ýrazně delší. To je způsobeno ím že obou ěcho pracích je algorimus naimplemenoán pro GPU zaímco m užíáme k ýpoču CPU. Nní si uedeme několik příkladů úpra erénu našem demonsračním programu. Jako prní načeme generoaný erén a aplikujeme na něj ěrnou erozi. Výsledek můžeme idě na obrázku 5.1. Veškeré nasaení blo ponecháno ak jak je přednasaené. Na obrázku 5.2 je můžeme idě sronání před a po ěrné erozi na jiném erénu. Na obrázku 5.3 je pak ukázka jak o padá pokud se ěru do ces posaí odolná překážka. 45
Obrázek 5.1: nahoře půodní erén; leo dole erén po aplikaci 600 kroků ěrné eroze; prao dole ěrná eroze kombinoaná s epelnou poměru 50:1 Obrázek 5.2: leo půodní erén; prao erén po aplikaci 500 kroků ěrné eroze 46
Obrázek 5.3: nahoře půodní erén leo dole erén po několika krocích a prao dole erén po ěším množsí kroků. Příklad na epelnou erozi si uedeme pouze na umělém erénu obrázek 5.4 kde je ao eroze lépe idě. Dolní čási písmen sloa EROSION se skládají z maeriálu kerý je zcela odolný ůči epelné erozi. Obrázek 5.5 ukazuje erozi hor způsobenou dešěm. Pokud chceme ab déšť ářel e sazích hor úzké osré rýh musíme nasai déšť na hodně silný s malými kapičkami a aké zýši odolnos maeriálu hor proi odní erozi. Během esoání jsem zjisil že déšť áří rýh žd ronoběžné s někerou z os což asi není úplně spráné choání. Nepodařilo se mi ale zjisi jak uo chbu nějak jednoduše oprai proo zde na ní alespoň upozorňuji. Obrázek 5.4: leo půodní erén; prao erén po aplikaci 100 kroků epelné eroze 47
Obrázek 5.5: leo půodní erén; prao erén erodoaný dešěm Obrázek 5.6: Průběh odní eroze Na obrázku 5.6 je idě průběh odní eroze řekou. Na prním obrázku do údolí přiéká oda další obrázk pak bl posupně pořizoán po 500 krocích odní eroze. 48
6. Záěr Hlaní náplní eoreické čási éo práce blo prozkoumáání širokého spekra různých erozních algorimů jejich poronáání a ýběr ěch nejhodnějších pro pokrí co nejširší škál erénních úpra. Mou snahou blo předeším bra zásupce ří základních pů erozí jimiž jsou odní ěrná a epelná eroze. Zásupce odní a epelné eroze jsem ořil kombinací a úpraou několika dosaadních prací. O ěrné erozi se mi ale příliš informací nají nepodařilo proo jsem narhnul lasní erozní algorimus kerý sejně jako oba předchozí nepracuje pouze s ýškoou mapou ale obohacuje ji o podložní rs erénu keré mohou mí nasaen různé lasnosi a lépe ak přiblíži skuečný erén. Vořil jsem knihonu ErosionLibrar.dll kerá umožňuje z ýškoých map áře rsený erén na en pak aplikoa erozi a erén následně zobrazi. U eroze je možné nasai proporce jednoliých pů erozí podle kerých se pak na erén aplikují. Knihona bla ořena pro WPF Windows Presenaion Foundaion. Ke knihoně bl ořen i ukázkoý program kerý demonsruje šechn její funkce. Hlaním směrem lepšení éo práce b mohlo bý urchlení ýpoču jednoliých erozí implemenací pro GPU dále aké lepšení nebo předělání izualizační říd kerá není příliš hodná pro zobrazoání reálném čase. Možným rozšířením b mohlo bý doimplemenoání odní eroze založené na rozpusnosi nebo přidání někerého dalšího ne olik běžného pu eroze. Také b se mohlo umožni do erénu přidáa i rs keré neobsahují pené lák ale například odu nebo pln čímž b přibla možnos simuloa i různé přeis a jeskně keré klasické ýškoé map nejsou schopn zobrazi. 49
Lieraura [ASA07] [BA05] Anh N. H. Sourin A. Aswani P. Phsicall based hdraulic erosion simulaion on graphics processing uni. Proceedings of he 5h inernaional Conference on Compuer Graphics and ineracie Techniques in Ausralia and Souheas Asia. GRAPHITE '07. ACM New York NY USA 257-264 2007. Belhadj F. Audiber P. Modeling landscapes wih ridges and riers. VRST 05: Proceedings of he ACM smposium on Virual reali sofware and echnolog ACM Press New York NY USA 151 154 2005. [Bel07] Belhadj F. Terrain Modeling: A Consrained Fracal Model. Afrigraph 2007 Grahamsown Souh Africa Ocober 29 31 pp. 197-204 2007. [Ben07] [BF01] [BFo01] [BF02] [BR04] [BTHB06] [CMF98] [DEJP99] [KM90] [KMN88] Beneš B. Real-ime erosion using shallow waer simulaion. VRIPHYS 07: 4h Workshop in Virual Reali Ineracions and Phsical Simulaion 2007. Beneš B. Forsbach R. Laered daa represenaion for isual simulaion of errain erosion. SCCG 01: Proceedings of he 17h Spring conference on Compuer graphics IEEE Compuer Socie p. 80 2001. Beneš B. Forsbach R. Parallel implemenaion of errain erosion applied o he surface of Mars. AFRIGRAPH 01: Proceedings of he 1s inernaional conference on Compuer graphics irual reali and isualisaion ACM Press New York NY USA 53 57 2001. Beneš B. Forsbach R. Visual Simulaion of Hdraulic Erosion. In Journal of WSCG 2002 ol. 10. N. 2002. Beneš B. Roa T. Simulaing Deser Scener. WSCG 2004 Plzen Czech Republic Februar 26 2004. Beneš B. Těšínský V. Hornš J. Bhaia S. K.. Hdraulic erosion. Compuer animaion and irual worlds 2006. Chiba N. Muraoka K. Fujia K. An Erosion Model Based on Veloci Fields for he Visual Simulaion of Mounain scener. The Journal of Visualizaion and Compuer Animaion 9:185 194 1998. Dorse J. Edelman A. Jensen H. W. Pedersen H. K. Modeling and rendering of weahered sone. Proc. of SIGGRAPH 99 pp. 225 234 1999. Kass M. Miller G. Rapid sable fluid dnamics for compuer graphics. Proc. of SIGGRAPH 90 1990. Kelle A. D. Malin M. C. Nielson G. M. Terrain Simulaion Using a Model of Sream Erosion. Compuer Graphics 224 pp. 263 268 1988. 50
[LM93] [MBS97] [MDH07] [MFC06] [MKM89] [NWD05] [OH95] [ON00] Li X. Moshell M. Modeling soil: Realime dnamic models for soil slippage and manipulaion. Proc. of SIGGRAPH 93 pp. 361 368 1993. Marák I. Beneš B. Slaík P. Terrain Erosion Based on Rewriing of Marices. Proceedings of The Fifh Inernaional Conference in Cenral Europe on Compuer Graphics and Visualizaion - WSCG pp.341-351 1997. Mei X. Decaudin P. Hu B.-G. Fas hdraulic erosion simulaion and isualizaion on GPU. Proc. of Pacific Graphics pp. 47 56 2007. Maes M. M. Fujimoo T. Chiba N. Efficien animaion of waer flow on irregular errains. Proc. of GRAPHITE 06 pp. 107 115 2006. Musgrae F. K. Kolb C. E. Mace R. S. The Snhesis and Rendering of Eroded Fracal Terrains. Compuer Graphics 233:11 1 11 9 1989. Neidhold B. Wacker M. Deussen O. Ineracie phsicall based Fluid and Erosion Simulaion. Proceedings of Eurographics Workshop on Naural Phenomena 2005 ol. 1 pp. 25 32 2005. O Brien J. Hodgins J. K. Dnamic simulaion of splashing fluids. Proceedings of Compuer Animaion 95 pp. 198 205 1995. Onoue K. Nishia T. A Mehod for Modeling and Rendering Dunes wih Windripples. Proceedings of Pacific Graphics 00 pp. 427 428 2000. [ON03] Onoue K. Nishia T. Virual sandbo. Proc. of Pacific Graphics pp. 252 260 2003. [Ols04] Olsen J. Realime Procedural Terrain Generaion. 31. 10. 2004. [SBBK08] [Sed07] [SOH99] [WCMT07] [ZBSF04] Šťaa O. Beneš B. Brisbin M. Křiánek J. Ineracie Terrain Modeling Using Hdraulic Erosion. Eurographics/ACM SIGGRAPH Smposium on Compuer Animaion 2008. Sedmihradský J. Modeloání eroze a deformací erénu. Diplomoá práce KIV/ZCU 2007. Sumner R. W. O Brien J. F. Hodgins J. K. Animaing sand mud and snow. Comp. Graph. Forum 18 1999. Wojan C. Carlson M. Mucha P. J. Turk G. Animaing corrosion and erosion. Eurographics Workshop on Naural Phenomena 2007. Žára J. Beneš B. Sochor J. Felkel P. Moderní počíačoá grafika. 1. d. Brno: Compuer Press 2004. ISBN 80-251-0454-0. 51
Příloha Užiaelská příručka Too je užiaelská příručka k ukázkoému programu Erosion.ee demonsrujícímu funkcionaliu knihon ErosionLibrar.dll. Program je napsán e WPF Windows Presenaion Foundaion a ke sému spušění žaduje operační ssém Microsof Windows Visa a noější. Program je možné spusi i pod Microsof Windows XP pokud je nainsaloán Microsof.NET Framework 3.5 zde se ale může někerých případech sknou problém při zaírání oken aplikace. Program se spouší souborem Erosion.ee a pro spušění žaduje ab bl e sejné složce jako knihona ErosionLibrar.dll. Po spušění programu se zobrazí okno Erosion. Nejpre abchom mohli erozi použí musíme oři nějaký erén. To uděláme kliknuím na lačíko Load errain Zobrazí se nám okno Terrain Seup iz obrázek U.1. Obrázek U.1: Okno Terrain Seup pro oření erénu V čási Map size můžeme nasai elikos ořeného erénu. V čási Laers pak definujeme jednolié rs erénu. Terén musí žd obsahoa rsu Eroded maerial kerá určuje lasnosi erodoaného maeriálu. Po oření erénu se něm ao rsa neskuje proo se pro ni nenasauje ýškoá mapa. Tao rsa se erénu objeí až po aplikaci eroze. Další poinná rsa kerou musí erén obsahoa je rsa Boom Laer. Tao rsa je základní rsou erénu její rozměr udáá rozměr celého erénu. Tloušťka éo rs je nekonečná a při použií íce rse je ao rsa žd a nejspodnější. Pokud chceme k erénu přida noou rsu přidáme ji lačíkem Add new laer prao dole. Noá rsa se žd přidá ěsně pod rsu Eroded maerial sane se z ní ed rchní 52
rsa. Pokud bchom chěli nějakou přidanou rsu odsrani musíme ji označi zaškráacím políčkem leo od názu rs a sisknou lačíko Remoe seleced. Nní nasaíme paramer jednoliých rse. Jméno rs slouží jen pro naši orienaci z hlediska orb erénu je nepodsané. Tlačíkem Load čási Teure načeme obrázek kerý bude použi jako eura při izualizaci dané rs. Proo ab mohl bý erén ořen musí mí každá rsa nasaenu nějakou euru. V čási Maerial parameers můžeme nasai jednolié paramer maeriálu rs: alus angle - určuje úhel maimálního sklonu sahu e supních při epelné erozi densi - určuje odolnos maeriálu ůči epelné erozi z ineralu 0 1 0 eroze maeriál ůbec neoliní 1 maimální rozpad maeriálu dissolubili - udáá míru rozpusnosi maeriálu e odě z ineralu 0 1 0 maeriál je zcela odolný ůči odní erozi 1 - maimálně rozpusný wind resisii - určuje odolnos ůči ěru z ineralu 0 1 0 maeriál je minimálně odolný ůči ěru 1 ůči ěru zcela odolný V čási Heigh map nasaíme ýškoou mapu pro každou rsu. Tlačíkem Load načeme soubor s ýškoou mapou kerý může bý buď e formáu *.raw nebo o může bý jakýkoli běžný obrázek kde černá bara reprezenuje nejnižší ýšku erénu a bílá bara nejšší. V případě obrázku se použijí jako rozměr map rozměr obrázku a nasaené hodno se ignorují. Proo ab mohl bý ořen erén je nuné nasai ýškoou mapu pro každou rsu kromě erodoaného maeriálu. Po nasaení šech paramerů můžeme erén oři lačíkem Creae errain. Nní b se měl okně Erosion objei ořený erén. Okno b mělo pada podobně jako na obrázku U.2. Kolečkem mši můžeme erén přibližoa nebo oddaloa. Siskem leého lačíkem na ploše kde je erén zobrazený a ažením mši erénem oáčíme podobně praým lačíkem můžeme erén posoua a ím měni sřed oáčení en je žd uprosřed zobrazoací ploch a při generoání erénu se žd nasaí na sřed erénu. 53
Obrázek U.2: Okno Erosion hlaní okno programu slouží pro izualizaci erénu Nní si popíšeme jednoliá políčka okně Erosion: Waer erosion - proporce odní eroze Wind erosion - proporce ěrné eroze Thermal erosion - proporce epelné eroze seps coun - poče kroků eroze eaporaion coef. - pařoací koeficien 0 oda se nepařuje 1 jednom kroku se paří 100% od dissoling coef. - koeficien rozpusnosi 0 oda žádný maeriál nerozpouší 1 rozpoušění je maimální deposiion coef. - koeficien usazoání 0 sedimen se neusazuje 1 usazoání je maimální Show waer - určuje zda se zobrazí oda direcon angle - úhel směru ěru e supních 0 směr os wind fall angle - úhel klesání ěru e supních ineralu od 0 do 45 erosion coef. - koeficien ěrné eroze 0 žádná eroze 1 maimální eroze alus - úhel maimálního sahu e supních způsobeného náanem ěru capaci - kapacia ěru kolik maimálně maeriálu může bý e zduchu wind deposiion - koeficien usazoání na ěru 0 žádné 1 maimální shadow deposiion - koeficien usazoání e ěrném sínu 0 žádné 1 maimální 54
Pro nasaení odních zdrojů pro odní erozi slouží zlášní okno Waer Sources keré zobrazíme lačíkem Waer sources. Too okno je zobrazeno na obrázku U.3. Obrázek U.3: Okno Waer Sources pro nasaení odních zdrojů V leé čási okna se zobrazí ýškoá mapa erénu kam můžeme kresli odní zdroje. V praé čási okna si můžeme čási Tool size nasai elikos kreslícího násroje. V čási Source power pak políčku Waer olume určujeme množsí od keré bude přibýa u kresleného zdroje čím ěší množsí ím maší bara kreslení. Dále si éo čási můžeme zoli zda kreslený zdroj přidá dané množsí od pouze na začáku eroze One ime nebo oo množsí bude přidáa každém kroku Permanen. Tlačíkem Remoe las source můžeme smaza naposled nakreslený odní zdroj dalším siskem pak zdroj kreslený předposlední ad.. Tlačíkem Clear sources smažeme šechn nakreslené odní zdroje. V čási Rain můžeme zaškrnuím políčka Aciae přida aké déšť. Políčko Raindrop olume určuje elikos objemu kapk kerá udáá množsí od keré dopadne na porch erénu jedné buňce jako jedna dešťoá kapka. Políčko Rain power určuje sílu dešě z ineralu od nul do jedné kerá oliňuje poče kapek spadlých jednom kroku odní eroze. Pokud je síla nuloá nespadne žádná dešťoá kapka pokud je jednokoá spadne jednom kroku poče kapek roný celkoému poču prků ýškoé map. Neznamená o ale že na každý prek dopadne jedna kapka. Kapk dopadají náhodně a může se sá že na někerý prek dopadne íce kapek jednom kroku a na někerý žádná. Simulaci eroze můžeme spusi lačíkem Run erosion. Během ýpoču se zobrazí progress bar kerý informuje o jeho průběhu. Výpoče lze přeruši siskem lačíka Cancel edle ohoo progress baru. 55