PARA QUE SERVE DIRECTX

 

Ignorância nenhuma, eu mesmo utilizava ele mas não fazia nem idéia da real função do programa. Apenas sabia que era algo que melhorava as imagens.  

Fui pesquisar e adivinha onde encontrei a resposta para essa pergunta? Aqui mesmo no Clube do Hardwarealmas: 

O DirectX é uma interface de programação desenvolvida pela Microsoft exclusivamente para jogos. Sua função é facilitar a comunicação do jogo com o hardware do micro: ao invés do jogo ter que conhecer todos os dispositivos do mercado -- como placas de vídeo 3D e placas de som  -, ele passa a usar comandos do DirectX. O DirectX, por sua vez, faz a conversão dos comandos enviados pelo jogo para acessar o hardware específico, melhorando o desempenho e facilitando a programação do jogo, que passa a ser mais simples.  

__________________

AMD Duron 1,3 Mhz
ECS M810DLU - SiS 740
256Mb DDR-SDRAM
SIS 7012 Audio Device
SIS 900 PCI Fast Ethernet Adapter
Samsung SyncMaster 15"


"Para ser útil a sociedade, não é preciso ser um DeMolay, mas para ser um DeMolay é preciso ser útil a sociedade"
__________________________________________________________________________________________________
 
 
Tudo começou na SGI...
Ela criou a IrisGL, que é muito avançada tecnologicamente falando, porém a SGI percebeu que o monopólio não era bom pra ela e decidiu fazer uma API mais simplificada para o uso "caseiro". Ela foi e pegou alguns "pedaços" da IrisGL e criou o OpenGL...


Nisso umas pessoas sairam da SGI e foram criar outras empresas, uns foram pra 3DFX, outros pra nVidia e etc...

Bom, agora você quer saber onde o DirectX entra nisso né?
Simples, ele é uma cópia de uns pedaços do OpenGL que a Microsoft registrou...
Resumindo: OpenGL é aberto, a Microsoft foi e copiou algumas partes do OpenGL, criou o DirectX e registrou ele 

Depois disso, a Microsoft começou a colocar coisas amais no DirectX chamando elas de inovações, mas que na realidade não tem nada de muito inovador nisso hehe, aí como a Microsoft registrou o DirectX, ninguém pode ver como ele é feito então fica impossivel dele rodar em outra plataforma como exemplo o Linux.

Já o OpenGL é aberto, então se a nVidia vai e usa alguma tecnologia, ela tem que registrar no ABR da OpenGL e aí qualquer um pode usar, é por isso que na maioria das vezes, tanto ATI quanto nVidia possuem as mesmas tecnologias =]

Agora vocês me perguntam... Se o DirectX é pior porque ele é tão usado?
Simples, até um tempo atrás, a ATI e a nVidia não entravam em acordo para utilizar um padrão de uma tecnologia lá no OpenGL, aí caso um desenvolvedor de um jogo quisesse fazer o jogo em OpenGL ele iria ter que programar de um jeito para rodar nas placas da ATI e de outro jeito pra rodar nas placas da nVidia, e isso é ridiculo e preferiram programar só no DirectX mesmo e que se dane hehe, por isso ele ganhou popularidade nesses anos...
Até que a SGI e a 3dLabs entrou no meio dessa briga da ATI e da nVidia e aí eles "deram as mãos" e criaram um padrão...

Uma coisa legal do DirectX é o que vai sair na versão nova dele, 9.1 creio eu...
Ela vai ter um compilador próprio, fazendo com que antes do jogo ir pro processamento da placa, ele é recompilado para ser otimizado na placa, porque cada placa tem seu meio "preferido" de trabalho.

Seria mais ou menos assim num exemplo bem tosco:
A nVidia prefere ler uma cor, uma luz e uma textura, uma cor, uma luz e uma textura e assim por diante por exemplo.
Já a ATI prefere ler todas as cores, todas as luzes e depois todas as texturas.

E o compilador que costuma ser utilizado atualmente é o HLSL (ou algo assim), ele foi inicialmente desenvolvido pela ATI e depois mais tarde finalizado pela Microsoft, ou seja, ele foi feito jogando pro lado da ATI =]
Os códigos quando compilados ficam cheios de TEMPS inúteis e como todo mundo sabe, quanto mais temps, mais lento fica o processamento, mas tem um único processador que não fica lento com tantos TEMPS e sabem qual é?
Os R3XX da ATI, que coincidência né? uhahuahua =]
Bom, isso era um problema pra nVidia, para tentar "arrumar" isso, a nVidia colocou um compilador otimizado para ela mesma no seus novos drivers ForceWare, ele vai ler o jogo e no menor tempo possível tentar recompilar para ser otimizado para o "estilo nVidia" e nos jogos que eram "compilados para a ATI" a nVidia teve um ganho grande com esse compilador otimizado utilizado no driver, mas nos jogos que foram compilados "normais" o ganho foi nulo =]

Outra coisa que pode ser citada é que o OpenGL e o DirectX nas placas ATI e nVidia são executados de modos diferentes.
Na nVidia, o OpenGL fica no Hardware enquanto na ATI o DirectX é que fica no Hardware, e o DirectX na nVidia é via Software e o OpenGL na ATI é via Software, fazendo um rodar "em cima do outro" a grosso modo...

O Windows, para variar, tem um suporte muito tosco do OpenGL, um suporte "sabotado", assim como é feito no Java também, onde o Windows tem um suporte bugado do java... Tudo isso é o "Marketing" da Microsoft para "matar" seus concorrentes, já que ela não é boa o suficiente no pau a pau ela tem que partir para meios mais "sujos"...

Bom, acho que exagerei no tamanho do texto e ninguém vai ler tudo isso uauha

 

 

___________________________________________________________________________________________________________

 

 

Uma placa que tem suporte nativo ao DX7 como as MX440... mas precisam jogar um Medal of Honor por ex que pede o DX8, esse DX8 faria o papel do hardware.. ensinando ao processador as funções DirectX 8 (nesse caso) para que voce tenha uma simulação dos efeitos...
(Se estiver enganado... me corrijam!) 

Uma placa que tem suporte nativo ao DX7 como as MX440... mas precisam jogar um Medal of Honor por ex que pede o DX8, esse DX8 faria o papel do hardware.. ensinando ao processador as funções DirectX 8 (nesse caso) para que voce tenha uma simulação dos efeitos...

(Se estiver enganado... me corrijam!) 
__________________
A64 Venice 3000+ | XFX GeForce 7600GT | Chaintech VNF4 | Kingston Hyper-X 466/1GB | Samsung HD160JJ | Seventeam 420W
S64 Palermo 2800+ | MSI GeForce 6200TC | Asus K8N4 | Geil Golden Dragon 433/512 | Seagate ST380013AS | Seventeam 350W
__________________
A64 Venice 3000+ | XFX GeForce 7600GT | Chaintech VNF4 | Kingston Hyper-X 466/1GB | Samsung HD160JJ | Seventeam 420W
 
S64 Palermo 2800+ | MSI GeForce 6200TC | Asus K8N4 | Geil Golden Dragon 433/512 | Seagate ST380013AS | Seventeam 350W
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

_____________________________________________________________________________________________________________