Compartilhar via


Gráficos de alta fidelidade com DirectX

Os desenvolvedores de aplicativos do Windows há muito usam o Microsoft DirectX para fornecer gráficos 3D de alta qualidade, acelerados por hardware. Quando a tecnologia estreou em 1995, os desenvolvedores poderiam fornecer gráficos 3D de alta qualidade para jogos e aplicativos de engenharia para jogadores e profissionais dispostos a pagar extra por uma placa gráfica 3D. Agora, até mesmo os computadores mais baratos incluem hardware 3D-graphics compatível.

Para aproveitar esses recursos gráficos, o Windows Vista introduziu a infraestrutura WDDM (Modelo de Driver de Vídeo) do Windows para DirectX que permitiu que vários aplicativos e serviços compartilhassem os recursos da GPU (unidade de processamento gráfico). O DWM (Gerenciador de Janelas da Área de Trabalho) usa essa tecnologia para animar a troca de tarefas em 3D, fornecer imagens dinâmicas em miniatura de janelas de aplicativos e fornecer efeitos de vidro do Windows Aero para aplicativos da área de trabalho.

O Windows 7 coloca ainda mais funcionalidades gráficas nas mãos dos desenvolvedores de aplicativos. Por meio de um novo conjunto de DirectXAPIs, os desenvolvedores do Microsoft Win32 podem aproveitar as inovações mais recentes em GPUs para adicionar elementos gráficos, texto e imagens rápidos, escalonáveis, de alta qualidade, 2D e 3D aos seus aplicativos. Nas telas LCD mais recentes, os DirectXAPIs podem exibir o conteúdo da área de trabalho e da janela usando profundidade de cor maior que 8 bits por componente de cor.

Com o DirectX, os desenvolvedores win32 também podem usar o paralelismo da GPU para computação de uso geral, como processamento de imagem, e podem renderizar para hardware DirectX 10, hardware DirectX 9, CPU ou para um computador Windows remoto. Essas tecnologias foram projetadas para interoperar com o Windows Graphics Device Interface (GDI) e o Windows GDI+, garantindo que os desenvolvedores possam preservar facilmente seus investimentos existentes no código Win32. (Confira Novidades no SDK do DirectX de março de 2009.)

Esses recursos gráficos aprimorados são fornecidos pelas seguintes APIs baseadas em COM:

  • Direct2D para desenhar gráficos 2D.
  • DirectWrite para organizar e renderizar texto.
  • Componente de Imagem do Windows para processamento e exibição de imagens.
  • Direct3D 10 para desenhar gráficos 3D.
  • Direct3D 11 para desenhar gráficos 3D e fornecer acesso a tecnologias de GPU de última geração, como mosaico, suporte limitado para streaming de textura e computação de uso geral.
  • DXGI (DirectX Graphics Infrastructure) para gerenciar dispositivos de exibição local e remoto e recursos de GPU e fornecer interoperabilidade entre DirectX e GDI.

Direct2D

Criado no Microsoft Direct3D 10, Direct2D oferece aos desenvolvedores win32 APIs 2D de modo imediato, independentes de resolução e que usam o poder do hardware gráfico de última geração, mas interoperam bem com os aplicativos GDI/GDI+ atuais e aplicativos Direct3D 10. Direct2D fornece renderização 2D de alta qualidade com desempenho superior ao GDI e GDI+. Ele fornece aos desenvolvedores do Win32 um controle mais fino sobre os recursos e seu gerenciamento. (Consulte Direct2D.)

DirectWrite

Muitos dos aplicativos atuais precisam dar suporte à renderização de texto de alta qualidade, fontes de estrutura de tópicos independentes de resolução e suporte completo a texto e layout Unicode. DirectWrite, um novo componente DirectX, fornece estes recursos e muito mais:

  • Um sistema de layout de texto independente do dispositivo que melhora a legibilidade de texto em documentos e na interface do usuário.
  • Renderização de texto ClearType de alta qualidade, sub pixel que pode usar GDI, Direct2D ou tecnologia de renderização específica do aplicativo.
  • Texto acelerado por hardware, quando usado com Direct2D.
  • Suporte para texto de vários formatos.
  • Suporte para os recursos avançados de tipografia de fontes OpenType .
  • Suporte para layout e renderização de texto em todos os idiomas com suporte.
  • Layout e renderização compatíveis com GDI.

O sistema de fontes DirectWrite permite o uso de fontes "qualquer fonte em qualquer lugar", em que os usuários não precisam executar uma etapa de instalação separada apenas para usar uma fonte e uma hierarquia estrutural aprimorada de agrupamento de fontes para ajudar na descoberta manual ou programática de fontes. As APIs dão suporte à medição, desenho e teste de clique de texto de vários formatos. DirectWrite lida com texto em todos os idiomas com suporte para aplicativos globais e localizados, com base na infraestrutura de idioma principal encontrada no Windows 7. DirectWrite também fornece APIs de renderização de glifo de baixo nível para desenvolvedores que desejam executar seu próprio layout e processamento Unicode para glifo. (Consulte DirectWrite.)

Windows Imaging Component

No Windows Vista, o Componente de Imagem do Windows introduziu uma estrutura extensível para trabalhar com imagens e metadados de imagem. Os formatos de imagem compatíveis com o Componente de Imagem do Windows incluem JPEG, PNG e TIFF, e os formatos de metadados com suporte incluem XMP e EXIF. Com o Windows 7, o Componente de Imagens do Windows amplia sua conformidade de padrões fornecendo suporte para decodificação progressiva de imagens, recursos PNG expandidos, metadados GIF e metadados que abrangem segmentos APPn . (Confira Novidades do WIC no Windows 7.)

Direct3D 11

O Microsoft Direct3D 11 estende a funcionalidade do pipeline do Direct3D 10 e fornece jogos do Windows 7 e aplicativos 3D de alto nível com acesso eficiente, robusto e escalonável à próxima geração de GPUs e CPUs de vários núcleos. Além da funcionalidade encontrada no Direct3D 10, o Direct3D 11 apresenta vários novos recursos.

As superfícies de geometria e de alta ordem agora podem ser mosaicadas para dar suporte a conteúdo escalonável e dinâmico em representações de superfície de patch e subdivisão.

Para fazer um bom uso do poder de processamento paralelo disponível de vários núcleos de CPU, o multithreading aumenta o número de chamadas de renderização potenciais por quadro distribuindo o aplicativo, o runtime e as chamadas de driver entre vários núcleos. Além disso, a criação e o gerenciamento de recursos foram otimizados para uso multithread, permitindo um gerenciamento de textura dinâmica mais eficiente para streaming.

Novos sombreadores de computação de uso geral foram criados para o Direct3D 11. Ao contrário dos sombreadores existentes, essas são extensões para o pipeline programável que permitem que seu aplicativo faça mais trabalho completamente na GPU, independentemente da CPU. DrawAuto, que foi introduzido no Direct3D 10, foi estendido para interagir com um sombreador de computação.

Várias melhorias foram feitas na HLSL (linguagem de sombreamento de alto nível), como uma forma limitada de vinculação dinâmica em sombreadores para melhorar a complexidade da especialização e construções de programação orientada a objetos, como classes e interfaces. (Confira Novidades no SDK do DirectX de março de 2009.)

Melhorias do Direct3D 10

O Direct3D 10 inclui um pipeline de gráficos reprojetado com estágios de sombreador programáveis e objetos de estado imutáveis para inicializar os estágios de função fixa. Os objetos de estado simplificam o pipeline e melhoram o desempenho minimizando o número de alterações de estado necessárias. A programação de estágios de sombreador agora oferece extensões de linguagem de sombreamento de alto nível para dar suporte a instruções ilimitadas de sombreador, recursos de sombreador generalizados e cálculos inteiros e bit a bit.

O pipeline também apresenta o estágio do sombreador de geometria, que descarrega o trabalho inteiramente da CPU para a GPU. Esse novo estágio permite que você crie geometria, transmita os dados para a memória e renderize a geometria sem interação com a CPU.

Várias outras melhorias foram projetadas especificamente para um desempenho mais rápido. A renderização predefinida executa o abate de oclusão para reduzir a quantidade de geometria renderizada. As APIs de instanciação podem reduzir drasticamente a quantidade de geometria que precisa ser transferida para a GPU desenhando várias instâncias de objetos semelhantes. As matrizes de textura permitem que a GPU faça a troca de textura sem intervenção da CPU.

Várias adições foram feitas ao Direct3D 10 e ao Direct3D 11 para estender a gama de configurações que podem ser direcionadas com essas APIs. A WARP (Plataforma Avançada de Rasterização do Windows) implementa renderização rápida e escalonável de CPU de vários núcleos para Direct3D 10, permitindo renderização de elementos gráficos completos em sistemas sem hardware gráfico. A adição de novos "Níveis de Recursos", especificamente chamados de Direct3D 10 Nível 9, permite que os Direct3D 10 e Direct3D 11APIs conduzam o hardware de 9 classes do Microsoft Direct3D, expandindo o número de configurações que um aplicativo Direct3D 10 ou Direct3D 11 pode direcionar para quase todos os sistemas de computador no mercado. (Consulte Elementos gráficos do Direct3D 10.)

Interoperabilidade do DirectX/GDI

No Windows Vista, o comportamento de um aplicativo que usa DirectX e GDI para renderizar em uma superfície compartilhada é diferente dependendo se o DWM está ativado ou desativado. Além disso, quando o DWM está ativado, os aplicativos que usam DirectX e GDI se comportam de forma diferente no Windows Vista do que no Windows XP. Isso fez com que muitos ISVs desabilitem o DWM ao executar seus aplicativos no Windows Vista para garantir um comportamento consistente. Com as melhorias no DirectX no Windows 7, um aplicativo agora pode misturar livremente DirectX e GDI sem desabilitar o DWM. O Windows 7 também apresenta melhor desempenho para cenários que exigem interoperação entre DirectX e GDI utilizando as APIs mais eficientes do Direct3D 10. (Confira Direct2D e Visão geral da interoperação GDI.)