Ambientní okluze (Cineware efekt)

Tento efekt je dostupný v detailním nastavení fotozobrazení enginu Cineware.

Ambientní okluze (AO) určuje stupeň expozice každého bodu viditelného povrchu a na základě toho je ztmavuje. Ambientní okluze (AO) poskytuje, do určité míry, rychlou alternativu k GI.

Podívejte se na video

Poznámka: Alternativou ke globálnímu nastavení AO pro celou scénu je ambientní okluze použitá jako shader efekt v některém kanálu povrchového materiálu.

Viz Ambientní okluze (kanál povrchového materiálu Cineware).

Řekněme, že je vaše scéna ze všech stran obklopená oblohou. Shader AO zjistí, v jakém rozsahu každá plocha "vidí" oblohu.

AmbientOcclusionSphere.png

 

Prostory vnitřních rohů, otvory, plochy mezi blízkými objekty vidí méně nebe, a proto budou ztmaveny na základě nastavení AO.

K dispozici jsou dva typy výpočtu Ambientní okluze:

běžná metoda "brutální síly", která počítá s každým viditelným pixelem prostředí

rychlejší metoda s použitím mezipaměti, která počítá jen viditelnost některých bodů a všechny ostatní mezi nimi interpoluje.

Druhá metoda pracuje vnitřně, podobně jako Irradiance Cache režimu GI, a je ovládána pomocí podobných nastavení. Výhodou této metody je mnohem rychlejší výpočet AO.

Viz Cache (mezipaměť), níže.

Barva

Zde můžete nastavit barevný přechod, jehož barvy AO přiřazuje v závislosti na expozici. Normálně je to černo-bílý gradient, nicméně lze použít jakékoli jiné barvy.

Mějte na paměti fakt, že v některých kanálech materiálů budou barvy gradientu považovány za barvy šedi.

Viz také Nastavení parametrů gradientu.

Obecný

Minimální délka paprsků: Určuje, jak bude gradient - z nastavení barvy - renderován mezi exponovaným a neexponovaným povrchem. Čím menší je rozdíl mezi minimální délkou paprsku a maximální délkou paprsku, tím dále bude gradient vytažený směrem k hranám, které jsou definovány maximální délkou paprsku.

S touto hodnotou je lepší nehýbat. Nechte ji nastavenou na výchozí hodnotu 0.

Maximální délka paprsků: Touto hodnotou definujete vzdálenost, na jakou povrch vidí ty ostatní. V místech, kde se objekty stýkají, jako v případě zdi a desky nebo koule a podlahy, dopadá jen malé množství paprsků, i ty ale stačí na ztmavení těchto míst.

Pokud je nastavena vysoká hodnota, objekty na sebe navzájem uvidí na mnohem větší vzdálenost. Výsledkem bude jemnější, plynulejší ztmavování povrchů, které ale prodlužuje čas renderu. Doporučujeme nižší hodnoty.

Rozptyl: Při každém výpočtu AO je na každý bod scény z virtuální hemisféry vyzářeno několik paprsků (vzorků). Tyto vzorky kontrolují, jestli nějaký objekt leží ve vzdálenosti maximální délky paprsků. Rozptyl definuje rozsah, ve kterém budou tyto vzorky započítány na povrchu hemisféry. Hodnota 0% započítává pouze zenit hemisféry (svisle přes sféru). Hodnota 100% započítává celou hemisféru.

Přesnost, Minimální počet vzorků a Maximální počet vzorků (ambientní okluze)

Pomocí těchto voleb můžete určit kvalitu AO.

Nízká kvalita se projeví zrnitým výstupem. To nemusí být nezbytně špatně. V některých případech může mít takový výstup vysokou estetickou hodnotu.

Pokud dáváte přednost hladkým přechodům, měli byste nastavit vyšší kvalitu, tím ale prodloužíte dobu renderu.

Jednoduchými slovy: Vzorky jsou nezbytné pro render AO. Čím více použitých vzorků, tím jemnější (méně zrnitý) výsledný obrázek bude, ale tím déle bude render trvat. Na druhou stranu - méně vzorků - kratší čas renderu.

Samozřejmě můžete celou scénu renderovat s maximálním počtem vzorků. To by ale trvalo velmi dlouho a vlastně to ani nemá cenu, protože každá scéna obsahuje spoustu ploch, na které stačí jen pár vzorků.

K tomu slouží nastavení minimálního a maximálního počtu vzorků. Mají vliv na kritická a méně kritická místa scény různými způsoby.

Nastavení přesnosti definuje kde a kolik vzorků musí být přiděleno, aby bylo dosaženo nejlepšího možného výsledku. V kritických místech bude použit maximální počet vzorků.

Proto má nastavení přesnosti největší vliv v kritických místech (protože vyšší hodnoty v těchto místech vyžadují více vzorků) a menší vliv v méně kritických místech, které použijí minimální počet vzorků.

Kontrast: Pomocí tohoto nastavení můžete upravit kontrast efektu AO. Můžete zadat i záporné hodnoty!

Použít prostředí oblohy: AO můžete použít i bez zvláštního zdroje světla, pokud je pro osvětlení scény použita fyzikální nebo HDRI obloha. Pokud je aktivní volba obloha, bude odražená barva oblohy násobena na finálním obrázku s AO.

Poznámka: Aby se tento efekt projevil, v nastavení povrchových materiálů musí být aktivována textura ambientní okluze v kanálech prostředí nebo svítivost.

Viz Ambientní okluze (kanál povrchového materiálu Cineware).

AmbientOcclusionShader.png

 

Vyhodnotit průhlednost: Když je tato volba aktivní, průhlednost bude analyzována na základě kanálu průhlednosti nebo alfa kanálu povrchového materiálu. Když se tak děje, je zohledněn stupeň průhlednosti: Poloprůhledná sféra bude stále vytvářet nějakou AO, i když je tato volba aktivní.

Pouze vlastní stínění: Když je tato volba aktivní, objekty se nebudou navzájem vidět, uvidí pouze samy na sebe.

Cache (mezipaměť)

Protože AO pracuje velmi podobně jako Irradiance Cache, nastavení většiny částí je stejné. Ve většině případů bude stačit nastavit Hustotu záznamu.

Hustota záznamu

Hustota záznamu nastaví podřízené parametry automaticky. Tyto podřízené parametry upravte pouze v případě, kdy je AO počítána neustále špatně nebo není dostatečně přesná.

Aktivní Cache

Pokud je volba aktivní, bude pro výpočet AO použit Cache (podrobně popsán níže).

Pokud je vypnutá, AO bude pracovat jako v předchozích verzích Cineware (AC19 a starší): Viditelnost prostředí bude vypočtena pro každý pixel.

Jak pracuje Cache AO

Při renderování je provedeno několik předvýpočtů (pre-pass), které analyzují, které oblasti projektu jsou pro kameru důležité (“stínící body” v rozích, konkávních oblastech a podobně) z hlediska viditelnosti prostředí a výpočtu hodnoty AO:

Všechny hodnoty AO budou uloženy do mezipaměti AO a můžou být uloženy v souboru pro pozdější použití.

V dalším kroku budou selektivně umístěné hodnoty AO interpolovány a vyhlazeny.

Další nastavení slouží primárně pro rozptýlení stínících bodů.

Vzorky

Počet vzorků vyzářených do polokoule z každého stínícího bodu. Pokud je AO tečkovaná, tuto hodnotu zvyšte.

AOSamples.png

 

Nalevo: nízký počet vzorků. Napravo: větší počet vzorků. Model od Steen Winthera.

Minimální míra/Maximální míra

Tyto dvě možnosti můžou být ve většině případů ignorovány. Jejich efekt je těžko rozpoznatelný. “Nejhorší” natavení minimální míry a maximální míry (-8 u každého) se liší kvalitou je nepatrně oproti jejich “nejlepšímu” nastavení (-8 a +4, viz obrázek).

MinMax1.png

 

8/-8 (nalevo) a -8/+4 (napravo) pro minimální resp. maximální míru

Nicméně jejich funkce by měla být zmíněna: Při předběžném výpočtu (fáze, kdy se objeví velké čtverce a postupně se zmenšují) je definována hustota rozptylu renderu. Jedná se o adaptivní proces, který klade důraz na kritické oblasti. Rozdíl mezi minimální a maximální mírou určuje počet průchodů předběžného výpočtu.

MinMax2.png

 

-7 a 0 pro minimální respektive maximální míru

Hodnota 0 použije plné rozlišení obrázku (velikost pixelu 1*1), hodnota -1 pracuje s pixely o velikosti 2*2, hodnota -2 = 4*4 a tak dále. Minimální míra by tak měla být logicky menší nebo rovna maximální míře. Můžete použít také kladné hodnoty, které umožní načítání subpolygonů do mezipaměti (například to může být užitečné při výpočtu subpolygonální deformace, kdy se ztrácí detaily).

Hustota/Minimální vzdálenost/Maximální vzdálenost

Tyto tři volby spolu definují hustotu obecného stínícího bodu v kritický a nekritických místech:

Hustota: Hustota obecného stínícího bodu s ohledem na následující nastavení.

Minimální vzdálenost: Hustota stínících bodů v kritických místech (např. rozích).

Maximální vzdálenost: Hustota stínících bodů v nekritických místech (např. plochy bez prvků, které brání v pohledu). Různé hodnoty nastavení můžete vidět, pokud se podíváte na nastavení hustoty GI. Rozptyl stínícího bodu je úplně stejný jako rozptyl dočasné složky AO.

Vyhlazování

Všechna popsaná nastavení se točí kolem umístění stínících bodů a jejich výpočtu.

AO byla zjištěna jako selektivní na mnoha místech projektu. Selektivní rozptyl musí být před renderováním převeden na plochý rozptyl. Algoritmus vyhlazování toto provádí následovně: Při renderování každého pixelu povrchu objektu je prověřena mezipaměť AO a vyhledán nejbližší pixel, jehož hodnoty jsou pro renderovaný pixel interpolovány.

Stručně: Příliš nízké hodnoty vytvoří flekaté AO; vyšší hodnoty budou vyrenderovány více stejnorodě (ale i tyto ignorují vzorky, které jsou příliš malé). Obecně řečeno, vyšší hodnoty počítají s více stínícími body pro každý renderovaný pixel.

Extrémně vysoké hodnoty paradoxně také vedou k flekatým výsledkům.

Měřítko pohledu

Pokud je měřítko vypnuté, velikost renderovaného výstupu nebude při zjišťování hustoty stínících bodů vliv. Zůstane konstantní bez ohledu na to, zda renderujete v rozlišení 80*80 nebo 3000*3000. V prvním případě by bylo příliš velké a v druhém příliš malé.

Pokud měřítko zapnete, bude hustota stínících bodů vázaná na velikost renderovaného výstupu. Díky tomu bude hustota stínících bodů flexibilnější a přizpůsobí se.

Obrátit směry

Pokud je tato volba zapnutá, efekty AO budou invertovány. Místo rohů a otvorů budou vyhledány vystupující hrany a vnější rohy.

Pokud například potřebujete exponovanou plochy zobrazit jinak, než ostatní povrchy, použijte shader AO v kanálu Alfa: na daném povrchu se projeví efekty pouze na vystouplých hranách a rozích.

AOInverted.png

 

Tato funkce se nejvíce projeví, když je použita jako efekt shaderu. Pokud je zapnutá jako efekt renderu, zobrazí se v renderu pouze jako jednoduché zbarvení exponovaných oblastí.