Vytváříme vegetaci v Terragenu 2: 2. část - 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

Vytváříme vegetaci v Terragenu 2: 2. část

9. října 2007, 00.00 | V tomto návodu navážeme na předchozí článek a ukážeme si, jakým způsobem se v Terragenu vytváří tráva a předvedeme si použití „density shaderu“ u populací.

V topmto tutoriálu si vytvoříme dvě scény. Na první si ukážeme tvorbu trávy a na druhé si předvedeme použití "Density shaderu", které využijeme pro precizní nastavení distribuce objektů v rámci populace.

Tráva se v Terragenu vytváří za pomoci objektu „Grass clump“, který jako obvykle najdeme pod záložkou „Objects“.

Po jeho vytvoření se nám vlevo dole objeví parametry travnatého porostu.

V záložce „Transform“ se nastavuje poloha, velikost, a natočení trsu trávy. Pod záložkou „Angular position“ lze nastavit polohu trsu (jde o ono zvláštní nastavování polohy po obvodu neviditelné koule viz minulý článek). A konečně pod záložkou “Surface shader” nalezneme odkaz na shader, který definuje povrch trávy.

V dolní části jsou tři parametry: „Number of blades“ definuje počet stébel v trsu, „Clump diameter“ určuje poloměr trsu a „Blade length“ délku stébel.

Zde musíme podotknout, že implementace trávy v Terragenu je přinejmenším podivná a obsahuje několik chyb. Vytvoříme trávu, uložíme scénu na disk, opět ji otevřeme a rozměr trávy je jiný než před uložením. Naštěstí, pokud se toto stane, stačí změnit jeden parametr trávy a poté ho změnit zpátky a rozměr trávy by se měl vrátit na původní velikost. Je potřeba mít trošku větší trpělivost a doufat, že vývojáři zmíněnou chybu spraví co nejdříve.

Zkusme si vytvořit jednu ukázkovou scénu, kde vytvoříme travnatou plochu.

Nejprve si stáhneme jednoduchou scénu, do které budeme přidávat travnatou plochu. Scénu lze stáhnout zde.

Po stažení a otevření scény, vstoupíme do záložky „Objects“ a přidáme populaci „Grass clump“ a v parametrech této populace nastavíme následující: Area centre: 771.851, 3750.3, Area length: 2000, 2000, Object sparing: 5. Nyní by měla populační oblast pokrývat celý kopec.

Přejdeme do nastavení „Grass clump“ a nastavíme: Scale: 10,10,10 a Clump diameter:10.

Poslední, co zbývá je, nastavit vzhled povrchu trávy. Přejdeme do záložky „Surface shaders“ a vedle názvu shaderu klikneme na tlačítko. Zobrazí se nám vlastnosti shaderu, který určuje vzhled povrchu trávy.

Nejdříve změníme „Diffuse color“ na RGB 90,98,70 a „Transluency color“ na 79,81,45. O tom co znamenají a jak fungují tyto parametry si povíme v nějakém dalším článku zaměřeným na materiály v TG2.

Scénu vyrenderujeme.

Nyní přejdeme ke druhé scéně a zkusíme si vytvořit pobřeží porostlé palmami a během tohoto pokusu si vysvětlíme použití slibovaného „density shaderu“.

Pro tento náš experiment jsme vytvořili jednoduchou ostrovní krajinku, kterou je možno stáhnout zde. Jediné je pro nás v tuto chvíli zajímavé na této scéně, je shader, který jsme použili pro vytvoření povrchu krajiny.

Podívejme se tedy do záložky „Shaders“.

Ta se skládá z několika vrstev, jak lze vidět na obrázku. Pro nás nejzajímavější vrstva je vrstva s pískem „Sand“. U té je použito „Altitude constraint“, které zajistí, že se tato vrstva bude objevovat pouze do určité nadmořské výšky – nechceme, aby písek pokrýval celý ostrov, ale pouze několik metrů pláže (jak toto přesně funguje bych přeskočil a případného zájemce odkázal na tutoriál, který se zabýval problematikou vytváření povrchů krajin).

Podobného efektu bychom rádi dosáhli při vytváření palmového háje. Chceme, aby palmy pokrývali celý ostrov, mimo pláže.

Vytvoříme tedy populaci z palem (stejně jako v příkladě z minulého článku). A nastavíme tyto parametry u populace: Area centre: 9300.23, 0, 15806.4, Area length: 22000, 9000. Object spacing: 50, Minimum scale: 0.7, Maximum scale:1.2.

Ostatní parametry necháme na původních hodnotách. Klikneme na “populate now” a provedeme zkušební rendering. Ve výsledku bychom měli dostat něco takového:

Palmy rostou všude tam, kde krajinu pokrývá distribuční oblast populace. My bychom ale rádi vynechali pláž.

Vstoupíme do vlastností populace, a pod záložkou „Distribution“ si všimneme možnosti „Use density shader“ a tuto možnost zaškrtneme. Ale co zvolíme jako „density shader“? „Density shader“ je jakási maska, která bílou barvou říká, že zde se objekt vytvořit může a černou říká, že zde se objekt vytvořit nesmí.

Tento shader si nyní zkusíme vytvořit – měl by bílou barvou pokrývat celý ostrov mimo pláže. Nyní přichází „ke slovu“ node network, který se nachází v pravé dolní části obrazovky.

Kdekoliv v node network klikneme pravým tlačítkem myši, z kontextového menu vybereme „Create shader“ / „Other surface shader“ a vybereme „Surface layer“.

Dvakrát klikneme na vytvořený shader a nastavíme následující parametry: Apply color: 1, Maximum altitude: 200 a Max alt fuzzy zone: 20.

Co jsme právě udělali? Nastavili jsme barvu tohoto shaderu na čistě bílou a omezili jeho zobrazí do stejné nadmořské výšky jako má shader písku.

Nyní musíme provést ještě jednu velice důležitou věc. V této chvíli shader neví jakou krajinu má použít při zpracování tohoto shaderu. Vrátíme se tedy do node network, a najdeme uzel „Compute Terrain“ a spojíme výstup tohoto uzlu (output node) se vstupem vytvořeného "Surface layeru" (input node). Jak je vidět na obrázku.

Pokud se zpět podíváme do vlastností vytvořeného “Surface layeru”, vidíme v náhledu layeru toto:

To je přesně co jsme potřebovali, ale inverzně.

Vrátíme se zpět do vlastností populace. Jako “density shader” vybereme ze seznamu náš vytvořený “Surface layer” a ještě nezapomeneme zaškrtnout volbu “invers density shader”.

A zkusíme vyrenderovat obrázek.

Tématické zařazení:

 » 3D grafika  

Poslat článek

Nyní máte možnost poslat odkaz článku svým přátelům:

Váš e-mail:

(Není povinný)

E-mail adresáta:

Odkaz článku:

Vzkaz:

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: