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 | |||||
Krytí |
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í.