Teilen über


Shell-Rendering

Der Shell-Status der Komponente für die hierarchische Zustandsüberschreibung ist ein Transparenzeffekt. Im Gegensatz zum Durchsichts-Rendering ist nur die vorderste Ebene des Objekts sichtbar, ähnlich wie beim deckenden Rendering. Darüber hinaus kann die normale Erscheinung des Objekts geändert werden, wenn es in Form von Shells gerendert wird. Der Effekt ist für Anwendungsfälle gedacht, in denen der Benutzer visuell von nicht wichtigen Teilen fortgeleitet werden soll und zugleich räumliche Informationen für die Gesamtszene erhalten bleiben sollen.

Sie können die Darstellung von als Shell gerenderten Objekten mithilfe des globalen Zustands ShellRenderingSettings konfigurieren. Für alle Objekte, die Shell-Rendering verwenden, gilt die gleiche Einstellung. Es gibt keine objektweisen Parameter.

Hinweis

Der Shell-Rendering-Effekt kann nicht auf Punktwolken angewendet werden.

ShellRenderingSettings-Parameter

Die Klasse ShellRenderingSettings enthält die Einstellungen für die globalen Shell-Renderingeigenschaften:

Parameter Typ BESCHREIBUNG
Desaturation float Das Maß an Entsättigung, das auf die übliche endgültige Objektfarbe angewendet werden soll, im Bereich von 0 (keine Entsättigung) bis 1 (vollständige Entsättigung)
Opacity float Die Deckkraft der als Shell gerenderten Objekte im Bereich von 0 (unsichtbar) bis 1 (vollständig deckend)

Beispiele für die Wirkung der Parameter bei der Anwendung auf eine gesamte Szene finden Sie auch in der folgenden Tabelle:

0 0.25 0.5 0,75 1.0
Entsättigung Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
Deckkraft Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

Der Shelleffekt wird auf die endgültige deckende Farbe angewendet, mit der die Szene andernfalls gerendert würde. Dies schließt die hierarchische Zustandsüberschreibung der Tönungsfarbe ein.

Beispiel

Der folgende Code zeigt eine Beispielnutzung des ShellRenderingSettings-Zustands mithilfe der 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);
}

Leistung

Das Shell-Renderingfeature bedeutet einen geringen ständigen Mehraufwand im Vergleich zum standardmäßigen deckenden Rendering. Es ist bedeutend schneller als die Verwendung von transparenten Materialien auf Objekten oder Durchsichts-Rendering. Die Leistung kann stärker abfallen, wenn nur Teile der Szene auf Shell-Rendering umgestellt werden. Dieser Leistungsabfall kann durch die zusätzlich offenbarten Objekte hervorgerufen werden, die nun gerendert werden müssen. In dieser Hinsicht ist das Leistungsverhalten ähnlich wie beim Schnittebenen-Feature.

Nächste Schritte