Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
3D grafika
Shadermania - texturování, ale bez textur
28. července 2005, 00.00 | Trochu podivný nadpis, ale pravdivý. Existují totiž technologie, které nám to umožňují. A co víc, dokonce nemusíme mít připravenou UV mapu modelu. Vše je jednoduché, přehledné a přitom v zásadě můžeme například tvář animovat bez obav z toho, že by povrch „tekl“ po povrchu. Prostě takový malý zázrak. A kdo jej má na svědomí? Shader Vertexová mapa v CINEMĚ 4D R 8.5 a vyšší.
Shaderu Vertexová mapa jsme se jednou již dotkli, to když jsem kdysi řešil problematiku artefaktů na povrchu efektu SubSurface Scattering. Tehdy mi ale nedošla celá šíře možností, které tento shader, či možná bychom přímo mohli říci technologie, nabízí. Ale nejdříve vlastně musíme říci, kdo tento shader může využívat. Jednoduše ten, kdo má CINEMU 4D R8.5 a vyšší (alespoň myslím, že shader Vertexová mapa byl prvně v masivní aktualizaci R8.5).
Samotný shader Vertexová mapa by ale byl k ničemu, kdybychom také neměli ostatní shadery standardní výbavy C4D R8.5 a vyšší, protože shader Vertexová mapa se používá jen jako „maska“ ploch, které chceme ovlivnit nějakou barvou povrchu. Ale to jsme pro začátek řekli snad až příliš. Začít musíme přeci jen více zvolna.
Nejdříve pro ty méně zkušené musíme popsat, co to vlastně vertexová mapa je. Tedy co je to obecně, nikoliv ve smyslu shaderu. Tedy vertexová mapa je hodnota od 0 do 1, která definuje v tom kterém bodě polygonového objektu (tedy nelze ji definovat u primitiv a generátorů) vliv nějakého případného efektu. Tedy primárně se vertexové mapy používají u deformátorů, zejména kostí, kdy definují oblasti, kde případná kost působí a kde ne. Každý objekt může mít vertexových map vícero a definovat je můžeme jak v režimu bodů, tak v režimu polygonů, kdy ale nejde o nic jiného, jak o definování bodů, mezi kterými příslušné polygony leží.
Vertexovou mapu můžeme definovat několika způsoby. Nejjednodušší je začít tak, si vybrat oblast, kde má efekt působit v plné míře a zvolit Výběr > Nastavení vlivu – vertexová mapa. Dialog se nás otáže, jakou že váhu chceme vybraným elementům nastavit a pak, po potvrzení, se vytvoří námi požadovaná vertexová mapa. V té jsou ale všechny dříve vybrané elementy nastavené na stejnou váhu (ve výchozím stavu je červená plocha s nulovým vlivem a žlutá s maximálním). Takové nastavení je ale krajně nedokonalé, můžeme přeci potřebovat definovat přechodové oblasti vlivu, kde intenzita efektu postupně slábne. Jak ale na to? Velmi prostě, stačí mít vybraný příslušný polygonový objekt, aktivovat režim polygonů a nebo bodů, a zapnout si výběrový nástroj Přímý výběr, a ve Správci nastavení zadat volbu tvorby vertexové mapy. Ve Správci objektů bychom také měli mít vybranou vlastnost příslušné vertexové mapy, kterou jsme případně vytvořili předchozím krokem.
Pokud jsme všechno výše uvedené splnili, můžeme si ve Správci nastavení nastavit nanášení vertexové mapy tak, jak potřebujeme. Pokud máme tablet, můžeme aktivovat možnost řízení nanášení přítlakem pera, můžeme si nastavit zda chceme hodnotu nanášení přičítat k nanesenému výběru, odečítat a podobně. Pokud nad modelem stiskneme tlačítko myši a nebo potáhneme pero tabletu po desce, nanášíme na body váhu vlivu vertexové mapy. Žlutá je hodnota 100%, červená 0%.
Přímý výběr, respektive jeho režim nanášení vertexové mapy je velmi efektní, ale není tím posledním ani nejefektivnějším nástrojem, který lze použít. Asi tím nejvýkonnějším nástrojem (mimo nástroje MOCCY Claude Bonet, ale ten nevytváří vlastnosti vertexových map jako takové) je nástroj Štětec. Kdysi, při popisu novinek, které byly v C4D R9, jsem se tohoto nástroje velmi široce dotknul a nezapomněl jsem poměrně podrobně zmínit, že tento nástroj obsahuje celkem čtyři režimy, které jsou pro nanášení vertexové mapy velmi efektní.
Víme, co je vertexová mapa, ale jak ji využít pro tvorbu materiálu? Je to poměrně prosté. V jakémkoliv kanálu materiálu můžeme použít shader Vertexová mapa (ten je v seznamu shaderů, položce Efekty), ve kterém lze pouhým přenesením ikony ze Správce objektů definovat příslušnou vertexovou mapu objektu. Tento shader pak definuje barvu tak, že bílé oblasti jsou oblasti s maximálním vlivem vertexové mapy, černé s minimálním. Samozřejmě lze celý efekt také invertovat.
Pokud víme, jak vytvořit shader Vertexová mapa, pokud víme, jak vertexovou mapu jako takovou vyrobit, tak nám nebrání nic v tom, abychom si například do kanálu Barva materiálu dali shader Fůze, do jehož základního kanálu dáme například nějaký šum. A do krycího kanálu můžeme dát třeba naší vertexovou mapu. Pokud zadáme režim krytí Závoj a předtím ještě v nastavení vertexové mapy aktivujeme Inverzní efekt, tak se stane to, že šum se na povrchu objektu objeví jen tam, kde je nastavený vliv vertexové mapy.
Otázka zní, co nám brání v tom, abychom měli shader Vrstvy a v něm několik shaderů Fůze, vždy každý jeden pro šum či barvu a vertexovou mapu, která definuje oblast, kde se vzorek projeví, které budou míchány se základní barvou povrchu, například pomocí režimu krytí Násobení. Zcela podle popsaného principu tomu je u následující tváře (mimochodem je to Otto, který je ve standardní knihovně C4D).
Zkusíme si tedy trochu projít princip, kterým je povrch Otty vytvořen (tedy přesněji kanál Barva). Není to vlastně nic těžkého a základem je shader Vrstvy, ve kterém jsou, jak jsme se již zmínili, několik shaderů Fůze, vždy jeden, každý pro nějakou oblast a povrch na ní. Nejdříve se ale podíváme na to, jaké vertexové mapy na Ottovi máme. Je jich dohromady poměrně dost, ale jednu z nich můžeme pro další popis trochu vynechat, protože je určena pro definování odlesku tváří. Je to samozřejmě ta, která je popsaná jako Odlesk.
Ústa
Oči
Tváře
Obočí
Ústa uvnitř, nos a pod.
Odlesk
Tedy na dalším obrázku jsou jednotlivé vrstvy očíslované, první vrstva je samozřejmě ta nejvíce dole, protože ta definuje základní barvu povrchu. Čím vyšší číslo, tím výše umístěná vrstva a její efekt na vzhled povrchu. Postupně si všechny vrstvy popíšeme a vždy zmíníme, kterou vertexovou mapu vrstva ve svém shaderu Fůze případně zpracovává.
1. Zcela dole je, jak jsme se již zmínili, základní barva povrchu, kterou dále upravujeme.
2. Druhý v pořadí je šum, který má nastavené barvy bílou jako základní a tmavě cihlovou jako barvu skvrn. Celý šum je totiž nastaven tak, aby tmavě cihlové vzorky tvořily pihy na povrchu objektu. Proto má také tato vrstva nastavený režim krytí na Násobit, kdy bílá nemá na níže ležící povrch vliv a tmavá je znásobená s barvou pozadí (tedy pokud je jas 1 = 100%, pak se jas 0.2 bude násobit s pozadím (max 1, ale v tomto případě nižší) a výsledkem je tmavší barva. Tím vytvoříme na tváři vzorek pih.
3. Fresnel je efekt, který je řízen úhlem normály povrchu a úhlem paprsku kamery. V tomto případě je barva oranžová v případě, že je tento úhel velký a černá tehdy, je-li tento úhel malý. Díky režimu Závoj, který má ten efekt, že černá je vzhledem k níže položeným vrstvám „průhledná“ a světlejší tóny jsou vzhledem ke zvyšující se hodnotě celkového jasu (asi bychom spíše měli užívat pojmu hodnot všech kanálů) stále více kryjící, tak tím získáme na okrajích povrchu obličeje světlejší barvy jak v oblastech směřující na kameru.
4. V této vrstvě je další šum s malým vzorkem s bílou a růžovo-červenou barvou. Tento vzorek je násoben s pozadím s nižším krytím vrstvy. Vznikne tak přirozeně se jevící šum – póry na povrchu.
5. Zde máme náš první shader Fůze, který si popíšeme. Tento shader v sobě obsahuje také první vertexovou mapu. A to mapu definující ústa, či lépe řečeno rty a tváře. Podkladovým kanálem je opět šum, kterým definujeme barvu rtů. Shader Vertexová mapa má invertovaný výstup (v nastavení shaderu Vertexová mapa jako takovém) a díky tomu, a režimu krytí Závoj je ve výstupu „vymačkována“ právě jen oblast rtů. Barvu rtů pak násobíme s níže uvedenými vrstvami hlavního shaderu Vrstvy. Krytí je sníženo na 75%.
6. I v této vrstvě máme shader Fůze, i v tomto shaderu (který je mimochodem nastavený velmi podobně jako shader předchozí, tedy i následující, tedy shader Vertexová mapa je vždy invertovaný a režim je nastavený na Závoj) máme jako krycí shader Vertexová mapa, v tomto případě definující oblast vnitřku úst, nosu, očí a podobně. Tedy podkladovým shaderem je prostý shader Barva, který má nastavenou tmavě červenou až tmavě cihlovou barvu. Celý shader Fůze je násobený s níže položenými vrstvami a krytí je nastavené na 100%.
7. Úplně stejně jako předchozí vrstva je také nastavená vrstva číslo 7, ve které je opět shader Fůze. Jediný rozdíl je v použité vertexové mapě, ta v tomto případě vymezuje oblast pod očima a v barvě v podkladovém kanálu, která je šedomodrá. Výsledkem je tmavá barva pod očima. Tuto vrstvu opět násobíme s níže položenými a krytí je 70%.
8. Tato vrstva obsahuje jen a pouze shader Šum, který je nastaven tak, že vytváří poměrně jemný ale kontrastní vzorek šumu bílých a černých ploch. To celé jen a pouze proto, aby tento šum „maskoval“ barvu, která je generovaná následující vrstvou 9.
9. I tato vrstva se shaderem Fůze je nastavená jako předešlé. Tedy vertexová mapa má invertovaný výstup (mapa samotná definuje oblast lící, nosu a čela), podkladový kanál je shader Barva. V tomto shaderu je nastavená poměrně sytá červeno-růžová barva. Opět vrstva interaktuje s níže položenými pomocí násobení, krytí je sníženo na 60%.
Mimochodem u této vrstvy bychom mohli samozřejmě postupovat i jinak, výsledný šum na lících nemusíme generovat pomocí maskování shaderu Šumv hlavní struktuře shaderu Vrstvy, ale chtěli jsme poněkud ozvláštnit a obohatit systém o další techniku.
10. Další vrstvou je shader Fůze, ale trochu složitější, než jsme zvyklí. V tomto shaderu Fůze je opět jak krycí kanál shader Vertexová mapa, tentokráte nastavená na oblast pod očima. Jedná se nám o to, že pomocí této vrstvy vytváříme viditelné žilky v ztmavělé oblasti pod očima. V podkladovém kanálu našeho shaderu je však další shader Fůze, ve kterém spolu interaktují dva šumy. Jeden, vrchní, má nastavený typ Turbulence a černo bílou barvu. Díky režimu krytí Závoj nám opět vlastně jen „maskuje“ oblasti shaderu, který překrývá. Podkladový shader je opět šum. Ten má nastavený režim Sema, barvu bílou a fialovou, vyšší nastavení oktáv a kontrastu. Výsledkem jsou barvené „provazce“ žilek pod okem.
Hlavní shader Fůze má opět režim krytí nastavený na Násobit.
11. Vrstva poslední. I v ní je shader Fůze a i tato vrstva je s ostatními násobená. V tomto shaderu je opět jako krycí shader Vertexová mapa, který definuje oblast obočí. Kanál podkladový tvoří shader Hatch modulu Sketch and Toon, ve kterém je jediný použitý obrázek. A to je stopa tahu pera, která šraf definuje (použil jsem stopu, která je ve Features C4D). Pomocí Hatch tedy definujeme vzorek obočí, vertexová mapa nám to opět zcela již standardním způsobem „vymaskuje“. Tím jsme s tvorbou povrchu hotoví.
Jsme tedy v závěru. Pomocí několika shaderů vertexvé mapy jsme vytvořili poměrně efektní povrch, a mimo tvorby obočí jsme k tomu nepotřebovali jediný obrázek. Obrázek se stále počítá poměrně rychle (tedy samozřejmě i v závislosti na ostatních kanálech, například v kanálu svítivost je shader pro generování efektu SubSurface Scattering a ten výpočet prodlužuje) a vlastně lze jej i animovat. I když je pravdou, že šumy na povrchu by trochu „tekly“. Tedy jak to vyřešit. Třeba tak, že si vytvoříme UV mapu a povrch (pozor, musíme vypnout shader Fresnel) upečeme do textury. tedy vyrobíme si pouze pomocí shaderů sofistikovanou texturu povrchu, kterou můžeme samozřejmě ještě doladit. Aktivitě se meze nekladou :-).
A ještě jednou výsledný obrázek na závěr.
Obsah seriálu (více o seriálu):
- Cinema 4D: Modelování lžičky
- Cinema 4D, modelování rotačních objektů (1)
- Cinema 4D, modelování rotačních objektů (2)
- Cinema 4D: Žárovka
- Cinema4D, modelování pomocí funkce Loft
- Cinema 4D - modelování bez křivek
- Cinema4D - modelujeme lidskou ruku
- Západ slunce v Cinemě snadno a rychle, bez použití jediné bitmapy
- In the Shadows... pokračování návodů ze světa stínů a světel
- In the Shadows... pokračování návodů ze světa stínů a světel, díl druhý
- Výroba louče, aneb hrátky s emitorem částic
- Bodypaint, aneb jak vyrábět textury pro 3D lépe než ve 3D
- Pyrocluster, plugin pro Cinemu 4D nejen na tvorbu pyrotechnických efektů
- Vlasy dělají člověka, Shave and a HairCut pro Cinemu 4D (a nejen pro ni)
- Cinema 4D r8 Oxygen, na prvý pohled
- Cinema 4D r 8 Oxygen a její nové modelovací funkce
- F-Curves, jednoduchá editace animací a další nepopsané funkce v Cinema 4D r8
- Jak na inverzní kinematiku v Cinemě 4D, nejen ve verzi 8
- Cinema: Využití primitivního objektu jako polotovaru pro polygonové modelování
- Jak na realisticky vypadající kovový povrch jen za pomoci shaderů? Snadno!!
- Xfrog 4, to pravé potěšení pro virtuální zahrádku
- Jak si ulehčit animace? No od čeho je tu XPresso!
- Bodypaint 3D 2.0, make up animovaných hvězd!
- CINEMA 4D R 8.5, víc než obyčejná subverze
- CINEMA 4D (R7 a vyšší) - tvorba reálně vypadajícího dřevěného povrchu
- Sketch and Toon, jak dohnat lektora výtvarné výchovy k šílenství
- Shave and HairCut 2
- Terragen a Cinema 4D R8.x
- Radiosita v programu Cinema 4D R7 až 8.5
- Materiál keramiky v Cinemě 4D
- Elektrony, jak na ně v CINEMĚ 4D R6
- Jak na některé volně šiřitelé pluginy v CINEMĚ 4D R6, modelování
- CINEMA 4D R9, uživatelské rozhraní
- Novinky v modelování v CINEMĚ 4D R9, n-úhelníky
- Novinky v modelování v CINEMĚ 4D R9, nové nástroje
- Novinky v modelování v CINEMĚ 4D R9, nové funkce
- Dynamická cesta, vlastní plugin pomocí XPressa
- Modelování bronzové sekery od A do Z
- UV mapa bronzové sekery od A do Z
- Texturování bronzové sekery pomocí BodyPaintu 3D od A do Z
- Vytvoření materiálu a scény bronzové sekery od A do Z
- Tvorba iónského sloupu, voluta hlavice, část první
- Tvorba iónského sloupu, voluta hlavice, část druhá
- Tvorba iónského sloupu, dřík
- UV mapa dříku a hlavice iónského sloupu
- Materiály a scéna iónského sloupu
- Modelování prvků architektury, rozeta, díl první
- Modelování prvků architektury, rozeta, díl druhý
- Cube 3D UV Toolkit
- 50grEy - budiž světlo, zdarma
- 51grEy – a jakpak nám ale vyrostl, co říkáte…
- Shadermania - texturování, ale bez textur
- Cinema 4D6 – Modelace lampy
- CINEMA 4D R 9.5, první postřehy a dojmy
- DPIT 3, víc jak obyčejný plugin
- Světla, co nám rozsvítí
- Ambient Occlusion
- Normálové mapy a "pečení" textur v CINEMĚ 4D R 9.5
- Rhodos, Dělová brána u paláce Velmistrů, díl 1
- Rhodos, Dělová brána u paláce Velmistrů, díl 2
- Rhodos, Dělová brána u paláce Velmistrů, díl 3
- Rhodos, Dělová brána u paláce Velmistrů, díl 4
- Čalouněná židlička s kovovým rámem
- Rhodos, Dělová brána u paláce Velmistrů, díl 5
- Rhodos, Dělová brána u paláce Velmistrů, díl 6
- Rhodos, Dělová brána u paláce Velmistrů, díl 7
- Rhodos, Dělová brána u paláce Velmistrů, díl 8
- Rhodos, Dělová brána u paláce Velmistrů, závěr
- Tvorba zjednodušeného charakteru – plynové masky
- Unikátní textura bez jakýchkoliv zdrojů? Jistě...
- Bierhanzlova mast, pro muže všech kast. A nebo taky Hair…
- Osvětlení interiéru, je libo radiozita? Díl první
- Osvětlení interiéru, je libo radiozita? Díl druhý
Tématické zařazení:
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
11. května 2014
-
23. května 2014
Epson na konferenci Droidcon Berlin ukázal nové možnosti čekající na vývojáře OS Android
-
24. listopadu 2014
-
13. května 2014
Samsung NX3000: retro styl, špičkový výkon a snadná konektivita v jednom přístroji
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
15. prosince 2014
Konica Minolta pomůže živnostenským úřadům s digitalizací dokumentů
-
11. května 2014
-
26. listopadu 2014
Canon Junior Awards již posedmé ocení mladé fotografy v rámci Czech Press Photo
-
21. srpna 2014