Konturenrendering
Ausgewählte Objekte können visuell hervorgehoben werden, indem über die Komponente für hierarchische Zustandsüberschreibung Konturenrendering hinzugefügt wird. In diesem Kapitel wird erläutert, wie globale Parameter für das Konturenrendering über die Client-API geändert werden.
Bei Kontureneigenschaften handelt es sich um eine globale Einstellung. Alle Objekte mit Kontur-Rendering verwenden dieselbe Einstellung – es ist nicht möglich, Farben nur für die Konturen einzelner Objekte zu verwenden.
Hinweis
Der Kontur-Rendering-Effekt kann nicht auf Punktwolken angewendet werden.
Parameter für OutlineSettings
Die Klasse OutlineSettings
enthält die Einstellungen für globale Kontureneigenschaften. Sie macht die folgenden Member verfügbar:
Parameter | Typ | Beschreibung |
---|---|---|
Color |
Color4Ub | Mit diesem Parameter wird die Farbe festgelegt, die für die Konturen verwendet wird. Der Alphateil wird ignoriert. |
PulseRateHz |
float | Mit diesem Parameter wird die Oszillationsrate der Konturen pro Sekunde festgelegt. |
PulseIntensity |
float | Mit diesem Parameter wird die Intensität des Pulsierens der Konturen festgelegt. Der Wert muss zwischen 0,0 für kein Pulsieren und 1,0 für volles Pulsieren liegen. Die Intensität legt die Mindestdeckkraft der Konturen implizit auf MinOpacity = 1.0 - PulseIntensity fest. |
MaskTexture |
2D-Textur | Wenn angegeben, wird die Farbe der Kontur von dieser Textur getönt. Die Textur wird in Bildschirmkoordinaten erfasst und verschiedene Parameter (MaskScale , MaskScaleToFit , MaskOffset , MaskScrollSpeed , MaskRotationCenter , MaskRotationAngle , MaskRotationSpeed ) wirken sich auf die Streckung, Drehung und das Scrollen dieser Abbildung aus. Dieses Feature kann verwendet werden, um Effekte wie einen Farbverlauf oder gestrichelte Konturen zu erzielen. Siehe zweites Beispielbild unten. |
Die Wirkung der Änderung des Parameters color
von gelb (links) in Magenta (Mitte) und pulseIntensity
von 0 in 0,8 (rechts).
Der Effekt der Anwendung einer Maskentextur auf die Umrisse: Am Bildschirm ausgerichtete Farbverläufe (links) oder gestrichelte Umrisse, die durch die Verwendung einer Kacheltextur mit Streifen simuliert werden (rechts).
Beispiel
Der folgende Code ist ein Beispiel für das Festlegen von Konturenparametern über die API:
void SetOutlineParameters(RenderingSession session)
{
OutlineSettings outlineSettings = session.Connection.OutlineSettings;
outlineSettings.Color = new Color4Ub(255, 255, 0, 255);
outlineSettings.PulseRateHz = 2.0f;
outlineSettings.PulseIntensity = 0.5f;
}
void SetOutlineParameters(ApiHandle<RenderingSession> session)
{
ApiHandle<OutlineSettings> outlineSettings = session->Connection()->GetOutlineSettings();
Color4Ub outlineColor;
outlineColor.channels = { 255, 255, 0, 255 };
outlineSettings->SetColor(outlineColor);
outlineSettings->SetPulseRateHz(2.0f);
outlineSettings->SetPulseIntensity(0.5f);
}
Leistung
Konturenrendering kann die Renderingleistung erheblich beeinflussen. Dieser Einfluss variiert basierend auf dem Platzverhältnis in Bezug auf den verwendeten Bildschirmplatz zwischen ausgewählten und nicht ausgewählten Objekten in einem bestimmten Frame.