What knowledge do I need to posses to learn DirectX

930 views Asked by At

I have recently finished most of the basic syntax of C++, and I'm aiming towards DirectX (Direct2D and Direct3D, to be precise)

I was wondering what do I need to learn before diving into DirectX technologies.

Any help would be greatly appreciated!

1

There are 1 answers

0
Chuck Walbourn On

A good place to start is the DirectX Tool Kit for DirectX 11, and the tutorials for it. This covers the basics of using Direct3D 11 and XAudio, and provides a nice wrapper for XInput. Once you have worked through those, then you should have a good grounding to review the many other tutorials on the Internet. There are plenty of useful tutorials and books out there, but they often use the legacy DirectX SDK and make use of a lot of deprecated support code. You can learn a lot from these older sources, but it's helpful to know which part of the information is dated and which part is still 100% accurate.

Since DirectX Tool Kit is open source, you can easily explore it to learn what it is doing. It is also specifically designed to be very modular so you can replace portions of it as you learn different aspects of the Direct3D graphics pipeline, HLSL shader programming, dynamic vs. static submission, resource management, etc.

The "modern" MSDN material on Direct2D/Direct3D is a good place to go if you are wanting to learn to program the Universal Windows Platform (UWP) app using XAML+Direct3D. The DirectX Tool Kit is designed to work with all the DirectX 11 platforms including Windows 7, Xbox One, classic Win32 desktop apps, UWP (with or without XAML), Windows phone, etc.

In terms of background material, there are numerous introductory books for graphics programming. They will cover the key topics of transformation math and view systems, texturing and rasterization, and other key concepts. For DirectX in particular, Frank Luna's Introduction to 3D Game Programming with DirectX 11 is still good, but does suffer from having been published just prior to the deprecation of the DirectX SDK. See this post for the specifics.