Portál AbcLinuxu, 6. června 2024 00:20

GIMP v příkladech - 8 (planeta)

7. 2. 2006 | Vítězslav Šmíd
Články - GIMP v příkladech - 8 (planeta)  

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]

Bump-mapping

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:

GIMP 8 Schéma 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:

GIMP 8 Povrch planety po aplikaci bump-mapy

Budiž koule!

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:

GIMP 8 Povrch planety namapovaný na
kouli

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:

GIMP 8 Planeta s atmosférickou září

Země stínů

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).

  1. Vytvořte novou průhlednou vrstvu, zařaďte ji mezi vrstvy Planeta a Pozadí a pojmenujte ji Stín.
  2. Vyberte vrstvu Planeta. Poté zvolte 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.
  3. Vyberte znovu vrstvu Stín. Výběr (selection) v obrázku nám stále zůstává.
  4. Aktivujte nástroj Plechovka (Bucket fill) (Shift+B), zatrhněte volbu Vyplnit celý výběr (Fill whole selection) a černou barvou vyplňte výběr, který nyní platí pro vrstvu Stín. Tím pádem máme vyplněnou stejnou oblast, jakou zaujímá samotná planeta.

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.

GIMP 8 Hotová planeta

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.

Seriál GIMP v příkladech (dílů: 19)

První díl: GIMP v příkladech - 1 (hvězdná obloha), poslední díl: GIMP v příkladech - 19 (kiwi 3).
Předchozí díl: GIMP v příkladech - 7 (mlha na fotografii, planeta)
Následující díl: GIMP v příkladech - 9 (hvězda, semafor)

Související články

GIMP v příkladech - 1 (hvězdná obloha)
GIMP v příkladech - 2 (hvězdná obloha 2)
GIMP v příkladech - 3 (kámen)
GIMP v příkladech - 4 (meteor)
GIMP v příkladech 5 - (blesk)
GIMP v příkladech - 6 (kometa, mraky)
GIMP v příkladech - 7 (mlha na fotografii, planeta)
GIMP v příkladech - 9 (hvězda, semafor)
GIMP v příkladech - 10 (Semafor)
GIMP v příkladech - 11 (semafor pro chodce, spirála, pružina)
GIMP v příkladech - 12 (mapa k pokladu)
GIMP v příkladech - 13 (mapa k pokladu 2)
Recenze: GIMP - Grafický editor pro Linux a Windows
Snímání obrazovky aneb vyfoťte si okno
GNU Lilypond - The music Typesetter - I
Scribo, scribere, Scribus
Geomview - váš interaktivní 3D prohlížeč
Reportáž: Blender Conference 2005, De Waag, Amsterdam
Myslíme trojrozmerne

Odkazy a zdroje

GIMP

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

7.2.2006 11:13 xxxxxxxx | skóre: 16 | blog: mrtvy blog | v nebi
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin

jen tak dál!

www.pcnews.cz
7.2.2006 14:37 Mazal
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin
Super seriál.........
7.2.2006 15:18 hynx | skóre: 7 | Martin
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin
tak tato cast sa mi najviac paci, len tak dalej
7.2.2006 17:51 Ricardo | skóre: 27 | blog: Ricardo | Horní Suchá
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin
Neuvěřitelné, super seriál, prostě krásné ... Netušil jsem, že GIMP má takové možnosti.
My mind may be raving, my words may be void, but I am not afraid of being moderated below threshold!
7.2.2006 18:47 trancelius | skóre: 22
Rozbalit Rozbalit vše spike
Odpovědět | Sbalit | Link | Blokovat | Admin
Na tom prvním obrázku si bump mapa s tou 3D elevací zrovna moc neodpovídá - např. v levém horním rohu a ve středu, kde je mapa de facto pouze světlá, je vyvýšený pouze jeden čtverec (a měly by být všechny)
7.2.2006 19:02 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: spike
Ony vyvýšené jsou, ale asi to není moc vidět... Evidentně jsem tu scénu v Blenderu přesvítil, takže elevační mapa (vlevo) je skoro celá bílá, i když neměla být :-(
7.2.2006 19:33 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: spike
To se mi nějak nepozdává, vždyť v tom (upper left) rohu jsou dva čtverce skoro stejně světlé a přitom jeden [0;0] je úplně nahoře a druhej [0;1] zase dole... a navíc ten nižší z nich je mnohem níž než tmavší čtverec na souřadnicích [0;4]
8.2.2006 08:03 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: spike
Nechci se do toho moc plést, ale není to jedno? Má to být jen pro ilustraci, ne?
8.2.2006 13:48 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: spike
jj samozřejmě, nezáleží na tom... chtěl jsem jen upozornit na chybu
7.2.2006 20:32 wajsup | skóre: 10
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin
Ten seriál je jak komiks na pokračování - nemůžu se dočkat, až bude na abc další díl, abych viděl zase něco novýho. Autor to umí podat vyloženě zábavně. Doufám, že toho nakreslíme společně ještě hodně. Díky.
9.2.2006 17:06 Vladimir Kotala | skóre: 17
Rozbalit Rozbalit vše Re: GIMP v příkladech - 8 (planeta)
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen poznamka k realisticnosti: IMHO by ten stin v zaveru nemel byt linearni pres celou kouli, ale spise jakysi pulmesic. Zkuste si treba v Blenderu nasvitit kouli - hned to bude jasne. (Neumim to jednoduse a jasne popsat.) Koneckoncu po tom prvnim namapovani to je trochu videt, jak to ma vypadat.

Takhle to proste nevypada dobre. I kdyz uznavam, ze pulmesic by se nedal udelat tak lehce a elegantne ;-)
10.2.2006 12:10 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše GIMP - help
Odpovědět | Sbalit | Link | Blokovat | Admin
No, tohle je spíše dotaz ...
Mám dojem, že něco dělám špatně. Sedím u XP (MDK mám doma) a snažím se z gimpu vytisknout nově vytvořenou vizitku. Kdysi jsem něco podobného tvořil doma, a tam mi vždy Gimp sdělil, že takvhle to nepůjde, že si musí před tiskem sloučit vrstvy (MDV 2006, verzi GIMPu nevím). Dneska mi to u XP nic neohlásí, pouze vytiskne vybranou vrstvu. Mám dojem, že při té první vizitce mi to nedělal ani doma, ani zde v práci. Už jsem si stáhl i novou verzi 2.2.10, ale tim o asi nebude, poněvadž zde kladu dotaz. Mám tušení, že závada je mezi židlí a klávesnicí, ale nevím kde. Google vyhazuje pouze odkazy na Gimp-Print, což je u XP poněkud nepoužitelné.
Děkuji za každou rozumnou radu.
Milan

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.