• No results found

Pro samotn´y Blender v souˇcasn´e dobˇe neexistuje dostateˇcnˇe vypracovan´y simul´ator au-tomatizaci tvorby strom˚u.

Jedn´ım z nejjednoduˇsˇs´ıch postup˚u je vytvoˇren´ı plochy, na n´ıˇz je nanesena textura stromu, doplnˇen´a o alfa kan´al2. Tento zp˚usob je snadno realizovateln´y a v´ypoˇcetnˇe nen´aroˇcn´y.

Na druhou stranu m˚uˇze b´yt obt´ıˇzn´e poˇr´ızen´ı kvalitn´ı textury, aˇckoli je na internetu moˇzn´e sehnat ˇradu textur r˚uzn´ych strom˚u. Hlavn´ımi slabinami tohoto postupu jsou velmi ploch´y v´ysledek, kter´y se projev´ı pˇri bliˇzˇs´ıch pohledech.

O nˇeco lepˇs´ıch v´ysledk˚u lze dos´ahnout ruˇcn´ım vytvoˇren´ım modelu stromu a n´asledn´ym vyuˇzit´ım skriptu pro jeho olistˇen´ı. Tento postup jiˇz vede na vˇerohodnˇejˇs´ı model pˇri lepˇs´ım ruˇcn´ımu vytvoˇren´ı kmenu a z´aroveˇn v´yraznˇe usnadˇnuje pr´aci automatizac´ı olistˇen´ı, kter´e by v pˇr´ıpadˇe, ˇze by jej mˇel vykon´avat ˇclovˇek, trvalo ne´umˇernˇe dlouho. Nicm´enˇe st´ale tento postup klade na autora modelu vysok´e n´aroky.

2sloˇzka urˇcuj´ıc´ı pr˚uhlednost pixelu

2 C´ıl pr´ ace

C´ılem diplomov´e pr´ace je vytvoˇrit pro aplikaci Blender skript v jazyce Python, kter´y bude simulovat r˚ust rostliny. Kromˇe moˇznosti exportovat hotovou rostlinu do jin´eho programu, coˇz je z´aleˇzitost samotn´eho Blenderu, je poˇzadov´ana moˇznost vyuˇz´ıt i animaci samotn´eho r˚ustu.

Jak vych´az´ı z poˇzadavk˚u na simul´ator stromu, r˚ust rostliny z jist´e ˇc´asti mus´ı z´aviset na n´ahodˇe, aby dva stromy stejn´eho nastaven´ı byly dostateˇcnˇe odliˇsn´e a pˇri pouˇzit´ı v jedn´e sc´enˇe nep˚usobily dojmem kopi´ı. Na druhou stranu je potˇreba, aby do velk´e m´ıry byl r˚ust ovlivniteln´y d˚uleˇzit´ymi parametry, kter´e umoˇzn´ı tvoˇrit stromy stejn´eho druhu.

Za t´ımto ´uˇcelem je potˇreba stanovit d˚uleˇzit´e faktory a urˇcit co a jak´ym zp˚usobem ovlivn´ı.

Strom mus´ı reagovat na vnˇejˇs´ı faktory, jako je slunce, pomoc´ı jasnˇe definovan´ych parametr˚u pevnˇe dan´ym mechanismem. Je potˇreba m´ıt kontrolu nad t´ım, do jak´e m´ıry kter´y faktor ovlivn´ı r˚ust rostliny a do jak´e m´ıry bude ovlivˇnovat jeho r˚ust n´ahoda. D´ale mus´ı strom reagovat na sebe sama tak, aby nedoch´azelo ke kˇr´ıˇzen´ı vˇetv´ı.

P˚uvodn´ı pˇredstava animace r˚ustu se op´ırala o vyuˇzit´ı animaˇcn´ıch n´astroj˚u Blenderu, kter´e umoˇzˇnuj´ı mˇenit velikost jednotliv´ych objekt˚u a tyto zmˇeny pˇriˇrazovat jednotliv´ym sn´ımk˚um, coˇz by umoˇzˇnovalo vytvoˇren´ı animace a jej´ı zpˇetn´e prohl´ıˇzen´ı a vizualizaci.

Od t´eto pˇredstavy jsme po konzultaci upustili, protoˇze animov´an´ı samotn´e velikosti jed-notliv´ych kus˚u vˇetve by vedlo k nutnosti zachovat pomˇer mezi zaˇc´atkem a koncem kaˇzd´eho segmentu vˇetve. Ve v´ysledku by pak nebylo moˇzn´e plnohodnotnˇe uplatnit specifick´e vlast-nosti vˇetv´ı, kter´e maj´ı m´ıt vliv na d´elku a tlouˇst’ku kaˇzd´eho ´useku vˇetve.

Aˇckoli by tento probl´em ˇslo ˇreˇsit pouˇzit´ım jin´ych n´astroj˚u, jejich pouˇzit´ı by bylo v´yraznˇe n´aroˇcnˇejˇs´ı. Proto jsme upustili od moˇznosti kl´ıˇcov´an´ı animace jako takov´e a rozhodli jsme se vytvoˇrit animaci pouh´ym vykreslen´ım sc´eny poˇzadovan´ych krok˚u.

3 N´ avrh ˇ reˇ sen´ı

Protoˇze v´ysledkem t´eto pr´ace je vytvoˇren´ı komplexn´ıho skriptu, byla cel´a pr´ace rozdˇelena do nˇekolika v´yvojov´ych etap tak, aby bylo moˇzn´e pl´anovat menˇs´ı ´ukoly a sn´aze sledovat pr˚ubˇeˇzn´y v´yvoj.

3.1 Vytvoˇ ren´ı stromov´ e struktury a pr´ ace s n´ı

Vzhledem k potˇrebˇe siln´eho apar´atu, kter´y by dok´azal spr´avu a snadn´y pˇr´ıstup ke vˇsem parametr˚um takˇrka neomezenˇe rostouc´ıho stromu, vyuˇz´ıv´a skript simul´atoru moˇznost´ı ob-jektovˇe orientovan´eho programov´an´ı, kter´e je v jazyce Python velmi dobˇre podporov´ano.

S pˇrihl´ednut´ım ke struktuˇre skuteˇcn´eho stromu byl deklarov´an objekt segment, kter´y odpov´ıd´a kusu stromu mezi dvojic´ı vˇetven´ı. Taktov´emu objektu jsou v pr˚ubˇehu pro-gramov´an´ı doplˇnov´any jeho vlastnosti a funkce.

V poˇc´atku m´a kaˇzd´y segment promˇenn´e vˇek a potomci, coˇz je pole vˇsech segment˚u, kter´e z nˇeho na jeho konci vyr˚ustaj´ı. V pr˚ubˇehu programov´an´ı zam´yˇsl´ım podle potˇreby vkl´adat dalˇs´ı vlastnosti reflektuj´ıc´ı potˇreby skriptu pro simulaci r˚ustu.

Prvn´ı vytvoˇrenou funkc´ı je R˚ust, kter´a bude pˇri bˇehu skriptu vol´ana na koˇrenov´y seg-ment a pˇri proch´azen´ı vˇsech potomk˚u zajist´ı realizaci r˚ustu. Tato funkce pˇri sv´em bˇehu vol´a dalˇs´ı pomocn´e funkce.

Pˇri samotn´em spuˇstˇen´ı programu je vˇzdy vytvoˇren jeden koˇrenov´y prvek, na nˇemˇz se v urˇcen´em poˇctu iterac´ı vol´a funkce pro jeho r˚ust. N´aslednˇe, v pˇredem definovan´ych kroc´ıch, se volaj´ı funkce pro vykreslen´ı modelu a jeho vizualizaci.

Pro testovac´ı ´uˇcely je cel´a stromov´a struktura v t´eto f´azi reprezentov´ana v .html souboru (obr 3), kter´y pˇrehlednˇe zobrazuje vztahy a poˇzadovan´e vlastnosti vznikl´eho stromu.

Zde je patrn´y koˇrenov´y element root, kter´y m´a jednoho potomka, kter´y zde reprezentuje

jeho vˇek. Horizont´aln´ı ˇc´ary reprezentuj´ı vztahy mezi jednotliv´ymi generacemi vˇetv´ı.

Obr´azek 3: html reprezentace stromov´e struktury

Pˇres omezen´e moˇznosti tohoto jednoduch´eho zobrazovac´ıho mechanismu je moˇzn´e jeho prostˇrednictv´ım jiˇz v t´eto f´azi sledovat fungov´an´ı skriptu a pouˇz´ıt jej pro ovˇeˇrov´an´ı fun-gov´an´ı mechanismu vykreslov´an´ı v dalˇs´ı etapˇe.

Related documents