This second volume in the Foundations of Game Engine Development series explores the vast subject of real-time rendering in modern game engines. The book provides a detailed introduction to color science, world structure, projections, shaders, lighting, shadows, fog, and visibility methods. This is followed by extensive discussions of a variety of advanced rendering techniques that include volumetric effects, atmospheric shadowing, ambient occlusion, motion blur, and isosurface extraction. Emphasis is placed on practical implementation, and code is included.
While the book may not be exhaustive or up-to-date in terms of the rendering techniques covered, its intention is to expand upon the mathematical foundation. This is not a "recipe" book.
For example, at first I was somewhat surprised to find that the book does not cover cubemap and screen-space reflections. It does cover projections, cubemap textures and screen-space ambient occlusion, however. With the information from these sections, I could strike out on my own and implement reflections myself.
The chapter on visibility and occlusion is where the book really stands out. The entire chapter is engaging, even if the subject is one of the more difficult areas in game rendering.
More a collection of algorithms than a general overview, I still liked this book quite a while. Each section is very detailed and makes sure that the reader can comprehend why algorithms work the way they work.
If I had to add something to the book would be a general algorithm to put everything else in sequence, as you end up with a good toolbox but with a vague idea on how to apply them.