Přehled nových funkcí v Blenderu (3. část): Node Editor - 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:



Střední formát

Přehled nových funkcí v Blenderu (3. část): Node Editor

18. října 2007, 00.00 | Je to bez diskuze, komplexnější komponování scény je v poslední době ve 3D grafice čím dál tím důležitější.
Blender žádným kompozitním editorem až do verze 2.42 nedisponoval. Nyní mám tu čest vám ho představit - potlesk prosím pro node editor.

Dříve než se vrhneme na další novinku, bych chtěl upozornit na to, že vyšel Blender 2.45. Stahovat můžete na http://www.blender.org/download/get-blender/. Tento release se nese hlavně v duchu opravy četného množství bugů - nebyly tedy přidány žádné nové funkce. Za zmínku stojí určitě opravení SSS pro panoramatický render či odstranění nežádoucích výsledků při použití SSS s negativním světlem. Dále byly opraveny bugy v případě importu nejrůznějších souborů, koneckonců, jejich konečný výčet můžete nalézt na http://www.blender.org/development/release-logs/blender-245/.

A nyní už k článku. Je to bez diskuze – komplexnější komponování scény je v poslední době ve 3D grafice čím dál tím důležitější. Blender žádným kompozitním editorem až do verze 2.42 nedisponoval. Nyní mám tu čest vám ho představit - potlesk prosím pro node editor.

Abyste si udělali představu, jak tento node editor vypadá, podívejte se na obrázek:

Node editor

Díky tomuto editoru lze nejen upravovat materiály (parametr jednoho materiálu ovlivňuje jiný materiál), ale především vytvářet postproces scény přímo v Blenderu. To znamená například úpravy jasu a kontrastu, barevnosti, ostrosti, prolínání objektů i za pomoci alpha nebo Z-kanálu a spoustu dalších užitečných věcí. Pojďme se některým možnostem podívat na zub.

Klávesová zkratka pro node editor je SHIFT + F3. Klíč k úspěšnému použití node editoru spočívá v prvé řadě v jeho aktivaci :). To provedete na jeho headeru těmito tlačítky:

Header node editoru

Pokud budete pracovat se zatrhlou ikonkou kuličky, budete upravovat materiálové nody. Při aktivaci komponování scény se vám zobrazí node políčka tak, jak to vidíte na prvním obrázku. Princip je vesměs jednoduchý, horší už je úspěšné použití v praxi. Základem je nějaký input - to může být aktuální scéna - skupina vrstev (Render Layers - co to přesně je vysvětlím později), externí obrázek, animace, či jen jednoduchá barva. Tento input může procházet změnami - rozostření, změna jasu a kontrastu atp. a ve finále je naveden na output - buď výstup rendereru nebo výstup UV image editoru. To bylo řečeno opravdu zjednodušeně, připravte se na to, že než pochopíte, co a jak funguje, bude to nějakou chvíli trvat. Nyní si nastavte pracovní pole takto:

Malá okénka v node editoru se nazývají nody a obsahují veškeré informace. Pokud by node editor byl dům, jeho jednotlivé nody by byly cihly. Pojďme se podívat na jeden takový node:

Node

Vidíte na něm node s informacemi z vrstev jeho RenderLayers. Roletkové menu dole umožňuje vybrat, kterou RenderLayer chcete použít. Malá kolečka vpravo nahoře jsou výstupy a obsahují informace, které mají v popisku. Tedy v našem případě je výstup image aktuální render z vrstev RenderLayers, Alpha je alpha kanál těchto vrstev a Z je Z-kanál. K jejich podrobnějšímu přiblížení se dostanu později, zatím se soustřeďme na vzhled. Pokud by tato kolečka byla vlevo, šlo by o vstupy. Trojúhelník vlevo nahoře umožňuje "sbalit" node tak, že vidíte jenom vstupy a výstupy na malém oválu:

Render Layers

Všechny funkce jsou "schovávací", malé plus vpravo nahoře schová všechny nevyužité vstupy a výstupy, kulička schová obrázek a dva obdélníky schovají jakákoliv nastavovací tlačítka.

Node, který reprezentuje výstup na UV image editor, jsem přidal (na headeru node editoru) Add->Output->Viewer.

Přidání nodu

Poté jsem napojil výstupní bod Image z Render Layers na vstupní bod Image na Vieweru. To se dělá prostým klikem na výstupní bod a tažením myši na jiný vstupní. Pak už je třeba jen vyrenderovat do bufferu aktuální render layers (jejich význam objasním za chvíli) tímto tlačítkem:

Renderování renderovacích vrstev

Samozřejmě se vyrenderují pouze ty vrstvy, které máte viditelné (pokud nějaká z nich tvoří tuto renderovanou skupinu vrstev). Pokud chcete vidět náhled na render v UV image editoru, musíte tuto volbu aktivovat na headeru:

Nastavení vierwe node

Nastavení viewer node umožní, že uvidíte výsledek v tom místě, kde je viewer node aktivní a napojený na nějaký výstup. Můžete mít klidně i víc výstupů na UV image editor a libovolně mezi nimi přepínat prostým kliknutím. To se hodí například při zpětném hledání chyby. Ano, než se dostanete k uspokojivému výsledku, chvíli to potrvá, ale to je cena za kvalitu. Pokud chcete výsledek vidět v renderu, nebo v UV image editoru s nastaveným zobrazením místo viewer node na render result, musíte v render buttons zatrhnout volbu Do Composite:

Renderování renderovacích vrstev

Jak jsem slíbil, nyní objasním význam render layers. Jejich hlavní ovládací panel se nachází v render buttons:

Render Layers

Render layers nejsou nic jiného než skupiny vrstev. Vytvoříte jednoduše skupinu a ta bude obsahovat několik vrstev (klidně všechny). Na tyto vrstvy se poté bude v node editoru aplikovat ten či onen efekt, takže můžete oddělit rozsah působnosti jednotlivých efektů. V praxi to znamená, že například na objekty v 1. a 2. vrstvě se bude aplikovat efekt rozostření a ve vrstvách 3 a 4 budou mít objekty modrý barevný nádech. Doufám, že nemusím zdůrazňovat, že typ efektu záleží zcela na vás a na tom, jak jej dokážete zužitkovat. Prosté, ale efektivní.

Dvacet tlačítek vpravo nahoře znázorňuje momentálně aktivní (resp. viditelné) vrstvy.

Fajfka vlevo vedle šipek značí, jestli bude vrstva povolena k výpočtu či nikoli.
Šipky značí roletkové menu, kde můžete vybrat či vytvořit (ADD NEW) RenderLayers, vedle nich je název skupiny vrstev.
Tlačítko Single slouží k nastavení toho, abyste vyrenderovali pouze aktivní RenderLayers (samozřejmě v závislosti na aktuálně viditelných vrstvách).
X použijte ke smazání RenderLayers.

Dalších dvacet tlačítek slouží k definici obsahu RenderLayers - určujete, které vrstvy ji budou tvořit.

Tlačítka pod nápisem layer (AllZ, Solid, Halo, ZTra, Sky a Edge) určují, které parametry se budou počítat.
AllZ - RenderLayers se bude počítat, jakoby byly viditelné všechny vrstvy a poté se vytvoří obrázek, ve kterém jdou vidět pouze objekty z vrstev RenderLayers. Toto má smysl používat, pouze pokud máte objekty rozházené ve více RenderLayers. Lépe to vyjádří obrázek:

Krychle po průniku s koulí v jiné RenderLayers

Takto vypadá krychle po průniku koulí (koule není ve vrstvě této RenderLayer)

Abych lépe popsal procesy, které vzniknou díky změně těchto nastavení, vytvořil jsem tuto jednoduchou scénu:

Všechny parametry zapnuty

Na obrázku si všimněte, že jsou použity tři různé materiály - průhledný (krychle vpravo), halo (koule vlevo) a zbývající dvě tělesa mají defaultní materiál. Nyní, když vypneme parametr solid, přestanou se vykreslovat pevné plochy (tzn. ty, které jsou zcela neprůhledné):

Vypnutá volba solid

Pokud vypneme parametr Halo, přestanou se počítat veškeré halo materiály:

Vypnuta halo volba

Při vypnutí Ztra se přestávají počítat jakkoli průhledné plochy:

Ztra vypnuto

Pokud vypneme volbu Sky, pozadí se nahradí černou barvou:

Sky vypnuto

No a vypnutí edge znamená, že se nebudou v daných vrstvách obtahovat hrany černou barvou (laicky řečeno). Tuto volbu musíte nejdřív zapnout v render buttons. Pro ty z vás, kteří se s tímto ještě nesetkali, nejprve musíte zatrhnout tlačítko Edge a poté můžete nastavit tloušťku a barvu čáry:

Nastavení vykreslování obrysů kolem těles

S tímto nastavením jsem dostal následující výsledek:

Vykreslené hrany

Pojďme se tedy vrátit k hlavnímu panelu RenderLayers:

Render Layers

Kolonka s nápisem Light - sem napíšete název skupiny (skupina musí obsahovat i nějaká světla) a poté se bude renderovat pouze obrázek s nasvícením světel z této skupiny. Toto umožňuje renderování vrstev, každou s vlastními passy (vysvětlím později) a různým nasvícením.
Kolonka s nápisem Material - sem napište název materiálu, který se bude renderovat na facech všech objektů v daných vrstvách.

Pod těmito kolonkami se nachází velmi důležité passy (angl. průchod). Pomocí nich můžete doslova rozkouskovat celý obrázek - můžete zvlášť upravovat, dejme tomu, AO pass, Normal pass atd. Podívejte se, jak vypadají jednotlivé passy:

Toto velmi pomáhá výslednému komponování scény. Nějaké konkrétní případy si ale ukážeme příště.

S passy souvisí ještě jedna drobná novinka - tlačítko Savebuffers ve scene buttons:

Pokud máte aktivovanou tuto volbu, vyrenderují se všechny passy do externího .exr souboru, z nějž tyto hodnoty později můžete vyvolat v node editoru klávesou R

Nyní k popisu jednotlivých passů:

Combined - tento pass obsahuje informace ohledně kanálů RGBA, když jsem ho vypnul, přestaly se vykreslovat všechny pevné hrany (včetně průhledných) a jediný materiál, který se zobrazoval, byl halo.

Pokud zatrhnete některý z následujících passů, objeví se jeho výstup na RenderLayers nodu. Jestli chcete vyloučit některý pass z "Combined", můžete to provést u těch, které mají před názvem šedý puntík. Držte CTRL a klikněte na pass, kulička změní barvu na černou, a když zkusíte vyrenderovat, uvidíte výsledek bez tohoto passu. V naší jednoduché scéně je to nejviditelnější na specularity passu - pokud jej vypnete, na obrázku není vidět žádná specularita.

Z - produkuje reálnou hodnotu vzdálenosti bodu, hrany, face, objektu od kamery a není vyhlazena anti-aliasingem
Vec - produkuje rychlostní vektory pro pohybující se body (konkrétně o tomto více v příštím díle)
Nor - produkuje normal mapu, ale z pohledu z kamery, lze ji tudíž později použít jako texturu
UV - v tomto passu se zapisují UV hodnoty u objektů, které jsou unwrapovány, externí soubor s obrázkem můžete přes tento pass namapovat jako texturu
IndexOB - každý objekt v RenderLayers může mít ID číslo, toto lze využít později při komponování scény. Tomuto se podrobněji budu věnovat níže
Col - čistá barva, tzn. bez stínování a jakýchkoliv "serepatiček", toto je hodnota navrácená z materiálu a textur. Dá se říct, že stejný efekt by mělo, kdybyste každému materiálu nastavili vlastnost shadeless
Diff - v jistých ohledech to samé, na výstupu dostanete vystínovaný objekt, nejsou však vrhány stíny, a není vykreslována specularita ani barevné ovlivnění barvy worldu (ambient)
Spe - vykreslení samotné specularity
Sha - vykreslení stínu, tato hodnota se získá vydělením difúzního kanálu se stínem a difúzního kanálu bez stínu
AO - vykreslení AO passu, je nutné aktivovat ve world buttons a nastavit raytracing
Refl - vykreslení reflexe na odrazivých materiálech, tato hodnota je získána z difúzního passu s reflexí a difúzního passu bez reflexe, raytracing je nutností
Ref - vykreslení refrakce, hodnota je opět získána rozdílem difúzního passu s a bez refrakce, raytracing je opět nutností
Rad - vykreslení samotné radiosity, aby byl výsledek patrný, musíte v render buttons zatrhnout volbu Radio a ve scéně mít aspoň 1 objekt emitující světlo

Takže myslím, že to by bylo pro dnešek vše, dnes jsme si popsali základy node editoru, a jak jsem předeslal, příště se můžete těšit na ukázky použití node editoru v praxi, využití vector blur na animaci, indexOB parametr a materiálový node editor. A zatím se nebojte samostatně experimentovat - node editor otevírá cestu na vyšší úroveň tvorby a byla by opravdu velká škoda jej nevyužívat.

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: