Partilhar via


Gráficos de alta fidelidade com DirectX

Os desenvolvedores de aplicativos do Windows há muito tempo usam o Microsoft DirectX para fornecer gráficos 3D de alta qualidade e acelerados por hardware. Quando a tecnologia estreou em 1995, os desenvolvedores podiam 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, mesmo os PCs mais baratos incluem hardware gráfico 3D capaz.

Para aproveitar esses recursos gráficos, o Windows Vista introduziu a infraestrutura WDDM (Windows Display Driver Model) para DirectX, que permitiu que vários aplicativos e serviços compartilhassem os recursos da unidade de processamento gráfico (GPU). O Desktop Window Manager (DWM) utiliza esta tecnologia para animar a comutação de tarefas em 3D, fornecer imagens dinâmicas em miniatura de janelas de aplicações e fornecer efeitos de vidro Windows Aero para aplicações de ambiente de trabalho.

O Windows 7 coloca ainda mais recursos gráficos nas mãos dos desenvolvedores de aplicativos. Através de um novo conjunto de DirectXAPIs, os programadores do Microsoft Win32 podem tirar partido das mais recentes inovações em GPUs para adicionar gráficos, texto e imagens 2D e 3D rápidos, escaláveis e de alta qualidade às suas aplicações. Nos LCD mais recentes, os DirectXAPIs podem exibir conteúdo da área de trabalho e da janela usando profundidade de cor superior a 8 bits por componente de cor.

Com o DirectX, os desenvolvedores do 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. (Consulte O que há de novo 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.
  • Windows Imaging Component 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 tesselação, suporte limitado para streaming de textura e computação de uso geral.
  • DirectX Graphics Infrastructure (DXGI) para gerenciar dispositivos de exibição locais e remotos e recursos de GPU e fornecer interoperabilidade entre DirectX e GDI.

Direct2D

Baseado no Microsoft Direct3D 10, Direct2D oferece aos desenvolvedores Win32 APIs 2D de modo imediato, independentes de resolução, que usam o poder do hardware gráfico de última geração, mas interoperam bem com os aplicativos GDI/GDI+ e Direct3D 10 atuais. O 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 oferecer suporte a 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 do texto em documentos e na interface do usuário.
  • Renderização de texto de alta qualidade, subpixel ClearType 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 multi-formato.
  • Suporte para os recursos avançados de tipografia de fontes OpenType.
  • Suporte para o layout e renderização de texto em todos os idiomas suportados.
  • Layout e renderização compatíveis com GDI.

O sistema de fontes DirectWrite permite o uso de fontes "qualquer fonte em qualquer lugar", onde 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 suportam medição, desenho e teste de acerto de texto em vários formatos. O DirectWrite lida com texto em todos os idiomas suportados para aplicativos globais e localizados, com base na infraestrutura de idioma principal encontrada no Windows 7. O 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 de Unicode para glifo. (Consulte DirectWrite.)

Componente de criação de imagens do Windows

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

Direct3D 11

O Microsoft Direct3D 11 estende a funcionalidade do pipeline do Direct3D 10 e fornece aos jogos do Windows 7 e aplicativos 3D high-end acesso eficiente, robusto e escalável à próxima geração de GPUs e CPUs multi-core. Além da funcionalidade encontrada no Direct3D 10, o Direct3D 11 apresenta vários recursos novos.

A geometria e as superfícies de alta ordem agora podem ser testadas para suportar conteúdo escalável e dinâmico em representações de superfície de patch e subdivisão.

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

Novos sombreadores de computação de uso geral foram criados para o Direct3D 11. Ao contrário dos sombreadores existentes, eles 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 linguagem de sombreamento de alto nível (HLSL), como uma forma limitada de ligaçã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. (Consulte O que há de novo no SDK do DirectX de março de 2009.)

Melhorias no Direct3D 10

O Direct3D 10 inclui um pipeline de gráficos redesenhado 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 dos estágios de sombreador agora oferece extensões de linguagem de sombreamento de alto nível para oferecer suporte a instruções ilimitadas de sombreador, recursos de sombreador generalizados e cálculos inteiros e bitwise.

O pipeline também introduz o estágio de sombreador de geometria, que descarrega o trabalho inteiramente da CPU para a GPU. Este novo estágio permite criar geometria, transmitir os dados para a memória e renderizar a geometria sem interação com a CPU.

Várias outras melhorias são projetadas especificamente para um desempenho mais rápido. A renderização predicada executa o abate de oclusão para reduzir a quantidade de geometria que é 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. O Windows Advanced Rasterization Platform (WARP) implementa renderização de CPU escalável rápida e multi-core para Direct3D 10, permitindo a renderização gráfica completa em sistemas sem hardware gráfico. A adição de novos "Níveis de Recursos", especificamente chamados de Direct3D 10 Level 9, permitem que as APIs Direct3D 10 e Direct3D 11 direcionem hardware de classe Microsoft Direct3D 9, 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 Gráficos Direct3D 10.)

Interoperabilidade 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 desabilitassem o DWM ao executar seus aplicativos no Windows Vista para garantir um comportamento consistente. Com as melhorias do DirectX no Windows 7, um aplicativo agora pode misturar livremente DirectX e GDI sem desativar o DWM. O Windows 7 também apresenta desempenho aprimorado para cenários que exigem interoperação entre DirectX e GDI utilizando as APIs mais eficientes do Direct3D 10. (Consulte Visão geral da interoperação entre Direct2D e GDI.)