Composição de shell
O estado do shell do componente Substituição de estado hierárquico é um efeito de transparência. Em contraste com a renderização transparente , apenas a camada mais frontal de 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 longe de partes não importantes, mantendo a consciência espacial para toda a cena.
Você pode configurar a aparência de objetos renderizados em shell por meio do ShellRenderingSettings
estado global. Todos os objetos que usam renderização de shell usarão a mesma configuração. Não há parâmetros por objeto.
Nota
O efeito de renderização do shell não pode ser aplicado a nuvens de pontos.
Parâmetros ShellRenderingSettings
Class ShellRenderingSettings
contém as configurações relacionadas às propriedades de renderização de shell global:
Parâmetro | Tipo | Descrição |
---|---|---|
Desaturation |
flutuante | A quantidade de dessaturação a aplicar à cor habitual do objeto final, no intervalo 0 (sem dessaturação) a 1 (dessaturação completa) |
Opacity |
flutuante | A opacidade dos objetos renderizados pelo shell, no intervalo de 0 (invisível) a 1 (totalmente opaco) |
Consulte também a tabela a seguir para obter exemplos dos efeitos dos parâmetros quando aplicados a uma cena inteira:
0 | 0.25 | 0.5 | 0,75 | 1.0 | |
---|---|---|---|---|---|
Dessaturação | |||||
Opacidade |
O efeito shell é aplicado na cor opaca final com a qual a cena seria renderizada. Isso inclui a substituição do estado hierárquico de tonalidade.
Exemplo
O código a seguir mostra um exemplo de uso do ShellRenderingSettings
estado 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 de shell carrega 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 renderização transparente . O desempenho pode se degradar mais fortemente se apenas partes da cena forem alternadas para renderização de shell. Esta degradação pode ocorrer devido a objetos revelados adicionalmente que requerem renderização. Nesse sentido, o desempenho se comporta de forma semelhante ao recurso de planos Cut.
Próximos passos
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários