Ambient Occlusion - 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

Ambient Occlusion

8. září 2005, 00.00 | Jednou z hlavních novinek modulu Advanced Render 2.5 a celé CINEMY 4D R9.5 je podpora technologie Ambient Occlusion, která je sto v mnoha ohledech a případech nahradit technologii globální iluminace a to v řádově kratších časech.

Technologie Ambient Occlusion je jednou z hlavních cest, jak docílit realistického vzhledu, která však na rozdíl od efektu Globální iluminace, který generuje radiozity modulu Advanced Render a nebo nový finalRender stage 2 pro CINEMU 4D od Cebasu, osvětlení vlastně odebírá a nikoliv přidává.

Začít bychom asi mohli podobně, jako je specifikovaná radiozita. O ní jsem kdysi četl to, že efekt radiozity přidává ke stávajícímu osvětlení jas a i zabarvení, ve výsledku je tedy obrázek vždy světlejší, jak při použití původních světel. Je to velmi hrubé a vůbec to nebere v potaz princip tohoto efektu, ale v zásadě je to pravdivé. Efekt Ambient Occlusion, tedy Okolní prostředí funguje úplně obráceně. V 99% procentech (vlastně ve 100%, ale ono lze tento efekt použít i v kanálu Svítivost a pak je samozřejmě scéna „ozářena“ více, jak ji ozáří samotná světla) je celkový jas scény nižší. Záměrně říkám celkový jas, protože jas každého jednoho bodu nemusí být nižší, jak bez použití efektu. To totiž závisí na tom, kde ten který bod je. A tím se dostáváme k meritu věci tohoto článku, popisu funkce efektu Ambient Occlusion – Okolní prostředí v CINEMĚ 4D.

Jelikož jsme si řekli, že v principu jsou scény efektem Ambient Occlusion ztmavovány, tak z toho vyplývá, že se shader Ambient Occlusion – Okolní prostředí používá hlavně v kanálu Povrchová úprava a případně v kanálu barva při využití shaderu Fůze a nebo Vrstvy. Je to pravda, ale také se občas využívá v kanálu Prostředí a lze jej využít i v kanálu Svítivost.

Měli bychom si ve zkratce a laicky popsat princip, na kterém efekt pracuje. A můžeme si pomoci přímo překladem manuálu. „Tento efekt v zásadě určuje stupeň expozice každého jednoho bodu povrchu a podle toho mu přiřadí barvu, respektive pokud jej použijeme v kanálu Povrchová úprava, sníží podle nastaveného přechodu jas. Předpokládejme, že scéna neobsahuje podlahu a obklopuje ji ze všech stran obloha. Shader pak přesto určí význam každé viditelné plochy, kterou tato obloha vidí.

Vnitřní hrany, kouty, díry, ty části oblasti dvou objektů, které stojí vedle sebe, to jsou místa, která budou oblohou “viděny” méně, a tak je v těchto místech shader Okolní prostředí podle svého nastavení ztmaví…“

Abychom měli představu trochu komplexnější, nebylo by od věci se ještě podívat na popis jednoho parametru, a to parametru Rozptyl, který definuje „měkkost“ efektu.

„Během výpočtu efektu je pro každý bod scény uvnitř virtuální polokoule vysláno několik paprsků (vzorků). Tyto vzorky zjišťují, zda jsou v jejich dosahu v rámci maximální délky paprsku nějaké plochy“…

Co tím vším chtěli autoři manuálu říci. V zásadě to, že místa, která jsou méně exponovaná se oproti „otevřeným“ plochám, ztmaví, přičemž se samozřejmě analyzují i objekty okolní. Pokud tedy stojí váza před stěnou scény interiéru, a na tuto část scény nedopadá přímé světlo, pak se stane to, že stěna za touto vázou bude podobně jako ve skutečnosti trochu ztmavená. Vše si můžeme demonstrovat tak, že si dáme efekt Okolní prostředí do kanálu Svítivost. Tak je tomu ostatně na následujícím obrázku, ve kterém jsou velmi jednoduché materiály, mající aktivní kanál Svítivost, ve kterém je načtený shader efektu Okolní prostředí. Aby byla scéna barevnější, je přidán ještě objekt Obloha s barevnými přechody, což nám zajišťuje zabarvení scény. Ale to tu je skutečně jen proto, aby nebyl obrázek až tak fádní.

A jak přesně, bráno s pohledu uživatele, efekt pracuje? Pracuje tak, že se analyzuje geometrie ploch a na základě této analýzy jsou tyto plochy zabarvené. Plochy zcela stíněné, například oblast koule, která je ve styku s podlahou, je exponovaná velmi málo a nebo vůbec, pak tato oblast bude mít nastavenou barvu levé části přechodu, oblast na vrchu koule je exponovaná maximálně, takže bude mít barvu na pravé straně přechodu. A to je v zásadě vše, co tento efekt dělá…

Mohlo by se zdát, že to celé je tak trochu podobné jako starý shader Zašpinění (Dirt). A zdání by v jistém smyslu opravdu neklamalo, protože shader Dirt byl odstraněn, protože stejného efektu lze docílit právě efektem Okolní prostředí.

Efekt Okolní prostředí je efektem vzorkovaným, tedy kvalita zobrazení jako takového závisí na tom, jak vysoké hodnoty vzorků zadáme a jak vysoká je hodnota přesnost, která řídí výskyt maximálního počtu vzorků. Je tedy samozřejmé, že se vzrůstajícím počtem vzorků roste výpočtový čas, ale i při vyšším zadání je výpočet řádově rychlejší jak při použití systému simulujícího radiozitu.

Efekt se nastavuje buďto pro každý materiál zvlášť (v nějakém kanálu materiálu), nebo globálně v nastavení renderingu. Tak jako tak musíme v nastavení renderingu efekt jako takový aktivovat, protože jinak by nebyly aktivní ani efekty nastavené v kanálech materiálů. Nastavení efektu je uvedené v prvním obrázku článku.

Délka výpočtů a také nutné množství vzorků závisí na mnoha faktorech nastavení efektu. Nechci se nějak rozpitvávat nad všemi (ostatně to by asi chtělo nějaké skoro vědecké pojetí a na to, upřímně řečeno, nemám), ale fakt je, že pokud je efekt více rozptýlený, tedy lidově řečeno širší, pak se počítá déle a více se projeví hodnoty nastavených vzorků. Může se pak stát, že hodnoty vzorků odpovídající na „menší šířku“ efektu nebudou stačit na „šířku větší“.

Dalším zajímavým parametrem, který zásadně ovlivňuje chování efektu je parametr Rozptyl. Jak jsme si již řekli, je efekt v zásadě generovaný paprsky, které směřují z polokoule okolo bodu objektu a zjišťují, zda něco v zadaném poloměru je. Pokud je hodnota 100%, pak je tato polokoule úplná, čím menší ale hodnota je, tím menší vzniká kuželovitá výseč, pro kterou paprsky zjišťují výše popsaný stav.

Výše uvedená první ukázka měla nastavené ve všech případech, tedy ve všech materiálech a také nastavení efektu v nastavení renderingu, hodnotu rozptylu 100%, v této nové ukázce je hodnota všech materiálů a také nastavení 20%. Jak vidno efekt se podstatně „zostřil“ a to právě na oblasti, které odpovídají směřování normál jednotlivých ploch. Efekt je sice již trochu nereálný, ale při smysluplném nastavení by tomu již tak být nemuselo. Mimo to se snížením hodnoty tohoto parametru snižuje délka výpočtu. Mimo to je také v takovém případě možné trochu snížit množství vzorků bez ztráty kvality efektu a to je opět stav, který jistě uvítáme.


Rozptyl 20%


Variace rozptylu od 60% do 70%

Tak to by mohlo, myslím, na úvod docela stačit. Ono totiž je pravdou, že efekt není zas tak zákeřný, jak by se mohlo na první pohled zdát, a tak se domnívám, že po několika testech každému více méně vejde pod kůži, což je samozřejmě dobře. Ale zase bych nerad, aby to vypadalo, že jsou jeho možnosti malé. To rozhodně ne.

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: