Já listamos todas as versões do DirectX já lançadas, mas ficou faltando explicar qual é a diferença entre elas. Por exemplo, o que torna o DirectX 7 melhor do que o DirectX 6? 
Em geral uma nova versão é lançada para que o sistema reconheça recursos mais modernos dos chips gráficos, de forma a usar estes recursos caso sua placa de vídeo os tenha, aumentando tanto o desempenho 3D da máquina quanto a qualidade de imagem.
O DirectX 6 trouxe como principal novidade o recurso de mapeamento de relevo mapeado pelo ambiente (“Environment mapped Bump Mapping”). Com este recurso é possível criar mais facilmente imperfeições na superfície do objeto 3D, tornando-o mais realista.
A partir do chip GeForce256, os chips gráficos passaram a fazer parte dos cálculos necessários para a geração dos objetos tridimensionais, tarefa que ficava antes a cargo do processador da máquina. Estas etapas são as de iluminação e transformação, abreviadas como T&L (transform and lightning, transformação e iluminação, em inglês). O DirectX 7 foi lançado para reconhecer este recurso e transferir do processador da máquina para o chip gráfico as etapas de transformação e iluminação. Chips gráficos DirectX 7 incluem todas as séries do GeForce 2, o GeForce 4 MX, o GeForce MX, o GeForce PCX 4300, o Radeon 7000, o Radeon 7200 e o Radeon 7500.
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 de esses recursos existirem, 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. Os chips gráficos baseados neste modelo incluem o GeForce 3, o GeForce 4 Ti e o Radeon 8500, o Radeon 9000, o Radeon 9100, o Radeon 9200 e o Radeon 9250.
Para aumentar o desempenho e aumentar 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. Vários chips gráficos usam este modelo, como os da série GeForce FX e os das séries Radeon 9500 até 9800 e Radeon X300 até X800.
O modelo Shader 3.0 foi introduzido como DirectX 9.0c e permite o uso de até 65.535 instruções por vez. Os chips gráficos que são baseados nesta versão são os GeForce séries 6 (GeForce 6600, 6800 etc.) e 7 (GeForce 7600, 7800 etc.) e Radeon da série X1000 (Radeon X1600, X1900 etc.).
O DirectX 10 trouxe o modelo Shader 4.0. Este 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 baseados no DirectX 10 as unidades de processamento são genéricas e podem ser usadas para processar qualquer tipo de informação, resolvendo o programa que acabamos de explicar: em placas de vídeo baseadas no 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.
Os chips gráficos que são baseados nesta arquitetura incluem o GeForce das séries 8 (GeForce 8600, 8800 etc.) 9, (GeForce 9600, 9800 etc.) e 200 (GeForce GTX 260, GTX 280) e Radeon série HD 2000 (Radeon HD 2600, HD 2900 etc).
Você pode ver abaixo as principais diferenças entre o DirectX 9 e o DirectX 10.
Recursos | DirectX 9 | DirectX 10 |
Registradores Temporários | 32 | 4.096 |
Registradores Constantes | 256 | 16 x 4.096 |
Texturas | 16 | 128 |
Alvos de Renderização | 4 | 8 |
Tamanho Máximo da Textura | 4.048 x 4.048 | 8.096 x 8.096 |
Na tabela abaixo você vê uma comparação entre os modelos Shader 1.x (DirectX 8.1), Shader 2.0 (DirectX 9.0), 3.0 (DirectX 9.0c) e 4.0 (DirectX 10).
| Shader 1.0 | Shader 2.0 | Shader 3.0 | Shader 4.0 |
Instruções de Vértice | 128 | 256 | 512 | 65.536 * |
Instruções de Pixel | 4+8 | 32+64 | 512 | 65.536 * |
Constantes de Vértice | 96 | 256 | 256 | 16 x 4.096 * |
Constantes de Pixel | 8 | 32 | 224 | 16 x 4.096 * |
Registradores Temporários de Vértice | 16 | 16 | 16 | 4.096 * |
Registradores Temporários de Pixel | 2 | 12 | 32 | 4.096 * |
Entradas de Vértice | 16 | 16 | 16 | 16 |
Entradas de Pixel | 4+2 | 8+2 | 10 | 32 |
Alvos de Renderização | 1 | 4 | 4 | 8 |
Alvos de Texturas | - | - | 4 | 128 * |
Texturas de Pixel | 8 | 16 | 16 | 128 * |
Tamanho da Textura 2D | - | - | 2.048 x 2.048 | 8.192 x 8.192 |
Operações de Inteiros | - | - | - | Sim |
Operações de Carga | - | - | - | Sim |
Derivativos | - | - | Sim | Sim |
Controle de Fluxo de Vértice | - | Estático | Estático / Dinâmico | Dinâmico * |
Controle de Fluxo de Pixel | - | - | Estático / Dinâmico | Dinâmico * |
*Como o DirectX 10 implementa uma arquitetura unificada, este número é o total para toda a arquitetura unificada e não para esta especificação individual.
O DirectX 10.1 trouxe pequenos melhoramentos. Atualmente apenas as placas de vídeo das séries Radeon HD 3000 (Radeon HD 3450, HD 3870 etc.) e HD 4000 (Radeon HD 4850, HD 4870 etc.) são baseadas no DirectX 10.1. Na figura abaixo resumimos as diferenças entre o DirectX 10 e o DirectX 10.1. Para mais informações consulte o manual técnico da AMD para o DirectX 10.1.

clique para ampliar
Figura 1: Principais diferenças entre o DirectX 10 e o DirectX 10.1.
Nós resumimos todas as versões do DirectX na tabela abaixo.
Versão | Principal Novidade |
DirectX 6 | Mapeamento de Relevo Mapeado pelo Ambiente |
DirectX 7 | Transformação e iluminação no chip gráfico |
DirectX 8 | Shader 1.0, 1.1 e 1.2 |
DirectX 8.1 | Shader 1.3 e 1.4 |
DirectX 9.0 | Shader 2.0 |
DirectX 9.0c | Shader 3.0 |
DirectX 10 | Shader 4.0, Arquitetura Unificada de Sombreamento |
DirectX 10.1 | Shader 4.1 |
Você pode descobrir qual versão do DirectX sua placa de vídeo é baseada consultando os seguintes tutoriais: