Normálové mapy a "pečení" textur v CINEMĚ 4D R 9.5 - 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:



3D grafika

Normálové mapy a "pečení" textur v CINEMĚ 4D R 9.5

15. září 2005, 00.00 | Jsou dvě oblasti, které se jsme jako nové již zmínili několikráte, ale zatím jsme se o nich nějak zvlášť nerozepisovali, což napravíme právě nyní. Jedná se o změněné možnosti pečení textur a také nový kanál materiálu, Normálové mapy.

Nejdříve ale trocha toho laického vysvětlení, cože to vlastně ty normálové mapy jsou. Jedná se o obrázek v RGB barevném spektru, který definuje nerovnost povrchu svým způsobem podobně, jako hrbolatost. Jsou tu ale jisté rozdíly, které činí tento efekt podstatně zajímavější. Základní výhodou oproti běžné hrbolatosti je to, že normálová mapa umožňuje vizuálně deformovat povrch ve všech směrech což hlavně ukáže například pohybující se světlo osvětlující povrch (například Slunce). Je díky tomu, že je obrázek normálové mapy složený právě ze všech barev RGB spektra, kdy každá jedna barva definuje (pokud se budeme bavit o řízení závislém na normále povrchu) směr vizuální deformace, kdy Z (většinou modrá) je ve směru normály, Y (většinou zelená) je nahoru a X (červená). Takto vytvořené povrchové nerovnosti jsou podstatně plastičtější jak v případě hrbolatosti, která je definovaná jen ve směru Z (černá-bílá a navíc je poměrně dost vizuálně závislá na úhlu normály povrchu a paprsku kamery), ale jsou také trochu složitější na výrobu.

U hrbolatosti prostě namalujeme obrázek, kde jsou bílá a černá místa. Tím definujeme nerovnosti. Normálové mapy jsou ale něco jako „spektrální“ obrázky, jsou skutečně plné barevných přechodů přecházejících do mnoha tónů všech možných barev a to bychom asi ani při nejlepší vůli nedokázali namalovat. Musíme to tedy řešit poněkud jinak. A to tak že si normálovou mapu vygenerujeme automaticky. Tím se ale dostáváme k problematice pečení textur, což je druhé z našich dnešních témat.

Užití normálových map není bezproblémové, protože v jejich používání a generování neexistuje obecně závazný standard. Tedy směr osy Z bodu může být řízen jednou barvou modrou, jindy zelenou. Musíme tedy vědět alespoň trochu o co se jedná, protože jinak budou výsledky úplně jiné, než bychom chtěli.

Abychom měli úvod úplný, tak si také řekneme, jak takové normálové mapy můžeme vytvořit a kdy je používáme. No možnosti tvorby máme v zásadě dvě. Nejdříve si vždy musíme vytvořit cílový objekt, povětšinou s relativně nižším počtem polygonů (no pravda, normálové mapy jsou vlastně „herní technologií“). Připravíme si UV mapu tohoto objektu a nyní máme dvě možnosti. První možností je, že vytvoříme mapu subpolygonální deformace, kterou objekt „dopipláme“, doladíme k obrazu svému. A to třeba i v ZBrushi. Druhou cestou je, že si vytvoříme kopii cílového objektu, tu rozsegmentujeme (ale musíme si dát pozor na to, aby se nám stále kryli obrysy UV sítě jak cílového objektu, tak objektu rozsegmentoavného pomocného) a vymodelujeme si všechny finesy modelu, které chceme.

Pak se obě cesty zase slučují. Musíme ať již z precizního modelu a nebo modelu generovaného SPD deformací získat normálovou mapu. A v tom nám pomůže příkaz Upéct texturu a nebo Upéct objekt. Vygenerovanou texturu pak použijeme na jednodušší cílový objekt v kanálu Normály, čímž nasimulujeme nerovnosti generované oběmi výše uvedenými cestami. A to je vše.

Jaký je toho všeho důvod? Jednoznačně v cíly ušetřit co nejvíce kapacitu počítače, zrychlit výpočet a to za dosažení co nejlepšího vizuálního efektu a plasticity modelu. Technologie normálových map totiž umožňuje vizuálně zásadně obohatit model bez toho, že by zatěžovala výkon počítače. A to se samozřejmě hlavně u her nosí. Ale nejen u her…


Autorem obou modelů i použité normálové mapy je Jaroslav Cihelka alias Chuan Zvonar

Již jsme velmi decentně nakousli (možná pamatujete na to, že jsme se při popisu zmínili o režimu tangenta), ale existují tři základní způsoby, nebo spíše bychom měli říci režimy, jakými se normálová technologie používá. Ty jsou totiž tři a podle toho, který si vybereme, tak také vypadá vytvořená normálová mapa a také použití takové mapy, respektive modelu.

Tyto režimy tedy jsou Tangenta, Objekt (lokální režim) a Globální režim. Zásadní odlišnosti jsou v tom, že barevná mapa, generovaná při režimu tangenta, je vyhodnocená na základě rozdílu povrchu generovaného například technologií SPD a skutečnou normálou povrchu toho kterého bodu, zatímco u druhých dvou režimů je mapa generovaná sice na stejných principech, ale výsledek se nevztahuje přímo k normále povrchu, ale k souřadnicím objektu, případně globálním souřadnicím. 

Díky výše popsaným skutečnostem můžeme již na první pohled poměrně bezpečně poznat typ mapy, tedy režim, ve kterém byla mapa vytvořená. A to podle následujícího klíče. Normálová mapa vytvořená v režimu Tangenta je v zásadě „jednobarevná“. Ne doslova, ale převažuje prostě jen jedna jediná barva. U CINEMY 4D je to barva modrá, ale jak jsme již řekli, to nemusí platit u jiných aplikací, a tak máme možnost řízení barev přehodit. U druhých dvou režimů je u skutečně 3D objektu (tedy pokud se nejedná jen o jednoduchý plochý objekt) normálová mapa plná barevných spektrálních přechodů všech tří barev…

Víme co jsou normálové mapy, v principu víme, jak se tvoří, tedy co nám brání si udělat maličký příklad, který nám vše oddemonstruje. Na obrázku máme tři koule, první je deformovaná pomocí technologie SPD, samozřejmě je z nich vizuálně nejzajímavější, ale také se již poměrně dlouho počítá. Druhá koule má stejný efekt nerovnosti nastavený ve formě hrbolatosti, efekt je docela plochý a nezajímavý a třetí koule má nerovnost generovanou normálovou mapou, která je vytvořená z SPD deformace. Jak vidno, tak je povrch plastičtější, jak v případě prosté hrbolatosti. A ještě více by se to projevilo při animaci světel a odrazivém povrchu, ale to jsme již trochu zmínili.

Nastavení normálové mapy je velmi jednoduché. Děje se tak na stránce Normály v Editoru materiálů. Do položky pro texturu načteme obrázek a zadáme režim, který odpovídá režimu, ve kterém byla normálová mapa vytvořená. Pokud jsme použili mapu vytvořenou v jiném programu, kde je například směr normály definovaný jinou barvou jak modrou, tak můžeme změnit řízení barev. A stačí to poslední, nastavit míru vizuální deformace povrchu. V tomto ohledu se jedná vlastně o velmi podobné nastavení jako u hrbolatosti. Nejedná se o nic složitého…

Tak to máme normálové mapy. Ale ještě jsme se vůbec nepodívali na to, jak se tyto mapy generují. Již jsme zmínili, tvorba normálových map je nyní v zásadě automatizovaná a to pomocí nového příkazu Upéct texturu a využít můžeme i staronový příkaz Upéct objekt (to je vlastně původní příkaz, který známe již C4D R8).

Upéct objekt je příkazem jednodušším a je tu pro ty, kterým se nechce nic moc nastavovat, a tak se podíváme rovnou na příkaz, či spíše vlastnost (protože tak se tento příkaz chová), Upéct texturu. Tento příkaz, vlastnost, najdeme v menu Rendering a aplikuje se tak, že se vybere objekt, který chceme zpravovat, zvolí se příkaz, a tím se u tohoto objektu vytvoří vlastnost tohoto příkazu. Tato vlastnost má oproti předešlým verzím několik zásadních vylepšení. Zkusíme si uvést ta nejdůležitější.

  • Můžeme si upéci podstatně větší spektrum kanálů povrchu, včetně odrazivosti a podobně, což je důležité u tvorby vlastních HRDI map ve spojitosti s novinkou Advanced renderu 9.5, Sky shaderu 2. Vyrenderovat si můžeme kanály: Barva, Povrchová úprava, Svítivost, Hrbolatost, Alfa kanál, Průhlednost, Okolní prostředí (tímto způsobem vlastně nahrazujeme shader Zašpinění), Normály a Odrazivost. Mimo to máme možnost si nechat vypočítat oblast UV mapy a dále máme možnost renderu osvětlení, stínů a barvy povrchu, což je vše, co se na barvě podílí.
  • Nástroj podporuje tvorbu textur z volumetrických ex SLA shaderů typu Nukei a podobně.
  • Texturu lze upéci jen pro polygonový výběr, vyhodnocuje se hrbolatost (u barvy povrchu) a podobně.
  • Nastavení vyhlazení výstupního renderu statických obrázků a animací nemá žádný vliv na vyhlazení textury při jejím pečení. Přibyla tedy možnost definování vyhlazení tvořené textury pomocí „Supersamplingu“ -  Supervzorkování.
  • Nástroj samozřejmě podporuje tvorbu i 32-bitové hloubky obrázků.
  • Lze péci všechny kanály najednou, každý kanál se uloží zvlášť automaticky tak, že se ke zvolenému jménu souboru přidá jméno kanálu.
  • Přímo v nástroji pro pečení textur si lze generovat UV mapy pomocí optimálního mapování, které známe z BodyPaintu.
  • Nástroj obsahuje zajímavé automatické nastavení velikosti textur.
  • Upéci lze celé animace.
  • A to nejlepší nakonec, textury se pečou pro celý objekt, tedy pokud máme na objektu 5 materiálů a chceme je převést na jeden, tak máme snadnou cestu.  

Tak a máme to dnes za sebou. Musím říci, že jsem rád, že CINEMA 4D normálové mapy umí. Fakt ale je, že pro jejich smysluplné využití by to chtělo ZBrush a ten bohužel nemám. Jedná se o to, že lepší výsledky a vyšší efektivita je při použití cesty tvorby normálové mapy pomocí SPD, než pomocí dvou modelů, jednoho jednoduššího a jednoho složitého, který použijeme na generování normálové mapy. A proč? Protože pro takto generované normálové mapy musíme použít lokální a nebo globální režim, kdy ani jeden z těchto režimů se nehodí například pro animace obličeje. Pro ten by byl ideální režim tangenta. Ale ten nám v popisovaném případě generuje jen čistě modrou plochu, která nám s ničím nepomůže. Pokud bychom ale použili postup „dvou modelů“ pro architekturu, či obecně statické objekty, tak není co řešit, výsledek bude vypadat bezvadně.   

PS: díky Chuanovi za příklad z praxe...

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

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: