The latest edition of this bestselling game development reference offers proven tips and techniques for the real-time rendering of special effects and visualization data that are useful for beginners and seasoned game and graphics programmers alike.
Exploring recent developments in the rapidly evolving field of real-time rendering, GPU Pro6: Advanced Rendering Techniques assembles a high-quality collection of cutting-edge techniques for advanced graphics processing unit (GPU) programming. It incorporates contributions from more than 45 experts who cover the latest developments in graphics programming for games and movies.
The book covers advanced rendering techniques that run on the DirectX or OpenGL runtimes, as well as on any other runtime with any language available. It details the specific challenges involved in creating games across the most common consumer software platforms such as PCs, video consoles, and mobile devices.
The book includes coverage of geometry manipulation; rendering techniques, handheld devices programming, effects in image space, shadows, 3D engine design, graphics-related tools, and environmental effects. It also includes a dedicated section on general purpose GPU programming that covers CUDA, DirectCompute, and OpenCL examples.
In color throughout, GPU Pro6 presents ready-to-use ideas and procedures that can help solve many of your daily graphics programming challenges. Example programs with downloadable source code are also provided on the book’s CRC Press web page.
I: GEOMETRY MANIPULATION
Dynamic GPU Terrain; David Pangerl
Introduction
Overview
Terrain Data
Rendering
Dynamic Modification
Physics Synchronization
Problems
Conclusions
Bandwidth Efficient Procedural Meshes in the GPU via Tessellation; Gustavo Bastos Nunes and Joao Lucas Guberman Raza
Introduction
Procedural Mesh and the Graphics Pipeline
Hull Shader
Domain Shader
Noise in Procedural Meshes
Performance Optimizations
Conclusion
Bibliography
Real-Time Deformation of Subdivision Surfaces on Object Collisions; Henry Schafer, Matthias Nießner, Benjamin Keinert, and Marc Stamminger
Introduction
Deformable Surface Representation
Algorithm Overview
Pipeline
Optimizations
Results
Conclusion
Acknowledgments
Bibliography
Realistic Volumetric Explosions in Games; Alex Dunn
Introduction
Rendering Pipeline Overview
Offline/Pre-Processing
Runtime
Visual Improvements
Results
Performance
Conclusion
Acknowledgements
Bibliography
II: RENDERING
Next-Gen Rendering in Thief; Peter Sikachev, Samuel Delmont, Uriel Doyon, and Jean-Normand Bucci
Introduction
Reflections
Contact-Hardening Shadows
Lit Particles
Compute Shaders-Based Post-Processing
Conclusion
Acknowledgments
Bibliography
Grass Rendering and Simulation with LOD; Dongsoo Han and Hongwei Li
Introduction
Render Grass Blades
Simulation
Results
Bibliography
Hybrid Reconstruction Anti-Aliasing; Michael Drobot
Introduction
Overview
Related work
Hybrid Anti-Aliasing Overview
Temporally Stable Edge Anti-Aliasing
Temporal Super Sampling
Temporal Anti-aliasing (TAA)
Final Implementation
Results Discussion
Conclusion
Bibliography
Real-Time Rendering of Physically-Based Clouds Using Precomputed Scattering; Egor Yusov
Introduction
Light Transport Theory
Pre-computed Solutions
Volume-Aware Blending
Implementation
Results and Discussion
Conclusion
Bibliography
Sparse Procedural Volume Rendering; Doug McNabb
Introduction
Overview of Current Techniques
Overview
Metavoxels
Algorithm
Conclusion
Bibliography
III: LIGHTING
Real-Time Lighting via Light Linked List; Abdul Bezrati
Introduction
Algorithm
Populating the Light Linked List
Accessing the Light Linked List
Reduced Resolution
Conclusion
Bibliography
Deferred Normalized Irradiance Probes; John Huelin, Benjamin Rouveyrol, and Bart lomiej Wroński
Introduction
Deferred Normalized Irradiance Probes Algorithm
Tool Side of the Algorithm
Runtime Details of Algorithm
Results and Discussion
Bibliography
Volumetric Fog and Lighting; Bartlomiej Wroński
Introduction
Volumetric Fog Algorithm
Results and Discussion
Bibliography
Physically Based Light Probe Generation on GPU; Ivan Spogreev
Introduction
Light Probes Theory
Generating Light Probes on the GPU
Results
Bibliography
Real-Time Global Illumination Using Slices; Hugh Malan
Introduction
Algorithm Overview
Approximating the Irradiance Due to an Emissive Plane
Building the Image Pyramid
Combining Multiple Slices
Layered Heightfields
Slice Placement
Propagating Irradiance
Results
Conclusion
Bibliography
IV: SHADOWS
Practical Screen Space Soft Shadows; Márton Tamás and Viktor Heisenberger
Pre-introduction
Introduction
History
Algorithm Overview
Shadow Map Rendering Pass
Introducing Layers, Light Assignment
Layered Penumbra Map Pass
Anisotropic Gaussian Blur Pass
Lighting Pass
Performance Considerations
Results
Quality Tests
Performance Analysis
Conclusion
Bibliography
Tile-Based Omnidirectional Shadows; Hawar Doghramachi
Introduction
Overview
Implementation
Results
Discussion
Conclusion
Bibliography
Shadow Map Silhouette Revectorization; Vladimir Bondarev
Introduction
Implementation
Results
Future Work
Conclusion
Bibliography
V: MOBILE DEVICES
Hybrid Ray Tracing on a PowerVR GPU; Gareth Morgan
Review
Combining Ray Tracing with Rasterization
Hard Shadows
Soft Shadows
Reflections
Transparency
Performance
Results
Conclusion
Bibliography
Implementing a GPU-Only Particles Collision System with ASTC 3D Textures and OpenGL ES 3.0; Daniele Di Donato
Introduction
GPU-Only particles system
Physics Simulation
Rendering the Particles
Conclusion
Bibliography
Animated Characters with Shell Fur for Mobile Devices; Andrew Girdler and James L Jones
Introduction
Overview
Creating a Shell Fur Texture
Bone Batches or Single Pass?
Model Data and Setup
Animation with TF
Instancing for Fur Shells
Lighting and Other Effects
Conclusion
Bibliography
High Dynamic Range Computational Photography on Mobile GPUs; Simon McIntosh-Smith, Amir Chohan, Dan Curran, and Anton Lokhmotov
Introduction
Background
Tone Mapping Operators
Related Work
GPGPU using OpenCL
OpenGL ES and Android
Implementing an HDR Pipeline using OpenCL and OpenGL ES
Android Implementation
Performance of our HDR effects
Conclusions
Bibliography
VI: COMPUTE
Compute-Based Tiled Culling; Jason Stewart
Introduction
Overview
Implementation
Optimization
Unreal® Engine 4 Results
Conclusion
Acknowledgments
Bibliography
Rendering Vector Displacement Mapped Surfaces in a GPU Ray Tracer; Takahiro Harada
Introduction
Displacement Mapping
Ray Tracing a Scene with Vector Displacement Maps
Ray Tracing a Vector Displacement Patch
Integration into an OpenCL Ray Tracer
Results and Discussion
Conclusion
Bibliography
Smooth Probabilistic Ambient Occlusion for Volume Rendering; Thomas Kroes, Dirk Schut, and Elmar Eisemann
Introduction
Smooth Probabilistic Ambient Occlusion
Approximating Ambient Occlusion
Results
Conclusion
Bibliography
VII 3D ENGINE DESIGN
Blockwise Linear Binary Grids for Fast Ray Casting Operations; Holger Gruen
Overview
Introduction
Block-Wise Linear Memory Layout
Rendering Block-wise linear Binary Voxel Grids
Casting Rays Through a Block-Wise Linear Grid
Detecting Occlusions During Indirect Light Gathering
Results
Future Work
External References
Bibliography
Semantic Based Shader Generation Using Shader Shaker; Michael Delva, Julien Hamaide, and Ramses Ladlani
Introduction
Previous Work
Definitions
Overview
Algorithm Explanation
Error Reporting
Usage Discussions
What's next
Conclusion
Bibliography
ANGLE: Bringing OpenGL ES to the Desktop; Shannon Woods, Nicolas Capens, Jamie Madill, and Geoff Lang
Introduction
Direct3D 11
Shader Translation
Implementing ES3 on Feature Level 10
Future Directions: Moving To New Platforms
Recommended Practices
Bibliography
Biography
Wolfgang Engel