Udostępnij za pośrednictwem


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, MaskRotationCenterMaskScaleToFitMaskScrollSpeedMaskOffset, , 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.

Obiekt renderowany trzy razy z różnymi parametrami konspektu Efekt zmiany parametru z żółtego color (po lewej) na magenta (środek) i pulseIntensity od 0 do 0,8 (po prawej).

Obiekt renderowany dwa razy pokazujący różne przypadki użycia maski tekstur konspektu 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.

Dokumentacja interfejsu API

Następne kroki