Renderização do shell
O estado do shell do componente de substituição do estado hierárquico é um efeito de transparência. Ao contrário da renderização ver-através, somente a camada mais à frente dos objetos é visível, semelhante à renderização opaca. Além disso, a aparência normal dos objetos pode ser alterada quando renderizados como shells. O efeito destina-se a casos de uso em que o usuário deve ser guiado visualmente para fora de partes não importantes, enquanto ainda mantém a consciência espacial de toda a cena.
Você pode configurar a aparência dos objetos renderizados por shell por meio do estado global ShellRenderingSettings
. Todos os objetos que usam a renderização do shell usarão a mesma configuração. Não há parâmetros por objeto.
Observação
O efeito de renderização do shell não pode ser aplicado a nuvens de pontos.
Parâmetros ShellRenderingSettings
A classe ShellRenderingSettings
contém as configurações relacionadas às propriedades globais de renderização do shell:
Parâmetro | Tipo | Descrição |
---|---|---|
Desaturation |
float | A quantidade de desaturação a ser aplicada à cor normal do objeto final, no intervalo de 0 (sem desaturação) a 1 (desaturação completa) |
Opacity |
float | A opacidade dos objetos renderizados em shell, no intervalo de 0 (invisível) a 1 (totalmente opaco) |
Consulte também a tabela a seguir para ver exemplos dos efeitos dos parâmetros quando aplicados a uma cena inteira:
0 | 0.25 | 0.5 | 0,75 | 1.0 | |
---|---|---|---|---|---|
Desaturação | ![]() |
![]() |
![]() |
![]() |
![]() |
Opacidade | ![]() |
![]() |
![]() |
![]() |
![]() |
O efeito do Shell é aplicado na cor opaca final que a cena seria renderizada com o contrário. Isso inclui a substituição do estado hierárquico da tonalidade.
Exemplo
O código a seguir mostra um exemplo de uso do estado ShellRenderingSettings
por meio da API:
void SetShellSettings(RenderingSession session)
{
ShellRenderingSettings shellRenderingSettings = session.Connection.ShellRenderingSettings;
shellRenderingSettings.Desaturation = 0.5f;
shellRenderingSettings.Opacity = 0.1f;
}
void SetShellSettings(ApiHandle<RenderingSession> session)
{
ApiHandle<ShellRenderingSettings> shellRenderingSettings = session->Connection()->GetShellRenderingSettings();
shellRenderingSettings->SetDesaturation(0.5f);
shellRenderingSettings->SetOpacity(0.1f);
}
Desempenho
O recurso de renderização do shell traz uma pequena sobrecarga constante em comparação com a renderização opaca padrão. É significativamente mais rápido do que usar materiais transparentes em objetos ou a renderização ver-através. O desempenho pode degradar mais significativamente se apenas partes da cena forem alternadas para a renderização do Shell. Essa degradação pode ocorrer devido a objetos adicionais revelados que exigem renderização. Nesse aspecto, o desempenho se comporta de forma semelhante ao recurso de Planos de corte.