

This tutorial does not assume prior experience with Direct3D, but the reader should be familiar with the basic graphics concepts for DirectX or OpenGL. If you are more comfortable with C#, then you should consider SharpDX and read this blog post. Familiarity with the Standard C++ Library std::wstring and the std::vector container are required as well. Coding conventions here will make use of C++11 language features such as nullptr, auto, ranged-based for loops, simple lambdas (aka anonymous functions), the standard smart-pointer std::unique_ptr / std::make_unique(), and std::function. 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.


Keep in mind that DirectX 12 is an expert API which builds on knowing the ins & outs of DirectX 11, and can be an unforgiving API to developers new to Direct3D or graphics in general. If you are looking to use DirectX 12 and are already familiar with Direct3D 11, the place to start is the DirectX Tool Kit for DirectX 12 tutorials. If you are just looking for basic integration instructions, see Adding to a VS solution. This takes the form of a series of tutorial lessons for introducing the various functional parts of the tool kit. This is the Getting Started tutorial for DirectX Tool Kit which introduces the reader to using the DirectX Tool Kit with DirectX 11 in C++.
