Part III: Rendering
Programmable hardware and high-level shading languages have enabled an unlimited number of rendering effects. Developers are using GPUs in new, interesting, and unexpected ways, taking advantage of their horsepower to create unprecedented, real-time effects. Much of the inspiration for these effects comes from the movie industry. Many of the chapters in this section borrow ideas from techniques employed in high-quality, final-frame renders and are able to achieve realism previously obtained only in offline rendering.
A good example is the impressive face rendering depicted on our book cover. Employing physically accurate models, Eugene d'Eon and David Luebke demonstrate how to adapt them to the GPU to produce highly realistic, real-time images of human skin. In Chapter 14, "Advanced Techniques for Realistic Real-Time Skin Rendering," our contributors show how to achieve these images by combining physically based BRDFs, translucent shadow maps, and subsurface scattering via a variant of texture-space diffusion.
To create believable characters, it's not enough to accurately render skin surfaces—it's also necessary to realistically animate facial expressions. A major problem of most geometry animation systems is that they don't capture the infinite complexity of the human face. Eyebrow movements, lip stretches, skin wrinkles, and subtle lighting changes are usually not modeled by these systems. Yet George Borshukov, Jefferson Montgomery, and John Hable achieve realism by capturing details from real characters and storing them as animated diffuse maps. Their solution is a real-time implementation of Universal Capture, a technique used in noninteractive films such as The Matrix. In Chapter 15, "Playable Universal Capture," the authors describe how this technique is also practical for video games by using principal component analysis to compress the large data sets that result from the motion capture.
Crysis has already become a synonym for gorgeous islands, lush jungles, and stunning visuals. Proud of constantly pushing the envelope, Tiago Sousa reveals where his inspiration comes from: the techniques employed in Dream-Works' animated movie Madagascar. In Chapter 16, "Vegetation Procedural Animation and Shading in Crysis," Tiago gives us an overview of the procedural animation techniques and shading methods that enable rendering these immersive and densely populated environments.
Although they are standard in the domain of offline rendering, complex refractions and reflections are hard to render in real time. However, in Chapter 17, "Robust Multiple Specular Reflections and Refractions," Tamás Umenhoffer, Gustavo Patow, and László Szirmay-Kalos challenge common knowledge and show us how to use the power of modern GPUs to convincingly simulate these ray tracing effects, bringing them into the realm of real-time rendering.
Relief mapping is becoming a more attractive approach for adding geometric details to object surfaces. Still, popular implementations are neither powerful nor effective enough for use in real game scenarios. In Chapter 18, "Relaxed Cone Stepping for Relief Mapping," Fabio Policarpo and Manuel Oliveira present a robust and efficient technique that increases the performance of previous approaches and eliminates their distracting artifacts. After reading this chapter, developers won't have an excuse not to enable relief mapping as an integral effect of their rendering pipelines.
Chapter 19, "Deferred Shading in Tabula Rasa," revisits and expands upon a topic from the second volume in our series. Since GPU Gems 2, deferred shading became very popular, but many developers realized that the road to successfully implementing it was challenging. Rusty Koonce was kind enough to share his experiences writing the deferred shading engine for the game Tabula Rasa, NCsoft's latest MMO. His chapter is full of chewy ideas and interesting tidbits, and I'm sure many readers will appreciate the author for taking the time and effort to present it in a readable format.
Finally, in Chapter 20, "GPU-Based Importance Sampling," Mark Colbert and Jaroslav Kivánek borrow techniques from high-quality renders to evaluate realistic BRDFs in a way that requires minimal precomputation. As a result, these BRDFs are suitable for use in dynamic environments with varying lighting conditions, making them appealing for use in real-time game environments.
The chapters in this part of the book demonstrate that real-time rendering is still an exciting area of exploration, and I'm sure they will open your imagination and inspire you to create realistic, real-time characters and environments never seen before.
I'd like to thank all the authors for their great work and effort, and the peer reviewers for spending their valuable time to make this book even better. With their help it has been very rewarding to assemble this section. I hope you will have as much fun reading it as I had editing it.
Ignacio Castaño Aguado, NVIDIA Corporation