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.
Table of Contents
|
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:
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

Fonte: http://www.realtimerendering.com/blog/direct3d-11-details-part-ii-tessellation/Pipeline do DirectX 11:

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:
- Vá até opção C/C++ e expanda ela.
- Clique na opção Command Line
- 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:
- Clique com o botão direito no projeto e selecione Properties (Propriedades do projeto)
- Vá até opção Linker e expanda ela.
- Clique na opção Command Line
- 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
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