DirectX

DirectX é um Conjunto de APIs multimídia da Microsoft para Windows. É composto por diversas APIs como DirectInput, directSound, direct3D, além de alguns outros. É muito utilizado em diversos aplicativos para Windows (uma vez que não é multiplataforma) sendo jogo um tipo desses aplicativos
A versão mais atual da API Direct3D, a principal dentre as que vêm com a API é a 12. Nas edições atuais algumas APIs foram depreciadas e por isso não são inclusas com o DirectX, sendo uma delas a DirectSound.

Direct3D

A versão mais nova do Direct3D é a 12, que funciona apenas em computadores com Windows 10.
Desde a versão 8 da API, há recursos que propiciam a programação de alguns estágios do pipeline da placa de vídeo, entretanto a HLSL linguagem de alto nível para realizar tal tarefa só esteve presente a partir da versão 9 e adquire cada vez mais importância em virtude dos avanços atingidos na programabilidade da placa de vídeo.

Pipeline do Direct X

Pipeline do DirectX 9:
fetch.php?media=3d:xna_graphics_renders_pipeline.png
Fonte:http://standbase.com/doku.php?id=3d:directx9_and_xna_rendering_pipeline

Uma figura mais detalhada do pipeline do DirectX 9 pode ser achada em:
http://read.pudn.com/downloads127/ebook/537420/DirectX%209%20%E6%B8%B2%E6%9F%93%E7%AE%A1%E7%BA%BF.png

Pipeline do DirectX 10:
hpipe-dx10.png
Fonte: http://www.realtimerendering.com/blog/direct3d-11-details-part-ii-tessellation/Pipeline do DirectX 11:
hpipe-dx11.png
Fonte: http://www.realtimerendering.com/blog/direct3d-11-details-part-ii-tessellation/

Configurando os programas de exemplo do DirectX SDK no MS Visual Studio

Obs: As versoes mais novas do DirectX tem o SDK incorporado ao SDK do Windows. o seguinte passo -a-passo se aplica a versões mais velhas da API.

O seguinte passo a passo é realizado no MS Visual Studio 2008 Express, mas pode ser realizado de maneira equivalente em outras versões e edições do MS Visual Studio.

Vá até o DirectX Sample Browser e instale no teu computador a amostra do DirectX que lhe é do teu agrado. Para isto clique no link Install Project abaixo da amostra desejada. Clicando neste link a amostra correspondente vai ser instala na pasta de projetos do Visual Studio. O assistente irá perguntar se você quer abrir esta pasta. Responda que sim.
Clique no arquivo de solução da tua versão do visual studio. No meu caso é a de 2008 (VS 9). O projeto irá abrir estando selecionada a configuração Debug com a target ("alvo") Win32, ou seja compilação para x86. Se você quer compilar para x64 mude de Win32 para x64. Também se for desejável pode-se mudar a configuração de Debug para Release ou Profile. Há algumas mudanças de configuração para configuração, mas elas não vão ser discutidas aqui.
Se você for clicar para executar a amostra (F5 ou na flecha verde na barra de ferramentas) provavelmente vai topar com uma mensagem de erro dizendo que não conseguiu localizar o aqruivo dxsdkver.h. Isto ocorre pois o VS não sabe aonde estão os arquivos cabeçalho (.h). Para isso clique com o botão direito no nome do projeto e selecione as propriedades do projeto (properties). Feito isto faça os seguintes passos:

  1. Vá até opção C/C++ e expanda ela.
  2. Clique na opção Command Line
  3. Adicione /I "C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include"1

Se for tentar compilar novamente provavelmente outro erro será encontrado. Desta vez dizendo que não pode ser achado o arquivo dxerr.lib. SIga os seguiintes passos para resolver isto:

  1. Clique com o botão direito no projeto e selecione Properties (Propriedades do projeto)
  2. Vá até opção Linker e expanda ela.
  3. Clique na opção Command Line
  4. Adicione /LIBPATH:""C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Lib\x86""23

Agora é só clicar para executar que seu projeto provavelmente estará funcionando

Colocar figuras

DirectX11

A última versão do DirectX11 é a 11.4: https://docs.microsoft.com/pt-br/windows/win32/direct3d11/direct3d-11-4-features
A tendência é a Microsoft não adicionar mais características ao Directx11. Essa última versão traz alguns recursos presentes no DirectX12 e alguns pontos para compatibilidade entre as duas versões de DirectX.

DirectX 12

DirectX 12 é a versão mais nova do DirectX. Seu foco principal é a mudança na arquitetura de modo a diminuir as camadas entre o Sistema Operacional e a API DirectX e aumentar o desempenho de aplicações que usam essa API. Placas 3D que já suportam o DirectX 11 vão suportar também o DirectX 12

DirectX 12 Ultimate

xxx

DirectX Agilityt SDK

xxx

DXR API

xxx

Direct Machine Learning (DirectML)

xxx

Links

http://blogs.nvidia.com/blog/2014/03/20/directx-12/

Exemplos

Veja exemplos de programas DirectX9 em Exemplos DX9
Veja exemplos de programas DirectX10 em Exemplos DX10

Tutoriais

DirectX 12

Guia oficial de programação DirectX12: https://docs.microsoft.com/pt-br/windows/win32/direct3d12/directx-12-programming-guide
Tutorial do site 3dgep: https://www.3dgep.com/learning-directx-12-1/
Tutoriais básicos do site rastertek: https://www.rastertek.com/tutdx12.html

DirectX 11

http://www.directxtutorial.com/LessonList.aspx?listid=11
http://www.rastertek.com/tutdx11s2.html

Ferramentas

PIX

Links

http://www.realtimerendering.com/blog/direct3d-11-details-part-ii-tessellation/ (Em inglês)
http://msdn.microsoft.com/pt-br/library/cc518041.aspx (Em inglês)
http://www.gamesforwindows.com/en-US/directx/ (Em inglês)
https://github.com/Microsoft/DirectXTK12: Toolkit para facilitar escrever aplicacoes DirectX 12 em C++

Bindings

http://www.slimdx.org/ Binding de tecnologias relacionadas ao DirectX para C#: Math Library, Direct3D9, Direct3D9Ex, Direct3D10, Direct3D 10.1, Direct3D 11, Direct2D, D3DCompiler, DirectWrite, DirectInput, DirectSound, DXGI, DXGI 1.1, Windows Multimedia, Raw Input, X3DAudio, XAPO, XACT3, XAudio2, XInput
Managed DirectX: Binding de DirectX para C# feito pela Microsoft: Está descontinuado e não suporta todas as tecnologias relacionadas ao DirectX

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.