Maya: realistické texturování (1) - 3D grafika - 3Dscena.cz: 3D grafika jako na dlani

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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



3D grafika

Maya: realistické texturování (1)

25. srpna 2011, 00.00 | Dnešním článkem je prvním v třídílné sérii, která je zaměřená na přípravu a aplikaci fotorealistických textur na různé objekty pomocí UV mapování.

Ačkoliv tento tutoriál je psán pro verzi Maya 2012, postupy, umístění i vzhled nabídek jsou pro většinu verzí stejné. Vlastní tvorbu textur budu popisovat v Adobe Photoshop, ale postačí jakýkoliv jiný bitmapový editor s podporou vrstev, např. GIMP.

Úvod

Naším cílem je realisticky otexturovat následující scénu, kterou si ve formátu .mb jako vždy můžete stáhnout:

A takto by měla nakonec vypadat (klikněte na obrázek pro větší rozlišení):

Používat budeme obrazové (bitmapové) textury mapované na obejkty pomocí UV mapování, což je způsob, jak přesně umístit texturu na povrch objektu. Předchází mu proces zvaný unwrapping (česky volně přeloženo rozbalování) 3D objektů do 2D podoby – sítě nebo chcete-li "střihu" objektu. Tato síť pro jeden nebo více objektů se poté exportuje jako bitmapa v jednom z dostupných formátů a v bitmapovém editoru se podle této sítě vytvoří odpovídající barevná (případně bump, specular aj.) textura. Hotová textura (nebo textury) se poté přiřadí v Maye příslušnému objektu jako jakákoliv jiná textura, tj. pomocí odpovídajícího slotu některého z shaderů (Lambert, Phong…). Ukázka takové sítě pro obyčejnou krychli je na následujícím obrázku:

Maya poskytuje pro vytváření UV map poměrně obsáhlou sadou nástrojů, které najdeme ve dvou nabídkách v menu "Polygons" [F3], a to "Create UVs" a "Edit UVs":

K vytvoření UV mapy (sítě) se v Maye používá systém projekcí (projections), které najdeme v nabíce "Create UVs". Projekce je v podstatě speciální typ objektu, který určuje, jak bude výsledná síť vypadat. Jejich nabídka je poměrně chudá - je to projekce plošná (planar), kulová (spherical), válcová (cylindrical) a automatická (automatic) – ovšem kombinováním těchto čtyř typů lze rozložit jakýkoliv objekt. Projekce lze totiž použít buď na celé objekty (v Object mode), nebo na jeho jednotlivé vybrané části (v Component mode). V druhém případě dostaneme pro každý objekt několik menších sítí, s nimiž lze dále pracovat, například je opět spojovat, přesouvat, měnit velkost atd.

Vytvoření UV map pro ukázkovou scénu

Postupně si výše popsaným postupem rozložíme do sítí všechny objekty ve scéně, a to tak, aby se vešly na jeden "arch" (texture sheet) o rozlišení 4K (4096x4096). Začneme od nejjednoduššího objektu, kterým je zeď a podlaha. Použijeme dvě plošné (Planar) projekce, a to nejprve na podlahu a pak na zeď. Vybereme tedy face tvořící podlahu a pomocí Create UVS -> Planar Mapping vytvoříme novou projekci:

Výsledek, tj. rozloženou síť, můžeme zároveň kontrolovat v okně UV Texture Editor (Edit UVs -> UV Texture Editor):

Jakákoliv operace provedená ve 3D okně se zároveň projeví i zde. Zkusíte-li např. změnit poměr stran projekce pomocí ovládacích bodů po jejích krajích, uvidíte, že se změní i vzhled sítě v UV Texture Editor-u; prozatím úplně postačí nechat projekci beze změn. Protože chceme na jednu texturu dostat sítě všech objektů ve scéně, budeme muset právě vytvořenou síť podlahy změnšit. V UV Texture Editor-u tedy stiskněte klávesu [F12], čímž aktivujete režim výběru jednotlivých bodů UV sítě. Vybereme všechny body sítě, a to pomocí jednoduché funkce "Select UV shell". Staší vybrat pomocí LMB jeden bod sítě, podržet RMB pro vyvolání menu a v něm vybrat Select -> Select Shell:

Tato funkce vybere všechny body náležící jedné síti a je užitečná zejména pokud vybíráme členitější síť nebo jednu z překrývajících se sítí. S vybranou sítí můžeme nyní provádět standardní operace, které známe z 3D okna – tj. přesun, změnu velikosti a rotaci pomocí odpovídajících nástrojů. Stejně tak navigace v tomto okně odpovídá 3D oknu. Nástrojem pro změnu velikosti [R] a přesun [W] jsem tedy síť pro podlahu zmenšil a přesunul do levého spodního rohu:

Nyní vytvoříme síť pro zeď a v UV editoru ji spojíme s již hotovou sítí zdi. V 3D okně tedy vybereme face tvořící zeď a vytvoříme novou projekci pomocí Create UVS -> Planar Mapping. Tentokrát ji ale budeme muset ještě umístit na odpovídající místo, což můžeme udělat v zásadě dvěma způsoby. jedním je aktivování standardních manipulátorů pro projekci pomocí kliknutí na symbol červeného "T" v rohu projekce (klikněte na obrázek pro větší rozlišení):

screenshot

"T" se po kliknutí zbarví žlutě a objeví se standardní manipulátory. Vybereme rotaci kliknutím na modrý kruh, poté rotaci kolem osy X kliknutím na červený kruh a projekci otočíme:

Druhou možností je číslené zadání rotace v Attribute editoru, v našem případě to bude [0, 0, 0]:

Nyní v UV editoru vybereme síť zdi, zmenšíme ji a přesuneme nad již umístěnou síť podlahy:

Zbývá obě sítě spojit. Zapneme režim výběru hran [F10], vybereme spodní hranu zdi a vidíme, že se automaticky vybrala i vzdálenější hrana zdi – z pohledu Mayi, resp. objektu, se totiž jedná o stále jednu a tutéž hranu:

Doposud samostatné sítě spojíme pomocí funkce Polygons -> Move and Sew UV edges, dostupné v záhlaví okna UV Texture Editor. Výsledek:

Zeď a podlahu bychom tedy měli připravené, podobným způsobem nyní rozložíme i ostatní objekty. Další na řadě bude sud. Na jeho vrchní, vodorovnou část použijeme opět plošnou projekci, zatímco na svislou část projekci válcovou (Cylindrical Mapping). Vybereme tedy všechny faces tvořící plášť válce a vytvoříme novou projekci pomocí Create UVs -> Cylindrical mapping:

Ve výchozím nastavení však válcová projekce neobklopuje celý objekt, ale jen jeho polovinu. Tento rozsah můžeme změnit opět dvěma způsoby, buď tažením za červené manipulátory na krajích projekce, nebo čísleným zadáním v Attribute editoru, kde zvýšíme hodnotu "Projection Horizontal Sweep" na 3,6:

Pro zbytek sudu použijeme Planar porjekci, vystačíme si s implicitním nastavením. Výsledné sítě opět v UV editoru zmenšíme a umístíme do pravého dolního rohu. Protože v UV editoru se zobrazují sítě pro všechny objekty vybrané v 3D okně, vybereme sud i zeď a zkontrolujeme, zda se jednotlivé sítě nepřekrývají:

Pokračujeme lékárničkou na zdi. Na tu můžeme použít buď celkem 5 plošných projekcí, nebo dosáhnout stejného výsledku rychleji pomocí funkce "Automatic Mapping" (Create UVs -> Automatic Mapping). V 3D okně se objeví celkem 6 projekčních plánů, které pomocí manipulátorů přesuňte na odpovídající místo, případně zvětšete/zmenšete:

v UV editoru se pak každá ze stěn lékárničky objeví zvlášť, takže je budeme muset opět pospojovat, a to stejným způsobem, jako jsme spojovali zeď a podlahu, tedy výběrem odpovídajících hran ([F10]) a použitím funkce "Move and Sew UV Edges", případně další ruční úpravou sítě v režimu výběru UV bodů [F12]. Hotovou spojenou síť zmenšíme a přesuneme tak, aby byla nad sítí sudu:

Posledním a nejsložitějším objektem, který budeme texturovat, je šatní skříňka. Postup bude stejný jako u předchozím objektů, jenom nám vzhledem ke složitosti a členitosti objektu zabere více času. Podobně jako u lékárničky i zde využijeme funkci "Automatic Mapping", zvlášť však budeme texturovat dveře, vlastní skříňku a také "packy" pro visací zámek. začal jsem skříňkou, pokračoval dveřmi a nakonec jsme si nechal ony "packy" pro zámek. Výsledná síť, umístěná mezi ostatní:

(červeně zakroužkované jsou "packy" )

Pomocí funkce "Move and Sew UV Edges" spojíme jednotlivé části do co největších celků, tedy cvlastní skříňky, 2ks dveří a celkem 4ks pacek. Z čím méně částí se bude skládat výsledná UV síť, tím lépe pro nás, protože se nám bude snáze ve Photoshopu nebo jiném bitmapovém editoru vytvářet výsledná textura. Objekty máme rozloženy na sítě a nyní ještě zkontrolujeme, jak se na ně bude mapovat textura. vytvoříme si nový materiál – shaderu typu "Lambert" přiřadíme do Color slotu texturu typu "Checker":

A tento materiál, pojmenovaný např. UVtest, přiřadíme všem objektům ve scéně. Zároveň si zapneme zobrazení textur v 3D okně klávesou [6], případně v režimu "High quality" (volba Renderer -> High quality v záhlaví 3D okna). Vaše scéna by měla vypadat nějak takto:

Důležité je, aby kostky měly na všech objektech přibližně stejnou velikost, což znamená, že jednotlivé UV sítě jsou vůči sobě ve správném poměru velikostí a nenastane tak situace, že by nějaký obejkt měl výrazně vyšší/nižší rozlišení textury než jiný. Pokud tomu tak není, nezbývá, než se vrátit do UV editoru a velikosti jednotlivých sítí patřičně upravit. Jendotlivé stíě by měly být uspořádané tak, aby plocha textury byla využita co nejrovnoměrněji a aby mezery mezi jednotlivými sítěmi byly co nejmenší (neměly by se ovšem dotýkat nebo překrývat). Pokud jsme spokojeni, můžeme si UV sítě vyexportovat jako bitmapu. V 3D okně vybereme všechny objekty a v UV editoru kliknema na Polygons -> UV Snaphsot:

Nastavíme cestu k výslednému souboru, rozlišení (4K alias 409x4096 pixelů) a typ (JPEG). Po kliknutí na tlačítko "OK" se do zvoleného adresáře uloží UV sítě vybraných objektů tak, jak jsme si je nachystali v UV editoru (klikněte na obrázek pro větší rozlišení):

screenshot

Závěr

Naučili jsme se, jak připravit modely ve scéně na texturování pomocí UV textur, jak umístit UV sítě pro více objektů na jednu texturu a jak ji vyexportovat v dostatečném rozlišení. Všechny dnes použité techniky postačí (s trochou trpělivosti) k texturování všech typů objektů od zcela jednoduchých tvarů až po velmi členité modely. Příště budeme pokračovat tvorbou textur v Adobe Photoshopu, podíváme se na to, kde získat kvalitní podklady a jak je zpracovat k obrazu svému.

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: