Materiály v Autodesk Maya (2) - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

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:



Design

Materiály v Autodesk Maya (2)

26. srpna 2010, 00.00 | Dnes budeme pokračovat v prozkoumávání vlastností materiálů v Maye, probereme si specifické vlastnosti dalších shaderů ze skupiny Surface a podíváme se také na texturování, a to jak pomocí procedurálních textur, které obsahuje Maya sama, tak pomocí obrazových textur.

Otevřeme si scénu z minula (pokud ji nemáte, stáhněte si moji). Jak jsem slíbil minule, dnes všechny ty barevné materiály upravíme tak, aby alespoň trochu vypadaly jako plast, kov, beton nebo sklo. Nebudou to zatím nijak složité ani fotorealistické materiály, na ty dojde až v příštím díle. Chci spíše ukázat základní postupy a techniky.

Začneme betonem, který vytvoříme z hnědošedého materiálu pro pravou (z pohledu kamery) krychli. Jejím základem je shader Lambert, který, jak jsme si minule řekli, rovnoměrně rozptyluje dopadající světlo a nevytváří žádné odlesky. Potřebujeme nějak znázornit strukturu betonového povrchu, k čemuž použijeme obrazovou texturu, tedy, přesněji řečeno, dvě. Jednu aplikujeme na povrch namísto jednolité barvy, druhou pak použijeme jako takzvanou bump mapu k vytvoření iluze nerovností na povrchu. Stáhnout si je můžete zde.

V Hypershade editoru tedy vybereme materiál krychle a otevřeme si Attribute editor. Pod Common Material Attributes klikneme na ikonku u parametru Color, čímž otevřeme okno Create Render node. Kliknutím zvolíme typ File (soubor):

V Attribute editoru pak klikutím na ikonku zadáme cestu k souboru beton_col.jpeg. Když se nyní podíváme do Hypershade editoru, uvidíme výsledek našeho snažení:

(Poznámka: pokud se vám všechny Nodes nezobrazí, klikněte RMB na materiál v horní polovině okna a z Marking menu vyberte „Graph Network“)

    Vidíme celkem tři nodes:
  • place2DTexture1 způsobuje promítání textury…
  • …přiřazené v Node file1, tedy beton_col.jpg…
  • …po celé ploše objektu, jak je znázorněno v náhledu materiálu kostka1

Zkusíme vyrenderovat:

Nyní vylepšíme vzhled povrchu onou zmiňovanou bump mapou. Je to také obrazová textura, kterou jsem vytvořil úpravou té již použité. Úprava spočívala v převedení do černobílého obrazu a zvýšení kontrastu. Maya bude s touto texturou nakládat tak, že v místě, kde je na textuře tmavá oblast, vytvoří „prohlubeň“ a tam, kde je textura velmi světlá, vznikne „výstupek“. Uvozovky používám z toho důvodu, že jde o optickou iluzi, protože geometrie objektu zůstane nezměněna. Jakkoliv je to iluze, je velmi mocná a bez bump mappingu se prostě neobejdete. A jak bump mapu aplikovat? Jednoduše. V Common Material Attributes klikneme na ikonku u položky Bump mapping, opět zvolíme typ File a v Attribute editoru zadáme cestu ke správné textuře, tj. beton_bump.jpg. Náhled výsledku dostaneme okamžitě v Hypershade editoru:

Výslednou podobu efektu můžeme ovlivnit (krom úpravy textury) ještě nastavením parametru BumpDepth (Node bump2d1):

Pokračovat budeme plastem, jehož základem bude žlutý materiál. Minule jsme si popsali Common Material Attributes, tedy parametry dostupné všem shaderům ze skupiny Surface. Krom toho mají ale některé z nich (Blinn, Phong, Phong E, Anisotropic) ještě další sady parametrů s názvem Specular Shading, které definují, jak bude ten či onen materiál odrážet dopadající světlo:

  • Roughness – určuje drsnost povrchu a tudíž i množství odraženého světla
  • Highlight Size – velikost odlesku
  • Whiteness – zjednodušeně řečeno jas odlesku na povrchu
  • Specular Color – barva odlesku na povrchu objektu. Černá = žádný odlesk.
  • Reflectivity – schopnost materiálu zrcadlit v sobě okolí (nabývá hodnot v rozsahu 0–1), standardně 0,5.
  • Reflected color – barva, kterou můžeme tónovat zrcadlený odraz. Standardně je to černá, tj. žádné tónování.

Poslední tři parametry jsou pro výše vyjmenované shadery shodné, zbylé se liší.

Jak tedy znázorníme plast? Řekněme, že chceme trochu lesklý, hladký povrch. Roughness tedy nastavíme 0.95, vytvoříme malý, ale velmi ostrý odlesk nastavením Highlight Size na 0.033 a Specular color na čistou bílou. Reflectivity nastavíme na 0.025, abychom dostali jemné odrazy:

Zkusíme scénu vyrenderovat:

Žádný materiál ale není úplně hladký, což si můžete sami ověřit, když si podrobně prohlédnete jakýkoliv objekt. Naše žlutá kostka není výjimkou, a proto tento jev také znázorníme. Opět využijeme Bump mapping, tentokrát však texturou nebude externí soubor, ale využijeme procedurální textury, které obsahuje samotná Maya.

Stejně jako minule přiřadíme materiálu kostky bump texturu, tentokrát však bude typu Noise (2D textures -> Noise).

BumpDepth nastavíme na 0.033 a vlastní Noise takto:

Bohužel podrobné vysvětlení všech parametrů textur je nad rámec tohoto seriálu, proto Vás odkážu na velmi podrobnou a dobře zpracovanou nápovědu.

Na renderu pak materiál vypadá takto:

Podobně můžeme doplnit drobné škrábance například vhodně nastavenou texturou Wood aj.

Nyní se pokusíme na válci znázornit materiál broušeného kovu. Minule jsme mu přiřadili Surface shader Anisotropic , který je pro takové objekty vhodný díky své schopnosti simulovat lom světla na povrchu objektů s jemnými rýhami, např. CD, zmíněný broušený kov nebo peří.

Nastavíme tedy parametry shaderu takto:

Angle, SpreadX a SpreadY určují tvar a velikost odlesku na povrchu objektu, Roughness hrubost povrchu. Pokud tento parametr zvýšíte (stačí třeba na 0.1), povrch se bude jevit mnohem výrazněji rýhovaný. Specular Color a Reflected color dáme namodralý nádech.

Přidáme ještě bump mapu, kterou vytvoříme „opravdové“ rýhy na povrchu válce. BumpDepth nastavíme na nízkou hodnotu, řekněme -0.008. Textura bude opět typu Noise (2D Textures -> Noise) a s následujícími parametry:

Ještě potřebujeme Noise „roztáhnout“ v jednom směru, aby vytvářel ony rýhy. Toho dosáhneme nejsnáze změnou nastavení opakování v příslušném Node place2Dtexture:

Zkusíme vyrenderovat:

Posledním materiálem bude sklo pro kouli. Jeho základem je minule vytvořený Surface shader Phong, ale tentokrát budeme mít s vytvořením výsledné Shading Network o něco více práce.

Nejprve nastavíme průhlednost (Transparency) téměř na maximum – klikněte na políčko barvy a R, G i B složku nastavte na cca 0.95:

Dále nastavíme odrazivost (Reflectivity) na 0.35, Cosine Power na 75 a Specular Color na čistou bílou, abychom získali malý a poměrně ostrý odlesk. Důležitá jsou také nastavení Raytrace Options, kde zaškrtneme checkbox Refractions, aby se při renderingu bral v úvahu lom světla, a index lomu (Refraction Index) nastavíme na 1.9*. Surface Thickness (tloušťku povrchu) nastavíme na cca 0.020.

*Tento parametr je fyzikálně přesný pro sklo, tabulku s přehledem při některé další materiály můžete najít třeba zde.

Můžeme zkusit vyrenderovat:

Možná to někomu vzdáleně sklo připomíná, ale postrádá to jednu jeho důležitou vlastnost: skutečné sklo není nikdy ve všech místech stejně průhledné, a tento jev se pokusíme vytvořit. Jak jinak, než pomocí dalších Nodes.

V Hypershade přidáme na pracovní plochu Node Sampler Info, který najdeme pod Maya -> Utilities -> Sampler Info. Tento node obsahuje informace o pozici a orientaci každého samplovaného face, my si z něj vezmeme údaj o směrování normály. Stiskneme MMB a [Shift] a „přetáhneme“ ho nad Node našeho materiálu. Po uvolnění MMB a [Shift] se otevře okno Connection editor, které obsahuje výstupní (Output, vlevo) a vstupní (Input, vpravo) informace jednotlivých nodů, které mohou být propojeny. My vybereme vlevo facingRatio a vpravo rozklikneme pomocí ikonky transparency a vybereme všechny tři barevné složky (R, G, B):

Necháme vyrenderovat:

Zbývá nastavit minimální průhlednost v blízkosti okrajů koule, k čemuž nám dopomáhej Node Ramp (2D Textures -> Ramp). V Attribute editoru nastavíme Type „V Ramp“ a Inetrpolation na „Smooth“, barevný přechod z bílé do černé:

Klikneme na šipky znázorňující propojení mezi Nodes a [Del] je všechny smažeme. Připojíme facingRatio ze SamplerInfo na UVCoord -> V Coord a poté MMB „přetáhneme“ Ramp na koule1, z menu zvolíme transparency.

Zkusíme vyrenderovat:

A na závěr ještě nastavíme parametr Surface Thickness (tloušťka povrchu; v Raytrace Options u Phong shaderu koule1) na cca 0.33:

To by bylo pro dnešek vše, příště se budeme zabývat fotorealistickými materiály s použitím Mental Ray materiálů a ukážeme si pár triků s dalšími Mental Ray nody.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 » Rubriky  » Design  

 » Rubriky  » Software  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: