Delen via


Shell-weergave

De shellstatus van het onderdeel Hiërarchische statusoverschrijven is een transparantie-effect. In tegenstelling tot weergave door zien is alleen de voorste laag van objecten zichtbaar, vergelijkbaar met ondoorzichtige rendering. Daarnaast kan het normale uiterlijk van de objecten worden gewijzigd wanneer ze worden weergegeven als shells. Het effect is bedoeld voor gebruiksvoorbeelden waarbij de gebruiker visueel moet worden weggeleid van niet-belangrijke onderdelen, terwijl het ruimtelijke bewustzijn voor de hele scène behouden blijft.

U kunt het uiterlijk van door shell gerenderde objecten configureren via de ShellRenderingSettings globale status. Alle objecten die gebruikmaken van Shell Rendering gebruiken dezelfde instelling. Er zijn geen parameters per object.

Notitie

Het shell-renderingeffect kan niet worden toegepast op puntwolken.

ShellRendering Instellingen parameters

Klasse ShellRenderingSettings bevat de instellingen met betrekking tot globale shell-renderingeigenschappen:

Parameter Type Omschrijving
Desaturation zwevend De hoeveelheid desaturatie die moet worden toegepast op de gebruikelijke uiteindelijke objectkleur, in bereik 0 (geen desaturatie) tot 1 (volledige desaturatie)
Opacity zwevend De dekking van de door de shell gerenderde objecten, in bereik 0 (onzichtbaar) tot 1 (volledig ondoorzichtig)

Zie ook de volgende tabel voor voorbeelden van de effecten van de parameters wanneer deze worden toegepast op een hele scène:

0 0,25 0,5 0.75 1.0
Desaturatie Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
Dekking Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

Het shell-effect wordt toegepast op de uiteindelijke ondoorzichtige kleur waarmee de scène anders wordt weergegeven. Dit omvat de onderdrukking van de tinthiërarchie.

voorbeeld

De volgende code toont een voorbeeld van het gebruik van de ShellRenderingSettings status via de 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);
}

Prestaties

De shell-renderingfunctie draagt een kleine constante overhead in vergelijking met standaard ondoorzichtige rendering. Het is aanzienlijk sneller dan het gebruik van transparante materialen op objecten of see-through rendering. De prestaties kunnen sterk afnemen als alleen delen van de scène worden overgeschakeld naar shell-rendering. Deze degradatie kan optreden als gevolg van extra onthulde objecten waarvoor rendering is vereist. In dat opzicht gedraagt de prestaties zich op dezelfde manier als de functie Knipvlakken .

Volgende stappen