Practical Rendering and Computation with Direct3D 11

Jason Zink, Matt Pettineo, Jack Hoxley

Mentioned 1

Direct3D 11 offers such a wealth of capabilities that users can sometimes get lost in the details of specific APIs and their implementation. While there is a great deal of low-level information available about how each API function should be used, there is little documentation that shows how best to leverage these capabilities. Written by active members of the Direct3D community, Practical Rendering and Computation with Direct3D 11 provides a deep understanding of both the high and low level concepts related to using Direct3D 11. The first part of the book presents a conceptual introduction to Direct3D 11, including an overview of the Direct3D 11 rendering and computation pipelines and how they map to the underlying hardware. It also provides a detailed look at all of the major components of the library, covering resources, pipeline details, and multithreaded rendering. Building upon this material, the second part of the text includes detailed examples of how to use Direct3D 11 in common rendering scenarios. The authors describe sample algorithms in-depth and discuss how the features of Direct3D 11 can be used to your advantage. All of the source code from the book is accessible on an actively maintained open source rendering framework. The sample applications and the framework itself can be downloaded from By analyzing when to use various tools and the tradeoffs between different implementations, this book helps you understand the best way to accomplish a given task and thereby fully leverage the potential capabilities of Direct3D 11.

More on

Mentioned in questions and answers.

I am using SharpDX and am fairly comfortable with it at the moment, but for an assessment for university, I need to create a demo which utilizes some sort of GPU acceleration. This is an 'independent research' task - what that means is, I assigned myself this task. I am legitimately interested in GPU acceleration in games, but right now it feels like I threw myself way too far into the deep.

I am planning to do a particle system (it will be a very BASIC system, with particles firing/falling/dieing) but I need a starting point.

Can someone point me in the right direction? Articles to read? things to consider? I have googled my heart out on things like "GPU acceleration DirectX", but I can't find any solid results! I wish I had a sort of 'hello world' for GPU acceleration..!

If you want to understand how to build a GPU particle system, I suggest you to read the book "Practical Rendering And Compution with Direct3D11", where you will find an entire chapter dedicated on how to implement a simple GPU particle system.

Then the most trickiest part is probably the sorting algorithm which is not detailed in the previous book, but you can have a look at ComputeShaderSort11 sample from the old DirectX June 2010 that could help you a lot (the implementation is quite efficient).

Also, I did a full particle engine on the GPU with SharpDX at my work, so It is perfectly achievable with SharpDX.