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 | |||||
Deckkraft |
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.