The CD content, including demos and content, is available on the web and for download.
You can also subscribe to our Developer News Feed to get notifications of new material on the site.
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
- Part I: Geometry
- Chapter 1. Generating Complex Procedural Terrains Using the GPU
- Chapter 2. Animated Crowd Rendering
- Chapter 3. DirectX 10 Blend Shapes: Breaking the Limits
- Chapter 4. Next-Generation SpeedTree Rendering
- Chapter 5. Generic Adaptive Mesh Refinement
- Chapter 6. GPU-Generated Procedural Wind Animations for Trees
- Chapter 7. Point-Based Visualization of Metaballs on a GPU
- Part II: Light and Shadows
- Chapter 10. Parallel-Split Shadow Maps on Programmable GPUs
- Chapter 11. Efficient and Robust Shadow Volumes Using Hierarchical Occlusion Culling and Geometry Shaders
- Chapter 12. High-Quality Ambient Occlusion
- Chapter 13. Volumetric Light Scattering as a Post-Process
- Chapter 8. Summed-Area Variance Shadow Maps
- Chapter 9. Interactive Cinematic Relighting with Global Illumination
- Part III: Rendering
- Chapter 14. Advanced Techniques for Realistic Real-Time Skin Rendering
- Chapter 15. Playable Universal Capture
- Chapter 16. Vegetation Procedural Animation and Shading in Crysis
- Chapter 17. Robust Multiple Specular Reflections and Refractions
- Chapter 18. Relaxed Cone Stepping for Relief Mapping
- Chapter 19. Deferred Shading in Tabula Rasa
- Chapter 20. GPU-Based Importance Sampling
- Part IV: Image Effects
- Chapter 21. True Impostors
- Chapter 22. Baking Normal Maps on the GPU
- Chapter 23. High-Speed, Off-Screen Particles
- Chapter 24. The Importance of Being Linear
- Chapter 25. Rendering Vector Art on the GPU
- Chapter 26. Object Detection by Color: Using the GPU for Real-Time Video Image Processing
- Chapter 27. Motion Blur as a Post-Processing Effect
- Chapter 28. Practical Post-Process Depth of Field
- Part V: Physics Simulation
- Chapter 29. Real-Time Rigid Body Simulation on GPUs
- Chapter 30. Real-Time Simulation and Rendering of 3D Fluids
- Chapter 31. Fast N-Body Simulation with CUDA
- Chapter 32. Broad-Phase Collision Detection with CUDA
- Chapter 33. LCP Algorithms for Collision Detection Using CUDA
- Chapter 34. Signed Distance Fields Using Single-Pass GPU Scan Conversion of Tetrahedra
- Chapter 35. Fast Virus Signature Matching on the GPU
- Part VI: GPU Computing
- Chapter 36. AES Encryption and Decryption on the GPU
- Chapter 37. Efficient Random Number Generation and Application Using CUDA
- Chapter 38. Imaging Earth's Subsurface Using CUDA
- Chapter 39. Parallel Prefix Sum (Scan) with CUDA
- Chapter 40. Incremental Computation of the Gaussian
- Chapter 41. Using the Geometry Shader for Compact and Variable-Length GPU Feedback