Renderização de estrutura de tópicos
Os objetos selecionados podem ser realçados visualmente adicionando renderização de contorno através do Componente de substituição de estado hierárquico. Este capítulo explica como os parâmetros globais para renderização de contornos são alterados através da API do cliente.
As propriedades de contorno são uma configuração global. Todos os objetos que usam a renderização de contorno usam a mesma configuração. Não é possível usar uma cor de contorno para cada objeto.
Observação
O efeito de renderização da contorno não pode ser aplicado a nuvens de pontos.
Parâmetros para OutlineSettings
A classe OutlineSettings
contém as configurações relacionadas às propriedades globais de contorno. Ela apresenta os seguintes membros:
Parâmetro | Tipo | Descrição |
---|---|---|
Color |
Color4Ub | A cor usada para desenhar o contorno. A parte alfa é ignorada. |
PulseRateHz |
float | A taxa de oscilação por segundo do contorno |
PulseIntensity |
float | A intensidade do efeito de pulso do contorno. Deve estar entre 0,0 para nenhuma pulsação e 1,0 para pulsação total. A intensidade define implicitamente a opacidade mínima do contorno como MinOpacity = 1.0 - PulseIntensity . |
MaskTexture |
Textura 2D | Se isso for especificado, a cor do contorno terá a tonalidade criada por essa textura. Uma amostragem da textura é feita em coordenadas de espaço na tela e vários parâmetros (MaskScale , MaskScaleToFit , MaskOffset , MaskScrollSpeed , MaskRotationCenter , MaskRotationAngle e MaskRotationSpeed ) afetam o alongamento, a rotação e a rolagem desse mapeamento. Esse recurso pode ser usado para obter efeitos como um gradiente de cor ou um contorno tracejado. Veja a segunda imagem de exemplo abaixo. |
O efeito de alterar o parâmetro color
de amarelo (à esquerda) para magenta (centro) e pulseIntensity
de 0 para 0,8 (à direita).
O efeito de aplicar uma textura de máscara aos contornos: gradientes de cores alinhados à tela (à esquerda) ou contornos tracejados simulados por meio de uma textura de bloco com listras (à direita).
Exemplo
O código a seguir mostra um exemplo de configuração de parâmetros de contorno através da 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);
}
Desempenho
A renderização do contorno pode ter um impacto significativo no desempenho da renderização. Esse impacto varia conforme a relação espacial de espaço na tela entre objetos selecionados e não selecionados para um determinado quadro.