on 8 March 2014
Learning graphics programming is a lot more difficult than it used to be. The complexity and scale of graphics APIs has grown over the years; the initial learning curve is steeper that in previous versions of DirectX, and the sheer number of different algorithms and techniques that are required for even the more basic features of a typical modern video game mean that it is a daunting prospect for any beginner to aspire to create their own graphics applications or games. Justin Stenning's book will be a valuable reference to anyone who wants to learn graphics programming from the ground up, and it will also be useful to more experienced programmers who want to learn about specific techniques that they may not have implemented before, such as hardware tessellation, deferred contexts and image processing, for example.
The title of the book, and the brief synopsis at the start of the book gave me the impression that this was a book of specific rendering techniques for experienced programmers, akin to the GPU Gems series, for example. However, in the opening chapters, the book is much more geared towards beginners and those who are new to DirectX 11, before exploring an assortment of techniques that will be of wider interest.
I am impressed by the writing style. From start to finish, each topic is explained clearly in detailed step-by-step instructions. Personally, I like the clarity of this approach, but beginners should take note: make sure you read each step thoroughly and understand the purpose of every line of code, otherwise this style of tuition can degenerate into a typing exercise. You might get through each chapter with your code working as intended, but without understanding why it works. Helpfully, after each set of “how to do it” step-by-step instructions, there is a “how it works” section that should help to fill in some of the gaps in understanding. If you are new to programming, it is vital that you learn to write your own code, and don't be too reliant on having all the steps broken down. One thing that would have enhanced the book is to have programming exercises and challenges to encourage the readers to be creative, and to solve problems for themselves.
There are some other “core” topics that I would have liked to see covered, such as billboard rendering, level-of-detail(LOD) transitions, instancing, shadow mapping, stencil buffer techniques and so on. However, the book is already over 400 pages in length, so it is certainly not lacking in topics or depth of coverage. Moreover, anyone aspiring to be a skilled graphics programmer should expect to read many books throughout the course of their learning!
In conclusion, I highly recommend the book for anyone who is new to graphics programming, or even to new to DirectX 11, having come from a different graphics API, or an earlier version of DirectX. Students studying graphics or games development on university courses may like to consider this book as a helpful practical guide to be used alongside more academic and theoretical reading.
on 23 February 2014
Direct3D rendering cookbook is the only book I am aware of that covers the combination of C# programming and the DirectX 11 API. This is the book I would have liked to have when I taught myself how to use the DirectX API.
The book is mainly aimed at those who would like to start learning a 3D graphic library and have already a sound C# programming background. It starts by giving the reader the basic knowledge on how to set up a DirectX application. Each chapter follows a clear structure by focusing on a particular topic. Source code is given and then explained in “How it works” sections. Once you know the basics, you will find that the topics covered are very up to date with the features of modern 3D engines. Indeed, aside from the fundamental core concepts of rendering meshes it also covers advanced topics such as physics, deferred rendering and multithreading.
This book is however not about 3D engine architecture. So if you expect this book to guide you from start to finish in the development of an application or a game you are likely to be disappointed. Faithful to its name, the book reports a set of rendering techniques. Indeed concepts such as input or sound are not covered. The techniques described by the book contain the minimum amount of code necessary for their implementation. However, you will find that unless you want to build standalone demos, it is necessary for a lot more work in order to put everything together in a meaningful application or game. Considering the target audience, I think the book lost an opportunity to introduce the fundamental concepts of 3D engine architecture.
In conclusion, I believe the book is an excellent match for those who wish to learn how to use C# to build 3D applications. SharpDX also has a good community around it, so you are likely to find support once you become ready to work on your own.
on 16 April 2015
The best book for DirectX there is. Whether you're serious about learning DirectX or recreational reading and causual learning DirectX, this is the book for you.
It is the only book I know that covers development of DirectX programs in .NET and C# using SharpDX library. It really is one of a kind. Also it covers Direct3D 11, which at the moment is the newest DirectX technology.
The book takes you through the basics and slowly teaching you to do better and nicer things. If you write the code as you read the book, you'll grasp the techniques very fast. The chapters are step-by-step linked to each other. It is very well written, the author is really great person, who knows what he's doing. Also the text is very easy to read and understand. Everything is well explained.
You do not need to have any previous experience with DirectX. You'll find everything you need in the book.