Add the Sea Reloaded – krajina, pobřeží, shader a XPresso - 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:

Poptávka práce
Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se narodil známý fotograf František Drtikol?

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



3D grafika

Add the Sea Reloaded – krajina, pobřeží, shader a XPresso

26. dubna 2007, 00.00 | Ve svém putování vodní plochou pluginu Add the sea jsme dospěli takřka do cíle, chybí nám jen několik podstatných informací, aby byl náš obrázek komplexní, a to informací o tvorbě krajiny, simulace pobřeží, využívání speciálních shaderů a také uzlů XPresso.

Tvorba krajiny

Krajina se vytváří tak, jak jsme se již několikráte velmi letmo zmínili, pomocí objektu Add the sea, který se opět jako pod objekt vloží pod objekt, který modifikuje. Není to ale tak jednoduché, jak by se mohlo zdát. V prvé řadě musíme pod objekt Atze, který využijeme pro tvorbu krajiny, vložit také objekt Linear Wave. Ten, aby neovlivňoval cílový objekt vlnami, nastavíme v parametru Height na 0 %, čímž jej v tomto smyslu vypneme. Ještě předtím, než si odprezentujeme technologii tvorby krajiny, si musíme říci jednu důležitou věc. Výhodou níže popisovaného systému je totiž to, že všechny součásti vytvořeného systému, pohoří i údolí, jsou stále jedním objektem, a tak jsou podstatně efektivnější v další editaci a zpracovávání.

Použití informací o deformaci v rámci objektu Linear Wave je nezbytné, protože bez tohoto objektu následná simulace nemůže probíhat.

Poté si vybereme objekt Atze a v jeho záložce Create cost tag vygenerujeme speciální vlastnost, kterou použijeme pro vytvoření krajiny a případně i detekce pobřeží. Touto vlastností poté definujeme typ generované krajiny a také pozici vytvořeného tvaru.

Krajina z objektu

Do upravovaného objektu můžeme promítnout jakýkoliv objekt, což je ideální například v případě objektu Krajina. Pod objektem roviny máme tedy objekt pluginu Atze, pod ním Linear wave s nastavenou nulovou výškou. U Atze vytvoříme vlastnost Coastmap Tag, kterou ovládáme generovaný vzhled nerovnosti. Pokud chceme vytvořit nerovnost z objektu, tak si vytvoříme požadovaný objekt – krajina v nějaké vhodné velikosti a na stránce Acquire/Edit tempmap si načteme do pole „from object in this document“ objekt našeho pohoří, které následně pomocí příkazu Capture Run zanalyzujeme (předtím je ještě dobré si vypnout zobrazení výsledné mapy v záložce General Settings). Analýza potrvá pár vteřin a ještě se nikterak neprojeví. Zatím je totiž objekt načtený jen prozatímně, ale není promítnutý. Promítnutí provedeme v další záložce Create result costmap, ve které je pole „from Tempmap“, což přesně potřebujeme. Takže dáme OK, a tím jsme si vytvořili první objekt deformace, která se projeví na našem modelu.

01

Ono to vypadá jako hloupost, ale skvělé je, že pokud si nyní vybereme objekt Atze, tak s ním můžeme pohybovat a měnit tak polohu vzniknuvší deformace. Můžeme také měnit velikost, a to i do záporu (v režimu Objekt – k animování), čímž můžeme dokonce vrcholek kopce "převrátit" a vytvořit z něj údolí.

02

Stále je naše krajina trochu plochá a mdlá, pravda, takže si můžeme objekt Atze jen zkopírovat (i nový objekt Atze bude na stejné úrovni jako objekt předchozí) a i tento objekt lze jednoduše přemisťovat a měnit jeho velikost. Z jednoho původního objektu tak můžeme vygenerovat velmi komplexní fraktálovou krajinu.

Krajina z mapy a souboru

Tvorba krajiny ze souboru či obrázku je do značné míry stejná jako v případě využití objektu, jen si rovnou příslušné soubory načítáme v záložce Create result coastmap, a to v položkách "from coastmap file" či "from bitmap file". Následně se příslušný objekt Atze bude chovat přesně podle předešlého příkladu s objektem. Můžeme tak tedy v rámci jednoho terénu kombinovat jak deformace vzniknuvší z objektu, tak ze speciálního souboru, tak z textury.

03

Neřekli jsme si, že můžeme definovat výšku každého jednoho objektu Atze, v jeho vlastním nastavením na stránce General Settings. Definovat lze také výšku "hladiny moře", a to zejména u obrázků s vyšší bitovou hloubkou a tak dále. Domnívám se však, že pro základní představu to zřejmě stačí.

Vlny a krajina

V předešlých příkladech jsme si představili využití pluginu Atze coby nástroje, kterým lze generovat krajinu. V této části se podíváme na to, že jím lze i generovat kolize s vodní hladinou, a to stále v rámci jednoho objektu. On totiž postup bude zcela stejný.

Máme tedy rovinu, pod ní objekt Atze a objekt Linear wave, který však má v tomto případě nenulovou výšku svých vln. Vytvoříme si ve scéně opět nějaký objekt "Krajina", kterým budeme simulovat ostrov či pobřeží, a opět stejným způsobem vytvoříme příslušnou vlastnost Coastmap Tag, která je nezbytná. Načteme si poté do stránky Acquire/Edit tempmap objekt našeho pohoří, které následně pomocí příkazu Capture Run zanalyzujeme a poté v další záložce Create result costmap, ve které je pole "from Tempmap", dáme OK, a tím si vytvoříme deformaci, která se projeví na našem modelu. Poměrně často je poté nutné ještě doupravit výšku a směr proudění vln, ale základní "kolize" je tímto hotova.

Jenže není zrovna dokonalá. Řešení spočívá ve vhodném nastavení objektu Add the sea (General settings), kde je nutné snížit hodnotu parametru Strenght, který jinak zapříčiňuje nekorektní chování vln (přílišnou interakci). Zde můžeme také definovat výšku – vystoupnutí ostrova (Land offset), či jeho celkové převýšení (Land scale).

03

Mimochodem pokud bychom potřebovali v čase obtisknout do povrchu nějakou stopu objektu, tak tento postup se hodí i na to ...

Shader

Součástí pluginu je také jeden drobný shader, který umí generovat zpěnění vlnek, simulovat kaustické efekty a tak dále. Jedná se o standardní kanálový shader pojmenovaný 4Ats. Tento materiál je definovaný samozřejmě barvou povrchu a zejména polem pro vložení objektu Add the sea, který má uvedený shader zpracovávat. Díky tomu tedy výsledná barva vždy odpovídá vlnám generovaným tímto objektem, a tak můžeme na sebe vrstvit i více materiálů, kdy některé budou například jen simulovat zpěněnou stopu za lodí.

05

Shader je do značné míry dost komplexní, a tak není snadné jej hned na první pokus pochopit, proto je asi nejlepší prozkoumat také některé soubory ke stažení, které jsou k nalezení na webu výrobce.

06

Zmínit bychom také měli docela slušný výčet přednastavených vzhledů shaderu, který je přímo v shaderu zakomponován.

Uzly XPresso

Vím, že pohled na rozbalené uzly XPressa asi nikoho neuchvátí, takže jen telegraficky. K dispozici máme dva speciální uzly, jeden pro vysílání informací o plavbě objektů a druhý analyzuje kapky na povrchu objektu ...

Závěrem

Jsme tedy u konce u snad komplexního popisu tohoto zajímavého, ale poměrně komplikovaného pluginu. Vím, byl jsem poměrně podrobný, ale to prostě proto, že bohužel není k dispozici demo a snažil jsem se, abyste měli co nejpřesnější představu. A proč že není demo? Jednoduše proto, že autoři mají velmi špatnou zkušenost s warezem, a tudíž volili tuto cestu, která je bohužel pro všechny ostatní tak nešťastná.

Nástroj jako takový bychom také měli zhodnotit. Není to jistě software pro každého, jedná se o poměrně dost specifickou oblast, ale tu zvládá s poměrně překvapující bravurou a lehkostí. Plugin je opravdu velmi stabilní, ani jednou se mi nestalo, že by se poroučel do věčných lovišť a mimo svou oblast použití zajímavým způsobem doplňuje deformátory a některé animační vlastnosti CINEMY 4D, zvláště pokud nemáte modul MOCCA. Některé součásti pluginu se mi jeví jako těžko pochopitelné a návod v tomto smyslu není možná úplně nejlépe koncipovaný, ale naštěstí se autoři obtěžovali se slušnou porcí doprovodného materiálu, takže se základy prokouše asi každý a poté by to už mělo být lehčí ... Takže AHOJ a vodě zdar.

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

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: