This is the Getting Started tutorial for DirectX Tool Kit which introduces the reader to programming Direct3D 11 in C++.
One thing that many C++ developers, particularly game developers, may not be all that familiar with is "C++ Exception Handling". This is distinct from "Structured Exception Handling" (SEH) which some developers have seen in the past, and can leave an unfavorable impression of C++ EH. On both ARM and x64 native platforms, C++ EH is very efficient, although the x86 32-bit implementation does have some quirks. In any case, DirectX Tool Kit uses C++ Exception Handling for most error conditions, just as the Standard Template Library (STL) does and the default behavior of the new operator.
Adding the DirectX Tool Kit
More tricks with sprites
Drawing text
Simple rendering
3D shapes
Rendering a model
Using skinned models
Using advanced shaders
Applying lightmaps
Creating custom shaders with DGSL
Writing custom shaders
Basic game math
Collision detection
Picking
Mixing SimpleMath and DirectXMath
Adding audio to your project
Creating and playing sounds
Using positional audio
http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx
http://blogs.msdn.com/b/chuckw/archive/2012/09/17/dual-use-coding-techniques-for-games.aspx
Background
This tutorial assumes the reader is familiar with the basics of C++ programming using Microsoft Visual C++, including writing code, building applications, and basic debugging. Coding conventions here will make use of C++11 language features such as auto, simple lambdas (aka anonymous functions), and the standard smart-pointer std::unique_ptr, but will generally be otherwise 'core' C++ (i.e. language features supported in Visual C++ 2010).- C++ Language and Standard Libraries - http://msdn.microsoft.com/en-us/library/hh875057.aspx
- Tools for Visual C++ Development - http://msdn.microsoft.com/en-us/library/hh967574.aspx
- Smart Pointers - http://msdn.microsoft.com/en-us/library/hh279674.aspx
One thing that many C++ developers, particularly game developers, may not be all that familiar with is "C++ Exception Handling". This is distinct from "Structured Exception Handling" (SEH) which some developers have seen in the past, and can leave an unfavorable impression of C++ EH. On both ARM and x64 native platforms, C++ EH is very efficient, although the x86 32-bit implementation does have some quirks. In any case, DirectX Tool Kit uses C++ Exception Handling for most error conditions, just as the Standard Template Library (STL) does and the default behavior of the new operator.
- Errors and Exception Handling - http://msdn.microsoft.com/en-us/library/hh279678.aspx
- C++ Exception Handling - http://msdn.microsoft.com/en-us/library/4t3saedz.aspx
- Exception Handling (Debugging) - http://msdn.microsoft.com/en-us/library/x85tt0dd.aspx
Audience
These tutorials are written with game development in mind as the target application since games are an excellent fit for the 'immersive DirectX app' model. Keep in mind, however, that the majority of the functionality in the DirectX Tool Kit is applicable to DirectX graphics programming in general for both game and non-game applications.Software Setup
For learning purposes, these instructions are going to focus on the following setup:- Visual Studio 2013 Community, Professional, Premium, or Ultimate (Update 4)
- Windows 7 or Windows 8.x
Tutorials
The basic game loopAdding the DirectX Tool Kit
Graphics
Sprites and texturesMore tricks with sprites
Drawing text
Simple rendering
3D shapes
Rendering a model
Using skinned models
Using advanced shaders
Applying lightmaps
Creating custom shaders with DGSL
Writing custom shaders
Input
Game controller inputMath
Using the SimpleMath libraryBasic game math
Collision detection
Picking
Mixing SimpleMath and DirectXMath
Audio
Adding the DirectX Tool Kit for AudioAdding audio to your project
Creating and playing sounds
Using positional audio
Resources
http://blogs.msdn.com/b/chuckw/archive/2014/04/07/book-recommendations.aspxhttp://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx
http://blogs.msdn.com/b/chuckw/archive/2012/09/17/dual-use-coding-techniques-for-games.aspx