VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ
Uživatelská příručka k programu FloodFilling Art
Autor: Jan Bílek e-mail:
[email protected] 8. 4. 2009
Obsah 1 Princip vytváření obrazů v tomto programu......................................................................................2 1.1 Semínkové vypňování................................................................................................................2 1.2 Modifikace algoritmu v programu.............................................................................................2 2 Uživatelské rozhraní programu.........................................................................................................3 2.1 Prvky rozhraní............................................................................................................................3 2.2 Klávesové zkratky......................................................................................................................4 3 Interpolace barev...............................................................................................................................5 4 Okolí vyplňování...............................................................................................................................6 5 Tipy pro vytváření obrazů.................................................................................................................7 5.1 Obraz vytvořený pomocí jednoduché interpolace a jednotného okolí......................................7 5.2 Obraz vytvořený pomocí komplexní interpolace.......................................................................8 5.3 Obraz 'pod ledem'......................................................................................................................9 5.4 Mozaika...................................................................................................................................10
1
1 Princip vytváření obrazů v tomto programu FloodFilling Art vytváří obrazy na základě algoritmu semínkového vyplňování. Ten je běžně používán pro vyplňování ohraničených oblastí, zde je však jeho využití poněkud odlišné a modifikovatelné pomocí nastavení, které bude zmíněno později. Porozumění principu, na kterém celý program pracuje, může velmi usnadnit nejen práci s programem, ale i dosažení zajímavých výsledků.
1.1 Semínkové vypňování Semínkové vyplňování vyplňuje oblast z jednoho zvoleného bodu, takzvaného semínka, takovým způsobem, že původní semínko vytvoří nová semínka v okolí původního, pokud daný bod v okolí již neobsahuje barvu, kterou je vyplňováno, nebo není hraničním bodem. Nová semínka opět vytvářejí další ve svém okolí a vše se opakuje až do chvíle, kdy je celá oblast vyplněna. Vše je znázorněno na následujících obrázcích. Červeně jsou znázorněna aktuální semínka, žlutě okolní body a tmavě červeně již vyplněné body.
Obrázek 1.1 1. krok
Obrázek 1.2 2. krok
Na výše uvedeném příkladu je vyplňování čtyřokolí, existuje ještě varianta osmiokolí, která, oproti čtyřokolí, vyplňuje i úhlopříčně sousední body.
1.2 Modifikace algoritmu v programu Pro vytváření esteticky zajímavých obrázků je však tato technika použita poněkud odlišně. Především se v obrazu nenalézají jiné druhy hranic, než okraje obrázku a již vyplněné oblasti. Algoritmus tedy vpodstatě pouze určuje, jakým způsobem se bude barva 'rozlévat' do okolí. Dalším důležitým rozdílem je barva, kterou je vyplnění prováděno. V původní verzi algoritmu je oblast vyplněna jednolitou barvou, která je shodná jak pro první, tak pro poslední i kterékoliv jiné semínko. Toho je v tomto programu také možno dosáhnout, pokud použijeme jednoduchou interpolaci, ale obrazy vytvořené pouze tímto způsobem by (často) nebyly příliš esteticky hodnotné. Proto je možno nastavit způsob, jakým bude barva nového semínka určena. Ve zkratce se jedná o to, že nová barva může být určena nejen barvou vyplňování, ale také barvou, která se již na dané pozici v obraze nachází. Z takového určení barvy by však vyplýval problém, protože by se nedalo určit, která místa již byla vyplněna a která je ještě třeba vyplnit (nevyplňujeme totiž jednotnou barvou). Proto se v programu vyplňují hned dva obrazy – jeden skrytý, který slouží pro uchování informace o vyplněných oblastech a je vyplňován vždy pouze zvolenou barvou, a druhý, který se zobrazuje uživateli a je vyplněn dle zvoleného nastavení. 2
2 Uživatelské rozhraní programu
Obrázek 2.1 Uživatelské rozhraní aplikace
2.1 Prvky rozhraní • •
•
•
•
1 – Plocha obrázku – kliknutím je možné umístit libovolný počet semínek. 2 – Barva, kterou je prováděno vyplňování – kliknutím je možné nastavit jinou barvu. Tato barva je buď přímo použita pro vyplnění bodu, nebo je použita pro výpočet interpolované barvy. 3 – Rychlá volba barev – zde je možno po kliknutí pravým tlačítkem nastavit si 18 barev, které je potom možné levým tlačítkem použít. Rychlé barvy slouží k usnadnění práce s programem. 4 – Rychlost vyplňování – zde je možné nastavit rychlost, se kterou jsou vytvářena nová semínka. Program je možno do značné míry zpomalit, maximální rychlost je však omezena výkonem počítače a při vysokém počtu semínek může být výpočet značně pomalý. Obzvláště při častém střídání barev je snadné dosáhnout řádově tisíců semínek. 5 – Zachování barvy semínek při změně barvy – tato volba se uplatňuje pouze při zapnuté komplexní interpolaci (6) . Pokud je vypnuta, při změně barvy je všem existujícím semínkům přenastavena jejich barva na nově zvolenou. Pokud je zapnuta, existující semínka si při změně barvy svou barvu zachovávají a předávají ji semínkům, které jsou z nich vygenerovány. Nově zvolená barva je použita pouze pro nově umístěná semínka. 3
•
• • • • • •
•
•
6 – Interpolace barev – volba určuje, jakým způsobem je zvolena nová barva semínka. Míru interpolace určuje zde se nalézající posuvník. Jednotlivé způsoby jsou popsány v kapitole 3. 7 – Volba okolí – zde je možno zvolit typ okolí, které bude použito pro generování nových semínek. Více lze najít v kapitole 4. 8 – O programu – velmi stručná informace o programu. 9 – Vyplnění obrazu – vyplní celou oblast obrázku zvolenou barvou. 10 – Odstranění semínek – odstraní všechna semínka v obrazu. Do té doby, než je ručně umístěno nové semínko, není tedy nic generováno. 11 – Nový obrázek – vytvoří nový obrázek o rozměrech zadaných do kolonek nad tlačítkem (šířka, výška) 12 – Načtení souboru: ▪ vytvoření nového obrazu z obrázku ve formátu bmp nebo jpg, který bude načten na pozadí ▪ načtení uložené palety barev ▪ načtení uloženého projektu (obraz a umístěná i rozgenerovaná semínka) 13 – Uložění ▪ uložení obrazu ve formátu BMP (finální výstup programu) ▪ uložení aktuální barevné palety ▪ uložení kompletního projektu (obraz a umístěná i rozgenerovaná semínka) - vhodné pro uložení rozpracovaného obrazu jako zálohy, ke které se uživatel může vracet ve chvíli, kdy se mu další generování nepovede dle představ. 14 – Spuštění/pozastavení běhu programu – spustí/pozastaví generování nových semínek. Tuto možnost je vhodné použít jak při příliš vysoké rychlosti generování, tak při příliš pomalé rychlosti
2.2 Klávesové zkratky • • • • • • • •
4
Mezerník spuštění/pozastavení běhu programu Enter spuštění/pozastavení běhu programu Numerická klávesa 1 Interpolation: none Numerická klávesa 2 Interpolation: simple Numerická klávesa 3 Interpolation: complex Numerická klávesa 4 Surrounding: 4 Numerická klávesa 5 Surrounding: 8 Numerická klávesa 6 Surrounding: Random
3 Interpolace barev Program umožňuje volbu tří typů interpolace barev nových semínek. Právě typ interpolace do značné míry ovlivňuje způsob, kterým budou nová semínka ovlivňovat podobu obrazu. • První možností je interpolaci zcela vypnout. Potom je pro určení barvy nových semínek použita zvolená barva bez jakéhokoliv ovlivnění barvou, která se na dané pozici nacházela původně. Možnosti využití tohoto nastavení jsou závisí zcela na uživateli a jeho záměru, ale snadno se s vypnutou interpolací vytvářejí kontrastní plochy a vzory a lze jej využít pro relativně rychlé vygenerování prototypu, Obrázek 3.1 který teprve po překrytí dalšími vrstvami vytváří finální Volba Interpolation: none obraz. • Druhá možnost používá jednoduchou interpolaci. Ta určuje barvu semínka jednak ze zvolené barvy a jednak z barvy, která je již v obraze na dané pozici přítomna. Míra, s jakou jsou tyto barvy míšeny, je určena pozicí posuvníku. Při nejlevější pozici je podíl barev na výsledné barvě rovnocenný, při zcela pravé pozici má zvolená barva oproti původní barvě mnohem větší podíl. Obrázek 3.2 • Poslední možností je komplexní interpolace. Ta zvolenou Volba Interpolation: simple barvu z velké části zanedbává a místo ní používá barvy, které obsahují jednotlivá semínka. Zvolená barva se tedy uplatňuje pouze jako výchozí barva při umístění nového semínka. Pokud je vypnuta volba zachování barev semínek, je při volbě nové barvy tato barva nastavena všem existujícím semínkům. Barva nových semínek je tedy určena z barvy 'mateřského' semínkaa barvy již přítomné v obraze na pozici semínka. Dochází tedy k pozvolným barevným přechodům, protože původní barva je při generování dalších a dalších semínek oslabována vlivem barvy obrazu. Míra, kterou má barva semínka vliv na výslednou barvu, je stejně jako u jednoduché interpolace stanovena pozicí posuvníku. Pokud v případě jednoduché interpolace pozice posuvníku určovala Obrázek 3.3 míru průhlednosti původního vzoru, pro komplexní Volba Interpolation: complex interpolaci je to spíše rychlost barevného přechodu.
Obrázek 3.4 Vliv nastavení míry interpolace (nejméně – střed - nejvíce)
5
4 Okolí vyplňování Okolí vyplňování určuje, jaké obrazce budou vytvářeny postupujícím generováním semínek. Nastavení mění způsob, jakým je chápáno okolí semínka, tedy směr, kterým se z původního semínka budou vytvářet nové. Vhodnými změnami podoby okolí v průběhu vytváření obrázku lze dosáhnout například zajímavě vypadajících 'mozaik'. • První možnou volbou je čtyřokolí. Při zvolení této možnosti je semínko generováno do čtyř sousedních směrů, konkrétně nalevo, napravo, nahoru a dolů od původního semínka. Obraz vytvářený s použitím čtyřokolí často má, nebo alespoň evokuje, podobu o 45° otočených čtverců. • Druhá možná volba je osmiokolí. V tomto případě je semínko generováno jak do čtyř směrů, které jsou shodné s čtyřokolím, tak do dalších čtyřech úhlopříčných, tedy nahoře vlevo a vpravo a dole vlevo a vpravo. Tvar takového okolí je tedy čtvercový a obraz vytvořený s použitím nastavení osmiokolí často obsahuje právě čtvercové obrazce. • Poslední možnou volbou programu je náhodné okolí. Pokud je zvoleno náhodné okolí, je vybírána náhodná množina ze všech pozic osmiokolí.
Obrázek 4.1 Ukázka generování při různém nastavení okolí: čtyřokolí, osmiokolí,
6
náhodné okolí
5 Tipy pro vytváření obrazů Při tvorbě obrazů pomocí tohoto programu mnohdy k dosažení zajímavého výstupu vede cesta přes záměrné překrývání výplní, postupnou úpravu barevnosti obrazu a střídání barev v rozumných intervalech. Samozřejmě se nejedná o pravidlo a mnoho povedených obrazů jde vytvořit s odlišným přístupem. Několik tipů je v následujícím textu rozebráno podrobněji. Opět platí, že se jedná pouze o subjektivně-osvědčený přístup a záleží zcela na uživateli, jestli jej použije jako inspiraci pro vlastní tvorbu, nebo si nalezne vlastní, vhodnější či alespoň odlišnou, cestu.
5.1 Obraz vytvořený pomocí jednoduché interpolace a jednotného okolí Pokud zvolíme jednoduchou interpolaci barev, můžeme tím, že budeme ve vhodných momentech měnit barvy, snadno vytvořit zajímavé více či méně povedené obrazy. Míru interpolace nastavíme na odpovídajícím posuvníku na minimum. Na začátku vybereme barvu pozadí a umístíme několik počátečních semínek. Semínka můžeme umístit relativně náhodně, není jich však potřeba příliš mnoho a je možné je přidávat i do již rozgenerovaného obrazu. Barevné plochy šířící se od různých semínek začnou po čase vzájemně kolidovat a právě tyto kolize mohou vytvořit zajímavé efekty v obraze. Při generování volíme v relativně rychlém sledu barvy dle svého přání a necháme obraz utvářet soustředné obrazce. Barevná podoba obrazu se velmi rychle mění a je třeba dopředu uvažovat, jakým způsobem se barvy překryjí, kam se budou šířit a jakou si přejeme konečnou podobu obrazu. Nutná je také menší dávka trpělivosti, protože při častém střídání barev roste počet semínek do velmi vysokých počtů a výpočet kroků může být pomalý. Proto je dobré užívat možnosti pozastavení generování (ideálně pomocí kláves Enter nebo mezerník), které umožňuje práci relativně nerušenou proměnlivou rychlostí výpočtu. Právě při tomto způsobu je vhodné nechat obraz třeba i několikrát překrýt vrstvami výplně. To mu dodá na určité plastičnosti a zajímavosti. Následuje příklad vytvoření obrazu popsaným způsobem zachycený v několika krocích.
7
5.2 Obraz vytvořený pomocí komplexní interpolace Volba komplexní interpolace umožňuje vytvářet obrazy podobným způsobem jako v předchozím případě, ale s dost rozdílným výsledkem. Opět je vytvoření obrazu založeno na umístění semínek a vhodném postupném výběru barev. Nyní však vyplňování vytváří plynulé barevné přechody, které jednak dodávají obrazu hladší plochy a jednak při vhodném použití obraz zajímavým způsobem rozmazávají. Komplexní interpolace neznamená zahrnutí komplexních čísel do výpočtu, jak by se mohlo na první pohled zdát. Značí složitější, komplexnější způsob práce s barvou semínek. Semínka totiž při generování přejímají určenou měrou barvu okolí a pokud jsou generována dostatečně dlouho, barva místa, po kterém se šíří, převýší vliv původní barvy a vznikne efekt rozmazaných, rozpíjejících, či vrstvou ledu pokrytých ploch. Nyní také záleží na volbě zachování barev semínek při změně barvy, protože lze vytvořit současně postupující různobarevné plochy, nebo naopak změnit barvu všech semínek ve chvíli, kdy je již příliš ovlivněna barvou okolí. Pokud budeme například v pravidelných intervalech volit stále stejnou barvu, můžeme dosáhnout 'vrstevnicové' podoby vygenerovaného obrazu. Tato část je opět zakončena ukázkou několika fází vytváření obrazu s využitím komplexní interpolace.
8
5.3 Obraz 'pod ledem' Jak bylo zmíněno, nastavení komplexní interpolace se dá využít i k zajímavě vypadajícímu efektu, který může připomínat pokrytí obrazu vrstvou ledu. Tím lze dodat odlišnou podobu i již existujícímu obrazu, nebo při několikanásobné aplikaci vytvořit z konkrétního obrazu abstrakci. Stačí otevřít existující obrázek pomocí tlačítka 'from img', do zvoleného bodu (jednoho či více) umístit počáteční semínka, nastavit požadovanou míru interpolace a nechat obraz vyplnit. Po určitém počtu cyklů generování nových semínek obsahují nová semínka barvu, kterou nabraly z načteného obrazu a při vytváření nových semínek v dalších cyklech tuto barvu posouvají do okolí a zároveň je opět barva, která bude předávána dále, ovlivňována barevností obrazu v daném místě. V místech, kde se, v případě umístění většího počtu semínek, setkají vyplňované oblasti, vznikají ostré přechody. Následuje ukázka tohoto postupu.
poznámka: upravena sytost barev
9
5.4 Mozaika Pomocí programu lze generovat i mozaikovité útvary. Je však potřeba vhodně změnit nastavení v průběhu generování. Mozaiku vytváříme z jediného semínka, protože umístěním více by docházelo ke kolizím, které by ničily pravidelnou strukturu obrazu. Semínko je vhodné umístit doprostřed obrazu a začít generovat výplň buď 4 nebo 8 okolím. Interpolaci je možné zvolit libovolně, velmi dobré výsledky ovšem přináší jednoduchá s nastavením nízké míry vlivu zvolené barvy. Poté, co je vygenerována malá oblast, zvolíme jiný druh interpolace a jinou barvu. Tedy pokud jsme generovali čtyřokolí, zvolíme osmiokolí a naopak. Díky této změně by se tvar generovaného obrazce měl blížit osmiúhelníku. Dalším důležitým krokem je opětovná změna barvy ještě předtím, než se okraj postupující zpět směrem ke středu uzavře. Tím dostaneme dva okraje oblastí rozdílného tvaru postupující proti sobě. Ve chvíli, kdy dojde k částečnému spojení hranic těchto oblastí opět zvolíme barvu a dostaneme tak základ vznikající mozaiky. Střetnutí vyplňovaných oblastí v takový moment totiž vytvoří čtyři ještě nevyplněné cípy, na kterých následně vzniknou nově se generující oblasti. Ty svými dalšími částečnými spoji vytváří (při vhodném načasování změn barev) složitější útvary. Na následujících obrázcích je vidět průběh vzniku podobné mozaiky. Lze si také povšimnout změn barevnosti za účelem dosažení konečné podoby obrázku.
10