Dela via


Rendering av gränssnitt

Gränssnittstillståndet för åsidosättningskomponenten för hierarkiskt tillstånd är en transparenseffekt. Till skillnad från genomskinlig återgivning är endast det främre lagret av objekt synligt, vilket liknar ogenomskinlig återgivning. Dessutom kan objektens normala utseende ändras när de återges som gränssnitt. Effekten är avsedd för användningsfall där användaren ska vägledas visuellt bort från icke-viktiga delar samtidigt som rumslig medvetenhet bibehålls för hela scenen.

Du kan konfigurera utseendet på shell-renderade objekt via det ShellRenderingSettings globala tillståndet. Alla objekt som använder gränssnittsrendering använder samma inställning. Det finns inga parametrar per objekt.

Kommentar

Skalåtergivningseffekten kan inte tillämpas på punktmoln.

ShellRendering Inställningar parametrar

Klassen ShellRenderingSettings innehåller inställningarna för globala gränssnittsrenderingsegenskaper:

Parameter Typ Description
Desaturation flyttal Mängden desaturation som ska tillämpas på den vanliga slutliga objektfärgen, i intervall 0 (ingen desaturation) till 1 (fullständig desaturation)
Opacity flyttal Ogenomskinligheten för de shell-renderade objekten i intervallet 0 (osynliga) till 1 (helt ogenomskinliga)

Se även följande tabell för exempel på parametrarnas effekter när de tillämpas på en hel scen:

0 0.25 0,5 0.75 1.0
Desaturation Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
Opacitet Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

Shell-effekten tillämpas på den slutliga ogenomskinliga färgen som scenen skulle återges med annars. Det inkluderar åsidosättning av tonat-hierarkiskt tillstånd.

Exempel

Följande kod visar ett exempel på användning av ShellRenderingSettings tillståndet via API:et:

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);
}

Prestanda

Funktionen för skalrendering medför en liten konstant omkostnad jämfört med ogenomskinlig standardåtergivning. Det går betydligt snabbare än att använda transparent material på objekt eller genomskinlig återgivning. Prestanda kan försämras starkare om endast delar av scenen växlas till skalrendering. Den här försämringen kan inträffa på grund av att ytterligare avslöjade objekt kräver återgivning. I det avseendet beter sig prestandan på samma sätt som funktionen Klipp ut plan .

Nästa steg