Seja você um gamer hardcore ou apenas um jogador casual, com certeza já deve ter ouvido falar no termo DirectX. Você também já deve ter percebido que ele é essencial para que games e outros aplicativos gráficos funcionem, mas você sabe para que ele serve e como ele funciona?
(Fonte da imagem: Baixaki)
Tecnologia, negócios e comportamento sob um olhar crítico.
Assine já o The BRIEF, a newsletter diária que te deixa por dentro de tudo
Continue ligado neste artigo do Tecmundo e tire todas as suas dúvidas sobre o tão falado DirectX.
O que é
Formas geométricas, cores, iluminação, filtros e texturas são as matérias-primas de todo e qualquer video game. São eles os componentes que, quando combinados com movimentos, efeitos e com um enredo, produzem os mais diversos jogos eletrônicos que tanto gostamos.
Para que a experiência de um jogo possa ser transmitida ao jogador, é necessário que um desenvolvedor primeiro programe o “aparecimento” de todos esses efeitos gráficos no monitor, bem como as sequências de interações e reações do programa.
(Fonte da imagem: Divulgação Microsoft)
Tal tarefa era considerada uma empreitada colossal nos primórdios da computação, mas foi ficando cada vez mais facilitada com o aparecimento das chamadas Interfaces de Programação de Aplicativos, ou APIs, sendo que o DirectX é uma das mais difundidas delas quando o assunto é jogos eletrônicos.
Desenhando formas na tela
Imagine que você seja um desenvolvedor e queira desenhar um simples triângulo amarelo na tela e fazê-lo se movimentar. Você sabe que todas as formas são mostradas no monitor graças à junção de vários pixels coloridos. Então, nada mais justo do que fazer isso pintando pixel a pixel. A abstração desse trabalho seria algo parecido com isso.
- Pixel nas coordenadas X123, Y456. Recebe a cor amarelo.
- Pixel nas coordenadas X124, Y456. Recebe a cor amarelo.
- Pixel nas coordenadas X125, Y456. Recebe a cor amarelo.
- E assim vai.
Continue fazendo isso 20.000 vezes até que você obtenha um triângulo-retângulo com 200 pixels de largura nos catetos. Para movimentá-lo horizontalmente, basta mover todos os pixels uma unidade acima na coordenada Y.
O resultado (Fonte da imagem: Tecmundo)
Achou trabalhoso? Pois saiba que esse ainda é apenas o conceito abstrato. Para conseguir aplicá-lo, você precisa adquirir as especificações da placa de vídeo para saber como o fabricante implementou a função “pintar pixels” dentro do sistema operacional sendo utilizado. Se o modelo da placa de vídeo mudar, é provável que você também tenha de fazer todas as modificações no seu programa para que ele continue reproduzindo o mesmo efeito.
APIs: a salvação
O processo descrito acima não só é astronomicamente trabalhoso mas também impraticável. Afinal, o programa final iria funcionar da maneira esperada apenas com o processador gráfico usado inicialmente. Pensando em maneiras de otimizar este processo, os fabricantes de hardware e software se uniram para conceber uma padronização que facilite o desenvolvimento, nascendo assim as chamadas APIs.
Esses componentes nada mais são do que um conjunto de interfaces de programação que implementa funções gráficas com um nível de abstração bem acima das funções de “pintar pixels” usadas anteriormente.
CryEngine rodando com recursos do DirectX 11 (Fonte da imagem: Divulgação/CryTek)
Um exemplo simples é que, em vez de produzir um triângulo pixel a pixel, você poderia usar uma função parecida com “Desenhar triângulo nas coordenas tal”. A API se encarrega de interpretar o comando e fazer todo o trabalho duro. O desenvolvedor nem sequer fica sabendo “como” a API trabalha com a placa de vídeo para produzir o resultado na tela.
Além disso, as APIs também atuam como um denominador comum entre o sistema operacional e o hardware, eliminando grande parte dos problemas de compatibilidade. Agora, basta que a placa de vídeo seja compatível com as APIs do DirectX 9, por exemplo, e o seu jogo, que também foi feito usando o DirectX 9, vai funcionar perfeitamente com ela ou qualquer outra.
Microsoft e o DirectX
A primeira versão do DirectX nasceu juntamente com o Windows 95 em 1995, tendo a missão de ser o sucessor das APIs WinG — que vinham sendo usadas no DOS e Windows 3.1 até então. Apesar perder desempenho em relação ao seu antecessor, o DirectX tinha a vantagem de conseguir produzir efeitos que eram impossíveis antes, além de ser mais fácil de usar.
Doom, um dos principais usuários das APIs Microsoft (Fonte da imagem: Divulgação/DoomWikia)
O DirectX também tinha como apelo o fato de ter sido concebido especialmente para os jogos, incluindo outras funções que iam além dos gráficos. Enquanto que o DirectDraw e o Direct3D cuidam dos objetos na tela, o DirectSound e DirectMusic ajudam muito no posicionamento, reprodução e até criação de sons nos games. Já o DirectPlay supria os desenvolvedores com todas as principais ferramentas para interação entre jogos dentro de uma rede.
De 1995 para cá, muitas versões do DirectX foram lançadas, todas buscando maneiras de extrair o máximo da capacidade do hardware na produção dos mais variados efeitos. As versões 10 e 11 (atual) do DirectX tomam proveito da nova arquitetura WDDM de driver gráfico implementada no Windows Vista, motivo que as torna incompatíveis com o Windows XP ou inferior.
Os consoles com que tem o DirectX " correndo nas veias" (Fonte da imagem: Divulgação/Wikimedia)
O componente também foi decisivo na criação no primeiro console de video game da Microsoft, chamado inicialmente de DirectXbox. Felizmente, a versão final do console foi lançada em 2001 com o nome encurtado para apenas Xbox.
Concorrentes e evolução
Desde que foi lançado em 1995, o DirectX da Microsoft já tinha como concorrente o pacote de APIs OpenGL, da Silicon Graphics Inc. Inicialmente, OpenGL era mais voltado para trabalhos profissionais do que para a produção de jogos. Mas, diferente da tecnologia da gigante de Redmond, todo o código-fonte do OpenGL é aberto.
(Fonte da imagem: Divulgação/Wikimedia Commons)
O caráter open source do OpenGL foi um dos principais motivos para que muitos desenvolvedores o defendessem, alegando ser que a API da SIG era mais acessível do que o DirectX. Essa briga entre as duas tecnologias se estende até hoje, sendo que, em matéria de jogos, o DirectX mantém uma boa vantagem graças à popularidade dos sistemas Windows.
Categorias