Portál AbcLinuxu, 3. května 2025 15:46
V dnešním díle budeme kreslit planetu, kterou jsme minule jen velmi zlehka začali. Mimo jiné si představíme velmi důležitou a užitečnou metodu - bump-mapping.
Na konci minulého dílu jsme si připravili základ pro povrch budoucí planety - jednoduchý gradient. I ten by se dal sám o sobě jednoduše použít, pokud bychom chtěli stvořit plynného obra, tedy planetu bez pevného povrchu a viditelného zvrásnění. Věnujme se však něčemu zajímavějšímu a utvořme si těleso s členitým povrchem. Na kontrolované "zhrbolatění" vrstvy se výborně hodí bump-mapping, zvaný též elevační mapa či mapa vyvýšení.
V textu budu používat anglický název bump-mapping, protože jde o zavedený a běžně používaný termín. [bump = hrbol, boule]
Pro použití tohoto filtru potřebujeme dvě vrstvy (nemusí být ve stejném obrázku). Jedna je ta, kterou chceme zvrásnit - nazveme si ji cílovou. Pak máme druhou vrstvu, kterou nazveme elevační mapa. Právě podle ní se bude řídit ono vrásnění (bumping) vrstvy cílové.
Filtr funguje zhruba tak, že si vezme elevační mapu, převede ji na režim grayscale (šedé odstíny) a podle její světlosti provede bumping cílové vrstvy. Tmavé oblasti na místě [X; Y] v elevační mapě způsobí na místě [X; Y] cílové vrstvy prohlubně, světlé oblasti naopak pohoří.
Pomocí Blenderu a GIMPu jsem se pokusil ilustrovat toto převední elevační mapy na bump-mapu:
Filtr se nachází v menu Filtry -> Mapa -> Mapa
vyvýšení
(Filters -> Map -> Bump map) a nabízí nám poměrně
rozsáhlé možnosti:
Teď, když už víme, jak zvrásnit budoucí povrch naší planety, musíme ještě najít vhodnou elevační mapu. Je také možné postupně po sobě použít dvě různé. Dobře mohou vypadat třeba fotografie Marsu, Měsíce nebo Europy, problém ale může být s jejich opakovatelností (tileabity). Dostačující může být i textura kamene nebo, paradoxně, i samotné Země. Prostě něco, co bude připomínat kontinenty, pohoří, moře, ostrovy atd. Google jako vždy poskytne spoustu podkladů.
Nelze bohužel jednoznačně říci, jak filtr nastavit, protože pro každou elevační mapu se hodí něco jiného. V podstatě je potřeba pohrát si s volbami Druh mapy (Lineární / Kulový), Zdvih a Hloubka. Mně z filtru vypadlo něco takového:
Základní povrch máme připraven, pojďme jej tedy "natáhnout" do toho
správného tvaru, a to pomocí známého filtru
Mapovat objekt (Map Object) [Filtry -> Mapa -> Mapovat
objekt
(Filters -> Map -> Map object)]. Nastavení bude
zhruba následující:
Umístěním světla (na záložce Světlo [Light]) v tomto filtru už si de facto určujete, kde bude planeta mizet ve stínu - na straně opačné od zdroje světla. Po aplikaci filtru se může stát, že povrchové detaily na planetě budou trochu rozmazané a neostré. Proto nám přijde vhod další jednoduchý filtr, a to Filtry -> Vylepšení -> Doostřit (Filters -> Enhance -> Sharpen). Funkce má pouze jediný parametr, kterým je všeříkající Ostrost (Sharpness). Za pomoci náhledu si zvolte vhodnou hodnotu, mně pomohlo číslo 50:
Nyní přichází na řadu namodralá (nebo jiná) záře atmosféry, kterou pro
nás zařídí filtr Skript-fu -> Alfa do loga -> Mimozemská záře
(Script-fu -> Alpha to logo -> Alien Glow). Má velmi podobné
nastavení jako Sálající
záře, takže snad ani nemá smysl se jím zabývat. Barvu nastavte světle
modrou až bílou, třeba #d6f5f9.
Rozumná velikost efektu je 200 pixelů při rozměrech celého obrázku
210 x 210. Pozor, jak už jsem několikrát
v tomto seriálu zmiňoval, plug-iny Script-fu s vrstvami pěkně zacvičí a
přímo zničí tu vrstvu, na kterou jsou použity. Proto si zkopírujte vrstvu
Povrch (kterou byste si už měli přejmenovat na Planetu) a
filtr Mimozemská záře použijte na tuto kopii. Jakmile skončí jeho řádění,
smažte vrstvy Planeta kopie a Background, vrstvu Alien
glow si přejmenujte na Atmosféra a zařaďte ji pod vrstvu
Planeta. Výtvor nyní, včetně jednoduchého hvězdného pozadí, vypadá
takto:
Poslední etapou je zakrytí části planety stínem, což uskutečníme pomocí masky vrstvy (layer mask). Podobně jako u kauzy mlha pokryjeme masku gradientem. Protože do mizení planety musíme zahrnout i záři její atmosféry, obě vrstvy sloučíme. Vyberte Planetu a v kontextovém menu zvolte Sloučit dolů (Merge down). Vzniklou jedinou vrstvu Atmosféra přejmenujte zpět na Planeta a přidejte jí masku příkazem Přidat masku vrstvy (Add layer mask) z kontextového menu. Jako inicializaci ponechejte výchozí Bílá (White). Poté se již jen stačí chopit nástroje Gradient. Stiskem D si zvolíme výchozí barvy (černá a bílá) a jako typ gradientu vybereme Popředí do pozadí (FG to BG). V okně vrstev se ujistíme, že máme vybraný náhled masky, nikoli samotné vrstvy, a můžeme začít experimentovat. Je mnoho možností, jak planetu zastínit. Může být jak lehce pohlazena stínem, tak téměř úplně pohlcena temnotou. Na menší stín stačí použít tvar Lineární, ale pro větší zastínění je vhodnější Radiální.
Zůstává nám tu poslední problém - planeta je sice částečně ve stínu, ale protože stín je v tomto případě pouhá průhlednost, jsou přes ni vidět hvězdy za ní, a to je hrubá chyba. Řešení je několik. Například jsme mohli rezignovat na použití masky vrstvy, raději si vzít gradient Popředí do průhlednosti (FG to transparent) a překreslit s ním samotnou planetu tak, aby čistá průhlednost začínala tam, kde má být planeta normálně viditelná, černá by končila tam, kde je planeta totálně zastíněná. Toto řešení by však znamenalo vzdát se flexibility masky (jednoduše upravitelná průhlednost). My to vyřešíme jinak - pod vrstvu Planeta vsuneme černý "koláček" stejných rozměrů, který bude překrývat nežádoucí hvězdy pod planetou. K tomu nám postačí jen trochu hrátek s výběrem (selection).
Vrstva ->
Průhlednost -> Alfa do výběru
(Layer -> Transparency ->
Alpha to selection). Tato funkce zahrne do výběru úplně neprůhledné části
vrstvy, průhledných se ani nedotkne. V našem případě to znamená, že máme
vybrané ty části vrstvy, které jsou částí planety.Velkou výhodou stále zůstává, že se zastíněním planety si můžeme pořád hrát, jak je libo, maska vrstvy je krásně upravitelná bez zásahů do zbytku obrázku. Za tuto flexibilitu jsme zaplatili malou cenu - černou podkladovou vrstvu Stín.
Tím jsme v podstatě hotovi. V příštím díle si možná ukážeme ještě jedno drobné vylepšení tohoto obrazu, a to přidání vycházející hvězdy.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.