Over the years, I’ve been asked about book recommendations, and it’s been challenging to keep up with them. I recently had a chance to review some books including a few prior to publication, so I’ve rounded up some recommendations for DirectX 11. Here I present them in chronological order of their publication date.
Practical Rendering and Computation with Direct3D 11
Zink et al, Practical Rendering and Computation with Direct3D 11, A K Peters/CRC Press (July 27, 2011)
If you are looking for comprehensive coverage for the entire Direct3D 11.0 API, this is the book to get. The detail and completeness is impressive, and it covers it all including HLSL. This text is definitely handy for both C++ and C# developers using a wrapper like SharpDX or SlimDX. The book was released before Direct3D 11.1 or 11.2 so the current printing doesn’t cover these, but the foundation here is great. If you ever wished there was a “Red Book” for Direct3D, then this is a great addition to your library.
Introduction to 3D Game Programming with DirectX 11
Luna, Introduction to 3D Game Programming with DirectX 11, Mercury Learning & Information (March 2, 2012)
This is the latest in a series of such books, and the format is well-honed and refined. If you are looking for an introduction to all the basics of 3D transformation math and Direct3D rendering techniques, with samples in C++, this is a good place to start. That said, it’s very much rooted in the now legacy DirectX SDK and Win32 desktop programming model. It’s still very relevant for more modern Direct3D 11.x platforms, but you’ll need to keep in mind the differences between XNA Math and DirectXMath, the replacements for D3DX11, and the status of Effects 11. This book also serves as an excellent introductory text and with extensive examples for DirectXMath.
For D3DX11, you can make use of the Microsoft.DXSDK.D3DX NuGet package initially without using the legacy DirectX SDK, but you should move to the open source replacements instead when you can.
Update: There is also a Luna, Introduction to 3D Game Programming with DirectX 12, Mercury Learning & Information (March 24, 2016). It’s the same basic material but using DirectX 12 instead of DirectX 11. My general belief is that if you are new to DirectX development, you should start with DirectX 11 before attempting to use DirectX 12 which is a much less forgiving API. In general the DirectX 12 book is quite good, although I noted a few places where the original DirectX 11 material wasn’t updated. The only downside to the new book IMO is that it was published before the DirectX Toolkit for DirectX 12 was available which would have simplified some of the utility code required for loading textures, etc. Otherwise, a good start to finish introduction to the new API.
Direct3D Rendering Cookbook
Stenning, Direct3D Rendering Cookbook, Packt Publishing (January 21, 2014)
For developers more comfortable with C#, this book demonstrates the Direct3D 11.x API using SharpDX in a very step-by-step manner. The coverage includes advanced techniques including hardware tessellation and deferred shading, so it’s definitely a good resource for anyone doing graphics or 3D games in C#. It also covers Windows Store apps development in some detail.
Real-Time 3D Rendering with DirectX and HLSL
Varcholik, Real-Time 3D Rendering with DirectX and HLSL: A Practical Guide to Graphics Programming, Addison-Wesley (May 31, 2014)
This book focuses on implementing numerous techniques using HLSL with Direct3D 11.1. With the emphasis on HLSL code, it should be equally useful to both C++ and C# developers looking to implement advanced graphics techniques.