Compartilhar via


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.

Um objeto renderizado três vezes com parâmetros de contorno diferentes O efeito de alterar o parâmetro color de amarelo (à esquerda) para magenta (centro) e pulseIntensity de 0 para 0,8 (à direita).

Um objeto renderizado duas vezes, mostrando casos de uso distintos para máscaras de textura de contorno 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.

Documentação da API

Próximas etapas