Vykreslování obrysů
Vybrané objekty lze vizuálně zvýraznit přidáním vykreslování osnovy prostřednictvím komponenty přepsání hierarchického stavu. Tato kapitola vysvětluje, jak se globální parametry vykreslování osnovy mění prostřednictvím klientského rozhraní API.
Vlastnosti osnovy jsou globální nastavení. Všechny objekty, které používají vykreslování obrysu, používají stejné nastavení – není možné použít barvu obrysu jednotlivých objektů.
Poznámka:
Efekt vykreslení osnovy se nedá použít pro bodové mraky.
Parametry pro OutlineSettings
Třída OutlineSettings
obsahuje nastavení související s vlastnostmi globální osnovy. Zveřejňuje následující členy:
Parametr | Typ | Popis |
---|---|---|
Color |
Color4Ub | Barva použitá pro kreslení obrysu. Alfa část se ignoruje. |
PulseRateHz |
float (číslo s plovoucí řádovou čárkou) | Rychlost, s jakou obrys osciluje za sekundu |
PulseIntensity |
float (číslo s plovoucí řádovou čárkou) | Intenzita obrysového impulsního efektu. Musí být v rozmezí 0,0 pro žádné pulzování a 1,0 pro plnou pulzaci. Intenzita implicitně nastaví minimální neprůhlednost osnovy jako MinOpacity = 1.0 - PulseIntensity . |
MaskTexture |
2D textura | Pokud je zadána, barva obrysu bude vybarvena touto texturou. Textura se vzorkuje v souřadnicích prostoru obrazovky a různých parametrech (MaskScale , MaskScaleToFit , MaskOffset , MaskScrollSpeed MaskRotationCenter , , MaskRotationAngle , ) MaskRotationSpeed ovlivňují roztažení, otočení a posouvání tohoto mapování. Tuto funkci lze použít k dosažení efektů, jako je barevný přechod nebo přerušované obrysy. Viz druhý příklad obrázku níže. |
Vliv změny parametru
color
ze žlutého (levého) na purpurový (střed) a pulseIntensity
od 0 do 0,8 (vpravo).
Efekt použití textury masky na obrysy: Barevné přechody zarovnané na obrazovce (vlevo) nebo přerušované obrysy simulované pomocí textury provazování s pruhy (vpravo).
Příklad
Následující kód ukazuje příklad nastavení parametrů osnovy prostřednictvím rozhraní 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);
}
Výkon
Vykreslování osnovy může mít významný vliv na výkon vykreslování. Tento dopad se liší v závislosti na prostorovém prostoru obrazovky mezi vybranými a nevybranými objekty pro daný rámec.