When Packt approached me to write a review on this book, I thought it was a great opportunity to get back into DirectX programming. I am in the visual effects industry and with the cross-platform nature of that industry I have mostly been using some basic OpenGL. With the way technology is advancing and with it having been many years since I last work with DX9, I wanted a refresher and to update my skills using the latest techniques. However, jumping straight into this book probably isn’t the best way to do that.
HLSL Development Cookbook is not an introduction to HLSL or an introduction to writing Direct3D 11/HLSL-based applications. Readers should already be familiar with HLSL and Direct3D 11. I was a bit disappointed in this having read the OpenGL 4.0 Shading Language Cookbook, which introduces readers to GLSL and writing GLSL-based programs before going on to more advanced techniques. To be fair though, the author does say right before the first recipe that readers should already know how to
- Compile and load the shaders.
- Prepare a system that will load and manage the scene.
- Prepare a framework that supports Direct3D draw calls with shaders that will render the scene
Although it might have made sense to put that information in the “Who this book is for” section. That section also states that people looking to transition from DX9 to DX11 should get this book. However, if you are trying to transition from DX9 to DX11, there really isn’t a whole lot about DX11 besides what values to fill in different structs in order to setup proper resources and buffers. The book is mostly the HLSL and it’s corresponding explanations on traditional lighting equations, deferred shading, shadow techniques, post-processing (hdr, bloom, dof, bokeh), screen space effects (ssao, lens flare, reflections, sun rays), and environment effects (dynamic decals, fog, and rain).
My own ignorance aside, the demos are interesting and the material is presented clearly. The demos all ran and provide great reference to study. The author just assumes a certain level of knowledge.
So if you are interested in this book but have little to no HLSL and/or D3D11 experience, I would recommend getting an introduction to HLSL and/or DirectX 11, such as Frank D. Luna’s Introduction to 3D Game Programming with DirectX 11 and the documentation on MSDN. Once you are comfortable with that material, then go ahead and get this book.