Renderowanie konturów
Wybrane obiekty można wyróżnić wizualnie, dodając renderowanie konspektu za pomocą składnika przesłonięcia stanu hierarchicznego. W tym rozdziale wyjaśniono, jak parametry globalne renderowania konspektu są zmieniane za pośrednictwem interfejsu API klienta.
Właściwości konspektu są ustawieniem globalnym. Wszystkie obiekty korzystające z renderowania konspektu używają tego samego ustawienia — nie można użyć koloru konspektu dla poszczególnych obiektów.
Uwaga
Nie można zastosować efektu renderowania konspektu do chmur punktowych.
Parametry dla OutlineSettings
Klasa OutlineSettings
przechowuje ustawienia związane z globalnymi właściwościami konspektu. Uwidacznia on następujące elementy członkowskie:
Parametr | Type | Opis |
---|---|---|
Color |
Color4Ub | Kolor używany do rysowania konturu. Część alfa jest ignorowana. |
PulseRateHz |
liczba zmiennoprzecinkowa | Szybkość, z jaką konspekt oscyluje na sekundę |
PulseIntensity |
liczba zmiennoprzecinkowa | Intensywność efektu impulsu konspektu. Musi zawierać się między 0,0 dla braku pulsowania i 1,0 w przypadku pełnego pulsowania. Intensywność niejawnie ustawia minimalną nieprzezroczystość konturu jako MinOpacity = 1.0 - PulseIntensity . |
MaskTexture |
Tekstura 2D | Jeśli zostanie określony, kolor konturu będzie przyciemniany przez tę teksturę. Tekstura jest próbkowana we współrzędnych przestrzeni ekranu i różnych parametrach (MaskScale , MaskRotationCenter MaskScaleToFit MaskScrollSpeed MaskOffset , , MaskRotationAngle , MaskRotationSpeed ) wpływają na rozciąganie, rotację i przewijanie tego mapowania. Ta funkcja może służyć do osiągania efektów, takich jak gradient kolorów lub kontury kreskowane. Zobacz drugi przykładowy obraz poniżej. |
Efekt zmiany parametru z żółtego color
(po lewej) na magenta (środek) i pulseIntensity
od 0 do 0,8 (po prawej).
Efekt stosowania tekstury maski do konturów: Gradienty koloru wyrównanego ekranu (po lewej) lub kreskowane kontury symulowane przy użyciu tekstury tiling z paskami (po prawej).
Przykład
Poniższy kod przedstawia przykład ustawienia parametrów konspektu za pośrednictwem interfejsu 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);
}
Wydajność
Renderowanie konspektu może mieć znaczący wpływ na wydajność renderowania. Ten wpływ różni się w zależności od relacji przestrzennej przestrzeni ekranu między wybranymi i nie zaznaczonymi obiektami dla danej ramki.