Sdílet prostřednictvím


Vykreslování prostředí

Stav prostředí součásti přepsání hierarchického stavu je efekt průhlednosti. Na rozdíl od vykreslování pomocí zobrazení je viditelná pouze front-most vrstva objektů, která se podobá neprůhlému vykreslování. Kromě toho je možné při vykreslení jako prostředí změnit normální vzhled objektů. Účinek je určený pro případy použití, kdy by měl být uživatel vizuálně řízen od nevýznamných částí a přitom zachovat prostorové povědomí o celé scéně.

Vzhled objektů vykreslených prostředím můžete nakonfigurovat prostřednictvím globálního ShellRenderingSettings stavu. Všechny objekty, které používají vykreslování prostředí, budou používat stejné nastavení. Neexistují žádné parametry objektu.

Poznámka:

Efekt vykreslování prostředí se nedá použít u bodových cloudů.

ShellRendering Nastavení parametry

Třída ShellRenderingSettings uchovává nastavení související s vlastnostmi globálního vykreslování prostředí:

Parametr Typ Popis
Desaturation float (číslo s plovoucí řádovou čárkou) Množství desaturace, která se použije u obvyklé konečné barvy objektu, v rozsahu 0 (bez desaturace) až 1 (úplná desaturace)
Opacity float (číslo s plovoucí řádovou čárkou) Neprůhlednost objektů vykreslených prostředím v rozsahu 0 (neviditelné) až 1 (zcela neprůhledné)

Příklady efektů parametrů při použití na celou scénu najdete také v následující tabulce:

0 0.25 0.5 0.75 1.0
Desaturace Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
Krytí Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

Efekt prostředí se použije na konečnou neprůraznou barvu scény, jinak by se scéna vykreslila. To zahrnuje přepsání hierarchického stavu.

Příklad

Následující kód ukazuje příklad použití ShellRenderingSettings stavu prostřednictvím rozhraní API:

void SetShellSettings(RenderingSession session)
{
    ShellRenderingSettings shellRenderingSettings = session.Connection.ShellRenderingSettings;
    shellRenderingSettings.Desaturation = 0.5f;
    shellRenderingSettings.Opacity = 0.1f;
}
void SetShellSettings(ApiHandle<RenderingSession> session)
{
    ApiHandle<ShellRenderingSettings> shellRenderingSettings = session->Connection()->GetShellRenderingSettings();
    shellRenderingSettings->SetDesaturation(0.5f);
    shellRenderingSettings->SetOpacity(0.1f);
}

Výkon

Funkce vykreslování prostředí má ve srovnání se standardním neprůžným vykreslováním malou konstantní režii. Je výrazně rychlejší než použití průhledných materiálů na objektech nebo vykreslování pomocí zobrazení . Výkon může výrazně snížit, pokud se na vykreslování prostředí přepnou jenom části scény. K tomuto snížení výkonu může dojít z důvodu dalších odhalených objektů vyžadujících vykreslování. V tomto ohledu se výkon chová podobně jako funkce Roviny vyjmutí.

Další kroky