segunda-feira, 16 de maio de 2016

DirectX: Versões e modelos de placas de vídeo compatíveis

O DirectX é uma interface de programação que permite que os programas (como jogos) se comuniquem com o hardware do computador (como a placa de vídeo). Existem várias versões do DirectX disponíveis e explicaremos neste tutorial quais são as principais diferenças entre elas.




Versão do DirectX
Número da versão
Sistema Operacional
DirectX 1.0
4.02.0095
DirectX 2.0 - 2.0a
4.03.00.1096
Windows 95 OSR2 e NT 4.0
DirectX 3.0 - 3.0a
4.04.0068-69
Windows NT 4.0 SP3
DirectX 4.0
Nunca lançado
DirectX 5.0
4.05.00.0155
DirectX 5.0
4.05.01.1721 - 1998
Windows 98
DirectX 6.0
4.06.02.0436
Windows 98 SE
DirectX 7.0
4.07.00.0700
Windows 2000 e ME
DirectX 7.0a
4.07.00.0716
DirectX 8.0
4.08.00.0400
DirectX 8.1
4.08.01.0810 e 4.08.01.0881
Windows XP e Windows Server 2003
DirectX 9.0
4.09.0000.0900
DirectX 9.0a
4.09.0000.0901
DirectX 9.0b
4.09.0000.0902
DirectX 9.0c
4.09.0000.0904
Windows XP SP2 e Windows Server 2003 SP1
DirectX 10
6.00.6000.16386
Windows Vista
DirectX 10.1
6.00.6001.18000
Windows Vista SP1 e Windows Server 2008
DirectX 10.1
6.00.6002.18005
Windows Vista SP2 e Windows Server 2008 SP2
DirectX 11
6.01.7600.16385
Windows 7 e Windows Server 2008 R2
DirectX 11
6.00.6002.18107
Windows Vista SP2 e Windows Server 2008 SP1
DirectX 11.1
6.02.9200.16384
Windows 8, Windows Server 2012 e Windows RT
DirectX 11.2
6.03.9600.16384
Windows 8.1, Windows Server 2012 R2 e Windows RT
DirectX 12
10.00.10240.16384
Windows 10

Características

O DirectX 6 trouxe como principal novidade o recurso de mapeamento de relevo mapeado pelo ambiente (“environment-mapped bump mapping”). Com esse recurso, é possível criar imperfeições na superfície do objeto 3D mais facilmente, tornando-o mais realista.

O DirectX 7.0 suporta mapeamento de ambiente, possibilitando que os usuários criem efeitos visuais semelhantes ao reais como reflexos na água ou luz atravessando o vidro de uma janela. A API também suporta características menores como stereo goggles. Além disso, aplicações utilizando a API DirectX 7.0 rodam cerca de 20% mais rápido do que as aplicações que utilizam a versão 6.1, melhorando a performance do game de maneira geral.

Efeitos de áudio também foram melhorados com novos software algoritmos para som em 3-D, garantindo maior flexibilidade para o gerenciamento de funcionalidade de mixagem do hardware. A DirectX 7.0 oferece aceleração do hardware para API DirectMusic® suportando placas de som e permitindo aos usuários criar trilhas sonoras mais complexas. A DirectMusic abre uma nova geração de sintetizadores de ondas que suportam o download de músicas em dois padrões (DLS), fornecendo aos usuários maior controle sobre os procedimentos do som.

Pela primeira vez, a nova versão do DirectX abre a API para um novo grupo de desenvolvedores ao oferecer suporte de linguagem para o sistema de desenvolvimento Microsoft Visual Basic®. Para oferecer o mesmo acesso de funcionalidades multimídia de alta performance oferecida pelos desenvolvedores C, o DirectX 7.0 Software Development Kit (SDK) inclui código de amostra e controles de ajuda para tornar o DirectX acessível e fácil de entender para programadores que trabalham com o Visual Basic.
Com o DirectX 8, dois novos recursos atualmente muito conhecidos entraram em cena, tornando as imagens 3D muito mais realistas: o sombreamento de pixels (“pixel shader”) e o sombreamento de vértices (“vertex shader”). Objetos 3D são criados usando centenas ou mesmo milhares de polígonos, tais como triângulos e quadrados. Sobre esses triângulos ou quadrados, são aplicadas texturas (superfícies) ou cores, formando o objeto tridimensional. Com o sombreamento de vértices o programa 3D é capaz de mudar as características de cada vértice de cada polígono do objeto. Já com o sombreamento de pixels, o programa é capaz de mudar as características de cada pixel (ponto) de cada polígono. Antes da existência desses recursos, a mudança dessas características não era possível, ou seja, só era possível a mudança das características do polígono inteiro, o que afetava todos os seus pontos em conjunto. Portanto, com estes dois novos recursos as imagens passaram a ser muito mais realistas, já que cada ponto de cada polígono passou a ser programável.

O DirectX 8.0 permitia que o sombreamento de pixels fosse programado com até 12 instruções por vez. Este limite foi considerado insuficiente e logo o DirectX foi revisado para a versão 8.1 para permitir o uso de 22 instruções por vez. Para aumentar o desempenho e a qualidade dos objetos tridimensionais, o DirectX 9.0 foi lançado suportando o modelo Shader 2.0, onde o sombreamento de pixels pode usar até 96 instruções por vez. O modelo Shader 3.0 foi introduzido como DirectX 9.0c e permite o uso de até 65.535 instruções por vez.
O DirectX 11 trouxe duas inovações importantes. A primeira foi o suporte à técnica de GPGPU, que consiste em usar o chip gráfico para executar instruções “normais” de processamento para acelerar o processamento de programas comuns e não somente o de jogos. A segunda foi o suporte nativo ao recurso de tesselação, que permite dividir cada polígono em partes ainda menores para obter um maior realismo do objeto, quando usado em conjunto com o recurso de mapeamento de deslocamento. Em outras palavras, permite objetos mais realistas sem diminuir o desempenho.

O DirectX 10 trouxe o modelo Shader 4.0. Esse modelo promoveu uma mudança importante na arquitetura dos chips gráficos. Até os chips gráficos baseados no DirectX 9.0c, o chip tinha unidades de processamento separadas para processar sombreamento de pixels e sombreamento de vértices. Em algumas circunstâncias em que todas as unidades de sombreamento de pixels estavam sendo usadas, as unidades de sombreamento de vértices ficavam ociosas e novas instruções de sombreamento de pixels tinham de esperar, já que todos os processadores de sombreamento de pixels estavam ocupados, mesmo que os processadores de sombreamento de vértices estivessem disponíveis para uso. Nos chips a partir do DirectX 10, as unidades de processamento são genéricas e podem ser usadas para processar qualquer tipo de informação, resolvendo o problema que acabamos de explicar: em chips gráficos a partir do DirectX 10, as instruções precisam aguardar apenas quando todos os processadores estão ocupados, independente do tipo de instrução. Esta arquitetura é conhecida como arquitetura unificada de sombreamento.

O DirectX 10 também introduziu um novo tipo de sombreamento, de geometria, e outros recursos para transferir mais processamento do processador da máquina para o chip gráfico. Uma explicação mais detalhada a respeito dos principais novos recursos introduzidos pelo DirectX 10 pode ser encontrada no documento técnico da NVIDIA sobre o DirectX 10 (http://www.clubedohardware.com.br/download/docs/Microsoft_DirectX_10_Technical_Brief.pdf).
O DirectX 12 traz duas novidades importantes. A primeira é a possibilidade de programação em baixo nível, isto é, o envio de instruções para o processador gráfico diretamente, o que aumenta o desempenho caso o jogo lance mão desta técnica. Outras modificações foram feitas para melhorar a comunicação do DirectX com o processador gráfico (GPU) e com o processador da máquina (CPU), a fim de minimizar momentos em que núcleos de processamento ficam ociosos. Em outras palavras, a principal novidade do DirectX 12 é um aumento de desempenho (desde, claro, tanto o jogo, o sistema operacional e o hardware suportem DirectX 12). Uma explicação mais detalhada pode ser encontrada no blog da Microsoft (http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx).
Com o DirectX 11.1, a Microsoft adicionou 21 novidades, que podem ser vistas na documentação técnica (https://msdn.microsoft.com/pt-br/library/windows/desktop/hh404562(v=vs.85).aspx). As novidades são extremamente técnicas e, a bem da verdade, servem apenas para permitir a nova interface gráfica introduzida no Windows 8. Já o DirectX 11.2 traz dez novas funcionalidades, sendo a mais divulgada o recurso de bloco, que é explicado e demonstrado nesta apresentação da Microsoft (http://channel9.msdn.com/Events/Build/2013/4-063). Em resumo, ele permite alocar menos memória por recurso, aumentando o desempenho de jogos. O detalhamento das novas funções do DirectX 11.2 pode ser visto aqui (https://msdn.microsoft.com/pt-br/library/windows/apps/bg182880.aspx).

Uma comparação lado a lado entre os principais recursos do DirectX 9, 10 e 11 pode ser vista aqui (https://technet.microsoft.com/pt-br/ff476876(v=vs.71)). A segunda grande novidade é o suporte a múltiplas placas de vídeo diretamente, sem ser por soluções proprietárias como o SLI e o CrossFire, permitindo a mistura de placas de vídeo de fabricantes e especificações diferentes. Para isso, os chips gráficos precisam ser DirectX 12, você deve estar rodando um sistema operacional com suporte ao DirectX 12 e os jogos precisam ser DirectX 12. Este é um assunto importante e pretendemos fazer uma análise completa para verificarmos se ele realmente funciona e o ganho de desempenho esperado. Outro detalhe do DirectX 12 é que ele é suportado em todas as plataformas onde o Windows 10 está disponível: computador, tablet e smartphone. Informações mais detalhadas estão disponíveis (https://msdn.microsoft.com/pt-br/library/windows/desktop/dn899228(v=vs.85).aspx).


Versão do DirectX
Modelo de placa de vídeo compatível
DirectX 1.0
Placa de Vídeo
DirectX 2.0 - 2.0a
Placa de Vídeo
DirectX 3.0 - 3.0a
Placa de Vídeo
DirectX 4.0
Placa de Vídeo
DirectX 5.0
Placa de Vídeo
DirectX 5.0
Placa de Vídeo
DirectX 6.0
Placa de Vídeo Rage Mobility-CL
DirectX 7.0
Placa de Vídeo GeForce4 MX 420
DirectX 7.0a
Placa de Vídeo GeForce4 MX 420
DirectX 8.0
Placa de Vídeo 4 410 Go
DirectX 8.1
Placa de Vídeo Radeon 9200
DirectX 9.0
Placa de Vídeo Radeon 9500
DirectX 9.0a
Placa de Vídeo FX Go5200
DirectX 9.0b
Placa de Vídeo Mobility Radeon X600 SE
DirectX 9.0c
Placa de Vídeo Radeon X1050
DirectX 10
Placa de Vídeo Radeon 2900 Pro
DirectX 10.1
Placa de Vídeo Radeon HD 4670
DirectX 10.1
Placa de Vídeo Radeon HD 4870
DirectX 11
Placa de Vídeo Radeon R5 235
DirectX 11
Placa de Vídeo Radeon R5 220
DirectX 11.1
Placa de Vídeo Radeon R9 295X2
DirectX 12
Placa de Vídeo Radeon Pro Duo


Desenvolvido por Karolina A. da Silva | Todos os direitos reservados.