Partilhar via


Camadas de renderização de gráficos

Uma camada de renderização define um nível de capacidade e desempenho de hardware gráfico para um dispositivo que executa um aplicativo WPF.

Hardware gráfico

Os recursos do hardware gráfico que mais afetam os níveis de camada de renderização são:

  • RAM de vídeo A quantidade de memória de vídeo no hardware gráfico determina o tamanho e o número de buffers que podem ser usados para compor gráficos.

  • Pixel Shader Um sombreador de pixel é uma função de processamento gráfico que calcula os efeitos por pixel. Dependendo da resolução dos gráficos exibidos, pode haver vários milhões de pixels que precisam ser processados para cada quadro de exibição.

  • Sombreador de vértice Um sombreador de vértice é uma função de processamento gráfico que executa operações matemáticas nos dados de vértice do objeto.

  • Suporte Multitextura O suporte a multitextura refere-se à capacidade de aplicar duas ou mais texturas distintas durante uma operação de mistura em um objeto gráfico 3D. O grau de suporte multitextura é determinado pelo número de unidades multitextura no hardware gráfico.

Definições de camada de renderização

Os recursos do hardware gráfico determinam a capacidade de renderização de um aplicativo WPF. O sistema WPF define três camadas de renderização:

  • Nível de renderização 0 Sem aceleração de hardware gráfico. Todos os recursos gráficos usam renderização de software. O nível de versão do DirectX é inferior à versão 9.0.

  • Nível de renderização 1 Alguns recursos gráficos usam aceleração de hardware gráfico. O nível de versão do DirectX é maior ou igual à versão 9.0.

  • Nível de renderização 2 A maioria dos recursos gráficos usa aceleração de hardware gráfico. O nível de versão do DirectX é maior ou igual à versão 9.0.

A RenderCapability.Tier propriedade permite recuperar a camada de renderização em tempo de execução do aplicativo. Use a camada de renderização para determinar se o dispositivo suporta determinados recursos gráficos acelerados por hardware. Seu aplicativo pode então tomar caminhos de código diferentes em tempo de execução, dependendo da camada de renderização suportada pelo dispositivo.

Nível de renderização 0

Um valor de camada de renderização de 0 significa que não há aceleração de hardware gráfico disponível para o aplicativo no dispositivo. Neste nível de camada, você deve assumir que todos os gráficos serão renderizados por software sem aceleração de hardware. A funcionalidade desta camada corresponde a uma versão do DirectX inferior a 9.0.

Nível de renderização 1 e Nível de renderização 2

Observação

A partir do .NET Framework 4, a camada 1 de renderização foi redefinida para incluir apenas hardware gráfico que ofereça suporte ao DirectX 9.0 ou superior. O hardware gráfico que suporta DirectX 7 ou 8 agora é definido como camada de renderização 0.

Um valor de camada de renderização de 1 ou 2 significa que a maioria dos recursos gráficos do WPF usará aceleração de hardware se os recursos necessários do sistema estiverem disponíveis e não tiverem sido esgotados. Isso corresponde a uma versão do DirectX maior ou igual a 9.0.

A tabela abaixo mostra as diferenças nos requisitos de hardware gráfico para renderizar o nível 1 e o nível 2 de renderização.

Característica Nível 1 Nível 2
Versão do DirectX Deve ser maior ou igual a 9,0. Deve ser maior ou igual a 9,0.
RAM de vídeo Deve ser maior ou igual a 60 MB. Deve ser maior ou igual a 120 MB.
Sombreador de Pixels O nível de versão deve ser maior ou igual a 2.0. O nível de versão deve ser maior ou igual a 2.0.
Sombreador de vértice Sem exigência. O nível de versão deve ser maior ou igual a 2.0.
Unidades multitextura Sem exigência. O número de unidades deve ser igual ou superior a 4.

Os seguintes recursos e capacidades são acelerados por hardware para o nível de renderização 1 e o nível de renderização 2.

Característica Observações
Renderização 2D A maioria da renderização 2D é suportada.
Rasterização 3D A maioria da rasterização 3D é suportada.
Filtragem anisotrópica 3D O WPF tenta usar filtragem anisotrópica ao renderizar conteúdo 3D. Filtragem anisotrópica refere-se à melhoria da qualidade das imagens de texturas em superfícies distantes e inclinadas em relação à câmera.
Mapeamento 3D MIP O WPF tenta usar o mapeamento MIP ao renderizar conteúdo 3D. O mapeamento MIP melhora a qualidade da renderização de texturas quando uma textura ocupa um menor campo de visão em um Viewport3D.
Gradientes radiais Embora suportado, evite o uso de RadialGradientBrush em objetos grandes.
Cálculos de iluminação 3D O WPF executa iluminação por vértice, o que significa que uma intensidade de luz deve ser calculada em cada vértice para cada material aplicado a uma malha.
Renderização de texto A renderização de fontes subpixel usa sombreadores de pixel disponíveis no hardware gráfico.

Os seguintes recursos e capacidades são acelerados por hardware apenas para renderização da camada 2:

Característica Observações
Anti-aliasing 3D A anti-aliasing 3D é suportada apenas em sistemas operativos que suportam o Windows Display Driver Model (WDDM), tal como o Windows Vista e o Windows 7.

Os seguintes recursos e capacidades não são acelerados por hardware:

Característica Observações
Conteúdo impresso Todo o conteúdo impresso é renderizado usando o pipeline de software WPF.
Conteúdo rasterizado que usa RenderTargetBitmap Qualquer conteúdo renderizado usando o método Render de RenderTargetBitmap.
Conteúdo em mosaico que usa TileBrush Qualquer conteúdo em azulejo no qual a propriedade TileMode do TileBrush está definida como Tile.
Superfícies que excedem o tamanho máximo de textura do hardware gráfico Para a maioria do hardware gráfico, as superfícies grandes têm 2048x2048 ou 4096x4096 pixels de tamanho.
Qualquer operação cujo requisito de RAM de vídeo exceda a memória do hardware gráfico Você pode monitorar o uso da RAM de vídeo do aplicativo usando a ferramenta Perforator incluída no WPF Performance Suite no SDK do Windows.
Janelas sobrepostas As janelas em camadas permitem que os aplicativos WPF processem conteúdo para a tela em uma janela não retangular. Em sistemas operacionais que suportam WDDM (Windows Display Driver Model), como Windows Vista e Windows 7, as janelas em camadas são aceleradas por hardware. Em outros sistemas, como o Windows XP, as janelas em camadas são renderizadas por software sem aceleração de hardware.

Você pode habilitar janelas em camadas no WPF definindo as seguintes Window propriedades:

- WindowStyle = None
- AllowsTransparency = true
- Background = Transparent

Outros recursos

Os recursos a seguir podem ajudá-lo a analisar as características de desempenho do seu aplicativo WPF.

Configurações do Registro de Renderização de Gráficos

O WPF fornece quatro configurações do Registro para controlar a renderização do WPF:

Configurações Descrição
Desativar opção de aceleração de hardware Especifica se a aceleração de hardware deve ser habilitada.
Valor máximo de várias amostras Especifica o grau de multisampling para antialiasing de conteúdo 3D.
Definição de data exigida para o driver de vídeo Especifica se o sistema desativa a aceleração de hardware para drivers lançados antes de novembro de 2004.
Utilizar a opção de rasterização de referência Especifica se o WPF deve usar o rasterizador de referência.

Essas configurações podem ser acessadas por qualquer utilitário de configuração externo que saiba como fazer referência às configurações do registro WPF. Essas configurações também podem ser criadas ou modificadas acessando os valores diretamente usando o Editor do Registro do Windows. Para obter mais informações, consulte Configurações do Registro de renderização de gráficos.

Ferramentas de criação de perfil de desempenho do WPF

O WPF fornece um conjunto de ferramentas de criação de perfil de desempenho que permitem analisar o comportamento em tempo de execução do seu aplicativo e determinar os tipos de otimizações de desempenho que você pode aplicar. A tabela a seguir lista as ferramentas de criação de perfil de desempenho incluídas na ferramenta SDK do Windows, WPF Performance Suite:

Ferramenta Descrição
Perfurador Use para analisar o comportamento de renderização.
Perfilador Visual Use para criar o perfil do uso de serviços WPF, como layout e manipulação de eventos, por elementos na árvore visual.

O WPF Performance Suite fornece uma visão gráfica rica dos dados de desempenho. Para obter mais informações sobre as ferramentas de desempenho do WPF, consulte WPF Performance Suite.

Ferramenta de diagnóstico do DirectX

A Ferramenta de Diagnóstico do DirectX, Dxdiag.exe, foi concebida para o ajudar a resolver problemas relacionados com o DirectX. A pasta de instalação padrão para a Ferramenta de Diagnóstico do DirectX é:

~\Windows\System32

Quando executa a Ferramenta de Diagnóstico do DirectX, a janela principal contém um conjunto de separadores que lhe permitem apresentar e diagnosticar informações relacionadas com o DirectX. Por exemplo, a guia Sistema fornece informações do sistema sobre o computador e especifica a versão do DirectX instalada no computador.

Captura de tela: Ferramenta de diagnóstico do DirectX
Janela principal da Ferramenta de Diagnóstico do DirectX

Ver também