Versões do DirectX
Por Gabriel Torres e Cássio Lima em 02 de julho de 2008

Introdução

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

Imagine que o seu computador é um sanduíche. O hardware é uma das fatias de pão e o software é a outra fatia. O recheio que liga os dois é de drivers e de interfaces de programação (API). Este recheio faz a "tradução" da comunicação do software com o hardware. Assim, em vez do programador escrever programas para um hardware específico, ele escreve o programa para o sistema operacional, onde um driver traduzirá o que o programa quer e acessará o hardware de acordo com o que foi pedido. O programa também pode ser escrito para uma interface de programação que tem a mesma finalidade. A vantagem desta técnica é que o programador não precisa conhecer as especificações de hardware que o usuário possui; a interface de programação converte o que o programador quer em um comando compatível com o hardware do usuário. O DirectX e o OpenGL são atualmente as interfaces de programação mais populares para placas de vídeo. Um jogo em vez de ser escrito para um hardware específico é escrito usando comandos do DirectX (ou do OpenGL), que converterá os comandos enviados pelo jogo em instruções que o hardware (como a placa de vídeo e a placa de som) entendam.

Existem várias versões de DirectX. Quando dizemos que um jogo é DirectX 9, por exemplo, significa que este jogo usa instruções da versão 9.0 do DirectX. Para este jogo funcionar, você precisará obrigatoriamente ter o DirectX 9.0 ou superior instalado em sua máquina e preferencialmente um hardware também da mesma geração ou superior. Se você, por exemplo, tiver em seu PC um jogo DirectX 9 e uma placa de vídeo cujo chip gráfico seja DirectX 8, quando o jogo pedir um comando que o DirectX sabe que a sua placa de vídeo não entenderá, ele fará uma emulação para executar o comando. É claro que esta emulação não é perfeita e o resultado final será que o jogo não terá a mesma qualidade de imagem como se estivesse rodando em um hardware genuinamente DirectX 9.

É recomendado que você tenha instalado em seu micro a versão mais recente do DirectX. Infelizmente a versão mais recente, a 10, está disponível apenas para o Windows Vista (ela já vem com este sistema operacional). Se você usa outro sistema operacional, como o Windows XP, você terá de se contentar em usar a versão anterior à 10, a 9.0c. Esta versão está incluída nos Service Packs 2 e 3 para este sistema operacional. Portanto instale o Service Pack 3 para ter o DirectX 9.0c em seu Windows XP e também para corrigir várias falhas de segurança. Se você tem uma placa de vídeo e um jogo baseados no DirectX 10 você terá de migrar para o Windows Vista de modo a obter toda o potencial dos gráficos produzidos pelo DirectX 10 (ou seja, melhor qualidade de imagem). Caso contrário o jogo rodará no modo DirectX 9.0c. Se você usa o Windows Vista, você terá de instalar o Service Pack 1 para atualizar o DirectX para a versão 10.1.

Para descobrir a versão do DirectX que está instalada em seu PC, clique no menu Iniciar, Executar (Todos os programas, Acessórios, Executar no Windows Vista) e digite Dxdiag. Na última linha da janela principal da Ferramenta de diagnóstico do DirectX aparecerá a versão do DirectX que o seu micro está usando. No Windows Vista você terá de prestar atenção na última linha desta tela (“DxDiag 6.0.600x.xxxxx”) para determinar se você tem o DirectX 10 ou DirectX 10.1 instalado no micro, já que ambos são reconhecidos como “DirectX 10” em “Versão do DirectX” – compare o número apresentado aqui com o número mostrado na tabela abaixo. Em outros sistema operacionais ao clicar na guia Arquivos do DirectX você verá detalhes de todos os arquivos do DirectX instalados e se há algum tipo de conflito em sua máquina, no campo "Observações".

Na tabela abaixo compilamos todas as versões do DirectX já lançadas. Indicamos na tabela qual versão do DirectX vem por padrão em cada sistema operacional Windows. Por exemplo, o Windows XP vem com o DirectX 8.1. Como você pode ver, todos os sistemas Windows excluindo-se o Windows Server 2008 necessitam que você atualize o DirectX para obter o máximo de desempenho possível e para habilitar todos os recursos gráficos que sua placa de vídeo pode fornecer.

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

Diferenças entre as versões

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.

DirectX
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:

Originalmente em http://www.clubedohardware.com.br/artigos/Versoes-do-DirectX/964

© 1996-2012, Clube do Hardware. Todos os direitos reservados.

É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998.

Não nos responsabilizamos por danos materiais e/ou morais de qualquer espécie promovidos pelo uso das informações contidas no Clube do Hardware.

Quantcast