Rychle a snadno? I tak lze osvětlovat a renderovat - 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

Rychle a snadno? I tak lze osvětlovat a renderovat

26. září 2007, 00.00 | Otázky renderingu, osvětlení a dalších atributů vizualizace, to všechno jsou otázky, které většinou nemají úplně jednoduchou odpověď. Zřejmě neexistuje skutečně jednotné řešení, existují však typové situace, které mohou být řešeny vždy velmi podobně. Takovou situací může být i osvětlení „produktových scén“, a na jednu možnost se dnes podíváme…

Vlastně jsem na uvedený trik přišel zcela náhodou. Chtěl jsem, již před drahnou dobou, vytvořit poměrně dramatické a zvláštní osvětlení scény, kterou vlastně nebylo ani třeba osvětlovat. Jednalo se tehdy o ukázku využití shaderu fresnel pro vytvoření jakéhosi „pseudo-mango“ osvětlení, kdy jsem povrch zdramatizoval započítáním efektu Ambient Occlusion do výsledného renderu. Využil jsem přitom možnost analýzy mapy oblohy, čímž vznikl barevně velmi příjemný efekt.

fresnel

Ono ale není pravdou, že bych byl obecným autorem níže popsaného postupu. On jej poměrně hezky prezentoval můj přítel, René Rich alias Rich-Art. Už jsem ostatně uvedený postup sem tam zmínil a tento poslední příspěvek vychází z toho, že jsem jej ještě trochu upravil.

Základní ideologie je jednoduchá. Celý render je založen na efektu Okolní prostředí – Ambient Occlusion, kdy většinou (jedná se o rendering nějakého produktu) stačí nastavení v nastavení renderingu. Zde tedy nastavíme efekt jako takový a většinou (podle typu objektu, který chceme vizualizovat) nepoužijeme přímo přechod z černé do bílé, ale většinou místo černé použijeme nějakou barvu odpovídající barvě použité mapy, a tím pádem „emitovaného světla“ (vím, že mapa žádné světlo neemituje, neberte mne za slovo, spíše bychom asi měli říci promítané barvy). Nezapomeneme na aktivaci volby pro analýzu barvy oblohy (Použít prostředí oblohy).

Jas, respektive tmavost tmavé části přechodu efektu je také závislá na tom, jaký objekt renderujeme, například pokud bychom renderovali porcelán, tak nenecháme příliš tmavou barvu, protože se objekt poměrně výrazně (v reálu) prosvítí, a tak by byly přílišné difusní stíny nereálné. Podobně v případě, že ve scéně budou průhledné refrakční povrchy (například sklo).

sklo

sedacka

A co dále? Ve scéně musíme nezbytně mít dva speciální objekty. Objekt Obloha, který má nastavený materiál – hdri mapu, která je však poměrně výrazně rozostřená, tedy je velmi difusní. Můžeme přitom použít speciálně připravenou mapu, a nebo můžeme použít rozostření provedené v CINEMĚ 4D. To není zase tak jednoduché, ale o tom později. Další zcela nezbytný objekt je světlo, světlo, které má nastavenou vlastnost Svítivost okolí (jedná se o ambientní světlo). I toto světlo může být mírně zabarvené, opět podle toho, jaký tón výsledného renderu požadujeme. Intenzita takového světla je cca 80, max. 100%. Světlo samozřejmě nevrhá odlesky, ani stíny.

Ono ale bez světla to není ono, tedy bez světla klasického, tedy takového, které vrhá stíny, odlesky a tak dále. Takové světlo ale musí korespondovat s hdri mapou, kterou použijeme. Jeví se tedy jako vcelku dobré použití zacíleného světla (vlastnost Cíl), kdy cílem je střed scény, kde je také náš objekt. Poté je vhodné umístit jen pracovní kameru do prostoru objektu a s pohledem z této kamery umístit světlo do polohy, ve které bude korespondovat s hlavním světlem na hdri mapě. Intenzita tohoto hlavního světla není příliš vysoká, řekněme 50-60%. Stín je nastavený podle potřeb – většinou ve finále samozřejmě na plochý (oblast), ale není to zase tak nezbytné. Pokud chceme výraznější odlesky, je lepší použít světlo „bodové“ místo plošného, například kuželové či všesměrové, ale v tomto směru není (mimo odlesk) použití tohoto bodového světla tak nutné. Můžeme to samozřejmě řešit i tak, že použijeme plošné světlo a pomocné světlo, které bude přidávat jen a pouze odlesk.

Co se týká hdri map na objektu oblohy, tak zde bychom měli používat objekty oblohy vždy dva. Jeden objekt oblohy s mapou, která je velmi difusní, a v případě této mapy použijeme vlastnost Kompozice, kdy nastavíme, aby byla tato mapa začleněna pouze na efekt Ambient Occlusion – Okolní prostředí. Druhý objekt obloha použijeme s mapou, která již není tak rozostřená. Tuto mapu použijeme na případné odrazy a podobně, tedy tato mapa bude mít opět vlastnost Kompozice, u které bude naopak vypnuta jen jedna volba – efekt Okolní prostředí – Ambient Occlusion.

Co materiály? Vlastně nic moc, protože materiály jsou standardní. Nejsou ničím neobvyklým, není tedy třeba je nějak význačně měnit.

Poslední, co je nezbytné si uvědomit je, že bez PhotoShopu, Gipmu či jiné bitmapové aplikace se výsledný render neobejde. Použití Svítivosti okolí poměrně často vede k tomu, že je render poněkud málo kontrastní, a tak není od věci lehce upravit ve výsledku úrovně.

Předkládám dva testy, oba jsou vytvořené pomocí stejných hdri map a vlastně stejných nastavení světel a ostatních parametrů. Přesto se jedná o zcela odlišné objekty a výsledný render. V obou případech jsem použil mapy již připravené, ale ukážeme si také, jak si připravit nějakou standardní mapu a rozostřit ji tak, aby nebyla od speciální difusní mapy k rozeznání.

Sedačka

Soubor modelu ke stažení (R10)

Tuto sedačku znáte, pravda, ona je vymodelovaná znova, protože jsem si ji potřeboval trochu osvěžit vzhledem k prezentaci, kterou budu v těchto dnes mít. Při tom jsem ji pojal trochu podrobněji než posledně, ale to není z našeho pohledu zase tak podstatné. Co však podstatné je, jsou informace o mém objektu, zejména velikosti. Velikost objektu, obecně objektů ve scéně, je totiž určujícím faktorem pro nastavení velikosti samotného efektu Okolní prostředí. Sedačka je zhruba 170 cm široká a cca 80 cm vysoká.

Obloha

Jak jsme si řekli, oblohy budou dvě, tak si je rovnou můžeme připravit. Připravíme si tedy objekty OblohaAO a Oblohaviz, kdy objekt OblohaAO bude mít vlastnost Kompozice, ve které bude aktivní jen parametr Okolní prostředí (Ambient Occlusion). Druhý objekt obloha bude mít naopak vše aktivní s výjimkou právě tohoto parametru.

tagy

Ambientní světlo

Světlo, které je potřeba pro faktickou aktivaci efektu je velmi, velmi snadné. Stačí vytvořit výchozí všesměrové světlo, vypnout u něj odlesk a aktivovat volbu Svítivost okolí. Jas můžeme nastavit na nějakých cca 80%, ale celkově vzato je tato hodnota mimo jiné závislá také na tom, jaký gammut a expozici nastavíme v příslušném materiálu. Je-li tedy obecně vzato tato mapa významně zesvětlená, pak pro příslušnou rovnováhu zeslabíme toto ambientní světlo a obráceně.

ambient

Materiály oblohy

Oba materiály oblohy jsou velmi jednoduché a záleží tedy na tom, zda máme dvě verze textury – hdri mapy, nebo ne. Pokud ano, vytvoříme dva stejné materiály, jeden s hdri mapou difusní a jeden s mapou nerozostřenou. Difusní mapu můžeme podle potřeby trochu vyexponovat.

ao

Pokud máme jen jednu hdri mapu, tak nemusíme zoufat. V případě hdri však nemůžeme použít pouho pouhé rozostření. Pokud tedy použijeme mapu jednu, tak ji načteme do kanálu barvy a následně použijeme 100% nastavení parametru Odsazení při rozostření. Aby to ale bylo dostatečné, tuto texturu použijeme ještě v shaderu Vrstvy. Takže vytvoříme shader Vrstvy a do něj se automaticky načte také námi načtená textura. Tento shader (Vrstvy) standardně rozostříme. Abychom ale neměli v nadhlavníku staženou texturu, to vyřešíme tím, že do Vrstev načteme shader Barva s barvou, kterou odečteme z níže ležící textury – jedná se o nastavení barvy, které bude odpovídat barvě ve vrchní části textury. Poté vytvoříme shader Přechod (lineární ve směru V) a ten použijeme jako masku. Takže…

Umístíme shader Přechod jako druhý v pořadí. Tedy první v pořadí bude shader Barva, druhý v pořadí Přechod a třetí textura hdri mapy. Přechod nastavíme na typ 2D-V, kdy černý uzel posuneme do polohy cca 70% a bílou tak na cca 90%. Režim krytí nastavíme na Vrstvu masky. Poté si vybereme nastavení shaderu Barva a otevřeme si jej do separátního okna. Nyní můžeme velmi luxusně nastavit tuto barvu tak, aby odpovídala vrchní části hdri mapy. Tímto způsobem bychom si připravili difusní verzi hdri mapy použitou u efektu Okolní prostředí.

ao_make1

ao_make2

Obecně vzato je věcí prvního testu, jak nastavíme expozici a gammut AO mapy (tedy mapy použité pro AO, ale většinou bývá mapa celkově světlejší než mapa odrazivá a viditelná).

Hlavní světlo

Máme li hotové oblohy, tak si na okamžik v editoru skryjeme oblohu difusní a vytvoříme si rovnou zacílené světlo (tedy normální kuželové světlo s vlastností Cíl, která je zaměřená na střed scény), přemístíme se pohledem do středu scény (prostoru cíle) a umístíme světlo tak, aby odpovídalo hlavnímu světelnému zdroji scény. Intenzita tohoto světla může být okolo 50-60%, ostatně již jsme to zmínili. Barva by měla odpovídat barvě v hdri.

sun

Nastavení podlahy

Záleží samozřejmě na kompozici (ve smyslu struktury) scény, ale v tomto případě jsem použil křivku tvořící podlahu a následně pozadí, tento objekt je jen vytažený pomocí Vytažení NURBS a má jen bílý materiál, ale je jedno, jaký vlastně je, záleží na vás. Objekt by ale měl být nastavený tak, aby nebyl viditelný odrazivostí (pomocí vlastnosti Kompozice).

podlaha

Nastavení efektu

V nastavení renderingu musíme nastavit efekt Okolní prostředí (Ambient Occlusion). V tomto případě, kdy zde je sedačka s výškou cca 80 cm, jsem zvolil hodnotu délky paprsku okolo 30-40 cm, abychom vykreslili všechny detaily a také ztmavili prostor pod sedačkou oním požadovaným difusním způsobem. Většinou nepoužívám (v těchto případech) přechod do zcela černé barvy. Rozptýlení taktéž můžeme snížit, řekněme na 85%, což má za následek jednak zrychlení renderu, tak také jeho mírné zostření. To ale je velmi malé a možná není vůbec od věci. Vzorky většinou ponechávám na poměru 1/10, tedy například 10/100 (Min/Max).

ao

Závěr

A můžeme renderovat. Render možná bude poněkud málo kontrastní, ale to není většinou problém a drobná úprava úrovní to jisto jistě bez potíží spraví.

Variace - váza

Váza je vytvořená pro společnost Crystalex, a tak mne nehoňte za vzhled, ten vskutku není mým autorským dílem.

Jak jsme si již řekli, byly použité mapy zcela shodné, jediné rozdíly jsou ve světlech, která byla více tónovaná. Ambientní světlo bylo poněkud posunuté do teplejší, lehce oranžové barvy a světlo slunce zrovna tak. Vzhledem k tomu, že se jednalo o objekt, který ve své podstatě světlo tak trochu propustí, nastavil jsem „pravou“ barvu efektu ještě o něco světleji a AO tak zejména obarvovalo povrch, než že by jej výrazně ztmavovalo. Mimo jiné jsem také snížil hodnoty vzorků, jelikož efekt byl méně zřetelný, více se v něm zrno nižší kvality zobrazilo.

Ostatní nastavení, jakkoliv jsou třebas různá nastavení barev podložky a podobně, jsou v podstatě shodná. Jen jsem si v tomto případě vyrenderoval mimo jiné také zásobník objektu vázy, což jsem využil v následných barevných korekcích ve PhotoShopu.

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: