Níveis de Renderização Gráfica

Um nível de renderização define um nível de capacidade e desempenho gráfico de hardware para um dispositivo que roda uma aplicação WPF.

Este tópico contém as seguintes seções.

  • Hardware Gráfico
  • Definições de Níveis de Renderização
  • Outros recursos
  • Tópicos relacionados

Hardware Gráfico

As características do hardware gráfico que mais impactam os níveis de renderização são:

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

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

  • Vertex Shader É uma função de processamento gráfico que realiza operações matemáticas nos dados de vértice do objeto.

  • Multitexture Support Refere-se à capacidade de aplicar duas ou mais texturas distintas durante uma operação de blending (mesclagem) em um objeto gráfico 3D. O grau de suporte multitextura é determinado pelo número de unidades de multitextura no hardware g?afico.

As características de pixel shader, vertex shader e multitextura são utilizadas para definir níveis específicos de versão DirectX que, por sua vez, são utilizados para definir os diferentes níveis de renderização em WPF.

Definições de Níveis de Renderização

As características do hardware gráfico determinam a capacidade de renderização da aplicação WPF. O sistema WPF define três níveis de renderização:

  • Nível de Renderização 0 Nenhuma aceleração por hardware gráfico. O nível de versão DirectX é menor que versão 7.0.

  • Nível de Renderização 1 Aceleração parcial por hardware gráfico. O nível de versão DirectX é maior ou igual a 7.0, e menor que versão 9.0.

  • Nível de Renderização 2 A maioria das características gráficas utiliza aceleração por hardware. O nível de versão DirectX é maior ou igual a 9.0.

A propriedade Tier permite que você recupere o nível de renderização em tempo de execução, o que permite que os desenvolvedores determinem se o dispositivo pode suportar certas características aceleradas por hardware. Sua aplicação pode então tomar diferentes caminhos em tempo de execução dependendo do nível de renderização suportado pelo dispositivo.

Nível de Renderização 0

Um nível de renderização 0 significa que não há aceleração gráfica por hardware disponível para a aplicação no dispositivo. Nesse nível, os desenvolvedores devem assumir que todos os gráficos serão renderizados por software, sem aceleração gráfica. A funcionalidade desse nível corresponde a uma versão DirectX menor que 7.0.

Nível de Renderização 1

Um nível de renderização 1 significa que há aceleração gráfica parcial por hardware disponível para a aplicação na placa de vídeo. Isso corresponde a um nível de versão DirectX maior ou igual a 7.0, e menor que versão 9.0.

As seguintes características e capacidades são aceleradas por hardware para o nível de renderização 1:

Recurso

Anotações

Renderização 2D

A maior parte de renderização 2D é suportada.

Rasterização 3D

A maior parte de renderização 3D é suportada. Entretanto, WPF vai utilizar software para calcular intensidades de luz em vértices, que é então passada ao hardware como uma cor de vértice. Isso significa que iluminação é bem mais lenta no nível 1.

Filtro anisotrópico 3D

Quando o nível de renderização >= 1, WPF tenta utilizar filtro anisotrópico quando renderiza conteúdo 3D. Filtro anisotrópico se refere a melhorar a qualidade de imagem de texturas em superfícies distantes e profundamente anguladas com respeito à câmera.

Mapeamento Mip 3D

Quando o renderização hierarquizar > = 1,WPF tenta usar o mapeamento de mip ao renderizar conteúdo 3D. Mapeamento Mip melhora a qualidade de renderização de textura quando uma textura ocupa um campo de visão menor em um Viewport3D.

As seguintes características e capacidades não são aceleradas por hardware para o nível de renderização 1:

Recurso

Anotações

Efeitos de bitmap

Utilizar um efeito de bitmap num visual força que o visual seja renderizado sem aceleração gráfica.

Conteúdo impresso

Todo conteúdo impresso é renderizado utilizando o pipeline de software do WPF.

Conteúdo rasterizado utilizando um objeto RenderTargetBitmap.

Todo conteúdo renderizado utilizando o método Render do RenderTargetBitmap.

Conteúdo ladrilhado que utiliza TileBrush.

Qualquer conteúdo ladrilhado no qual a propriedade TileMode do TileBrush é definida como Tile.

Superfícies que excedam o tamanho máximo de textura do hardware gráfico.

A maioria das placas de vídeo não suportam superfícies maiores que 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 a utilização de RAM de vídeo de uma aplicação utilizando a ferramenta Desempenho perfil ferramentas para WPF incluída com o Windows SDK.

Janelas em camadas

Permitir que janelas em camadasWPF aplicativos para processar conteúdo na tela em uma janela não retangular. Em Windows Vista, as janelas em camadas são acelerada por hardware. Em outros sistemas, como o Windows XP, janelas em camadas são renderizadas por software sem aceleração de hardware.

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

Gradientes radiais

Qualquer uso de RadialGradientBrush.

Cálculos de iluminação 3D

WPF realiza iluminação por vértice, o que significa que uma intensidade de luz precisa ser calculada a cada vértice para cada material aplicado a uma malha. No nível 1, os cálculos são realizados por software. No nível 2, os cálculos são realizados por hardware.

Renderização de texto

Renderização de texto sub-pixel utiliza os pixel shaders disponíveis no hardware gráfico.

Suavização 3D

Qualquer uso de suavização 3D

As seguintes características de hardware gráfico definem o nível 1 de renderização:

Recurso

Anotações

Versão DirectX

Deve ser maior ou igual a 7.0 e menor que 9.0.

RAM de Vídeo

Deve ser maior ou igual a 30MB.

Unidades multitextura

O número de unidades deve ser maior ou igual a 2.

A tabela a seguir lista placas gráficas comuns que suportam nível 1 de renderização:

Fabricante

Modelo

ATI

Radeon modelos: 256, 7000, 7500, 8500, 9000, 9100, 9200 e 9250

Intel

Intel Extreme Graphics modelos: 845 G, 845GE, 845GL e 845GV

Intel Extreme Graphics II modelos: 852GME, 855GM, 855GME, 865 G e 865GV

NVidia

GeForce 256

GeForce2 modelos: GTS, MX, MX100, MX200, MX400, Pro, TI e Ultra

GeForce3 modelos: Ti200 e Ti500

GeForce4 modelos: MX420, MX440, MX460, MX4000, Ti4200, Ti4400, Ti4600 e Ti4800

Nível de Renderização 2

Um nível de renderização 2 significa que a maioria das características gráficas do WPF devem utilizar a aceleração gráfica desde que os recursos de sistema necessários não tenham sido exauridos. Isso corresponde a um nível de versão DirectX maior ou igual a 9.0.

As seguintes características e capacidades são aceleradas por hardware para o nível de renderização 2:

Recurso

Anotações

Características do nível 1

Inclui todas as características do nível 1.

Gradientes radiais

Embora suportados, evite o uso de RadialGradientBrush em objetos grandes.

Cálculos de iluminação 3D

WPF realiza iluminação por vértice, o que significa que uma intensidade de luz precisa ser calculada a cada vértice para cada material aplicado a uma malha. No nível 1, os cálculos são realizados por software. No nível 2, os cálculos são realizados por hardware.

Renderização de texto

Renderização de texto sub-pixel utiliza os pixel shaders disponíveis no hardware gráfico.

Suavização 3D

Suavização 3D só é suportado no Windows Vista.

As seguintes características e capacidades não são aceleradas por hardware para o nível de renderização 2:

Recurso

Anotações

Efeitos de bitmap

Utilizar um efeito de bitmap num visual força que o visual seja renderizado sem aceleração gráfica.

Conteúdo impresso

Todo conteúdo impresso é renderizado utilizando o pipeline de software do WPF.

Conteúdo rasterizado que utiliza RenderTargetBitmap.

Todo conteúdo renderizado utilizando o método Render do RenderTargetBitmap.

Conteúdo ladrilhado que utiliza TileBrush.

Qualquer conteúdo ladrilhado no qual a propriedade TileMode do TileBrush é definida como Tile.

Superfícies que excedam o tamanho máximo de textura do hardware gráfico.

Para a maioria dos hardwares gráficos, superfícies grandes tem 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 a utilização de RAM de vídeo de uma aplicação utilizando a ferramenta Desempenho perfil ferramentas para WPF incluída com o Windows SDK.

Janelas em camadas

Janelas em camadas permitem que aplicações do WPF renderizem conteúdo na tela em uma janela não retangular. Em Windows Vista, janelas em camadas são aceleradas por hardware. Em outros sistemas, como o Windows XP, janelas em camadas são renderizadas por software sem aceleração de hardware.

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

As seguintes características de hardware gráfico definem o nível 2 de renderização:

Recurso

Anotações

Versão DirectX

Deve ser maior ou igual a 9.0.

RAM de Vídeo

Deve ser maior ou igual a 120 MB.

Pixel shader

Nível da versão deve ser maior ou igual a 2.0.

Vertex shader

Nível da versão deve ser maior ou igual a 2.0.

Unidades multitextura

O número de unidades deve ser maior ou igual a 4.

A tabela a seguir lista placas gráficas comuns que suportam nível 2 de renderização:

Fabricante

Modelo

ATI

Radeon modelos: 9550, 9600, 9800 e X-series

Intel

Intel GMA900 modelos: 915 G

Intel GMA950 modelos: 945 G

NVidia

Geforce FX-series, 6xxx-series, e 7xxx-series

Outros recursos

Os seguintes recursos podem ajudá-lo a analisar as características de desempenho da sua aplicação WPF.

Configurações do Registro para Renderização Gráfica

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

Configuração

Descrição

Opção Disable Hardware Acceleration

Especifica se a aceleração por hardware deve ser habilitada.

Valor Maximum Multisample

Especifica o grau de várias exemplos para conteúdo de suavização 3-D.

Configuração Required Video Driver Date

Especifica se o sistema desabilita aceleração gráfica para drivers lançados antes de novembro de 2004.

Opção Use Reference Rasterizer

Especifica se o WPF deve utilizar o rasterizador de referência.

Essas configurações podem ser acessadas de qualquer utilitário externo de configuração que saiba como referenciar as configurações do registro do WPF. Essas configurações também podem ser criadas ou modificadas acessando os valores diretamente utilizando o Editor de Registro do Windows. Para obter mais informações, consulte Configurações do Registro para Renderização Gráfica.

Ferramentas para Traçar Perfil de Desempenho do WPF

WPF fornece um conjunto de ferramentas para traçar o perfil de desempenho que lhe permitem analisar o comportamento em tempo de execução da sua aplicação e determinar que tipos de otimização de desempenho você pode aplicar. A tabela a seguir lista as cinco ferramentas de perfilização de desempenho incluídas na ferrametna Windows SDK, WPFPerf:

Ferramenta

Descrição

Event Trace

Utilize para analisar eventos e gerar arquivos de log de eventos.

Perforator

Utilize para analisar comportamento de renderização.

Trace Viewer

Grave, exiba e percorra os arquivos de log do Event Tracing for Windows (ETW) num formato de interface de usuário do WPF.

Visual Profiler

Utilize para perfilar o uso de serviços do WPF, tais como layout e manipulação de eventos, por elementos na árvore visual.

Working Set Viewer

Utilize para analisar as características do conjunto de trabalho da sua aplicação.

O conjunto de ferramentas Visual Profiler fornece uma visão gráfica e rica de dados de desempenho. Nessa tela, a seção CPU Usage do Visual Profiler lhe dá um detalhamento preciso do uso de um objeto de serviços WPF, tais como renderização e layout.

Saída da exibição do Visual Profiler

Saída da exibição do Visual Profiler

Para obter mais informações sobre ferramentas de desempenho do WPF, consulte Desempenho perfil ferramentas para WPF.

DirectX Diagnostic Tool

A Diagnostic Tool do DirectX, Dxdiag.exe, é projetada para ajudá-lo a resolver problemas relacionados ao DirectX. A pasta de instalação default da Diagnostic Tool do DirectX é:

~\Windows\System32

Quando você roda a Diagnostic Tool do DirectX, a janela principal contém um conjunto de guias que lhe permitem exibir e diagnosticar informações relacionadas ao DirectX. Por exemplo, a guia System fornece informações sobre seu computador e especifica a versão do DirectX que está instalada no seu computador.

Janela principal da DirectX Diagnostic Tool

Screenhot: DirectX Diagnostic Tool

Consulte também

Conceitos

Optimizing WPF Application Performance

Desempenho perfil ferramentas para WPF

Configurações do Registro para Renderização Gráfica

Dicas e truques de animação

Referência

RenderCapability

RenderOptions