└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Game Programming Gems 2 | 3 | ## Game Programming Gems 1 4 | 5 | ### Section 4 Polygonal Techniques 6 | 4.0 Optimizing Vertex Submissions for OpenGL 7 | 4.1 Tweaking A Vertex's Projected Depth Value 8 | 4.2 The Vector Camera 9 | 4.3 Camera Control Techniques 10 | 4.4 A Fast Cylinder-Frustum Intersection Test 11 | 4.5 3D Collision Detection 12 | 4.6 Multi-Resolution Maps for Interaction Detection 13 | 4.7 Computing the Distance into a Sector 14 | 4.8 Object Occlusion Culling 15 | 4.9 Never Let 'Em See You Pop - Issues in Geometric Level of Detail Selection 16 | 4.10 Octree Construction 17 | 4.11 Loose Octrees 18 | 4.12 View-Independent Progressive Meshing 19 | 4.13 Interpolated 3D Keyframe Animation 20 | 4.14 A Fast and Simple Skinning Techniques 21 | 4.15 Filling the Gaps - Advanced Animation Using Stitching and Skinning 22 | 4.16 Real-Time Realistic Terrain Generation 23 | 4.17 Fractal Terrain Generation - Fault Formation 24 | 4.18 Fractal Terrain Generation - Midpoint Displacement 25 | 4.19 Fractal Terrain Generation - Particle Deposition 26 | 27 | ### Section 5 Pixel Effects 28 | 5.0 2D Lens Flare 29 | 5.1 Using 3D Hardware for 2D Sprite Effects 30 | 5.2 Motif-Based Static Lighting 31 | 5.3 Simulated Real-Time Lighting Using Vertex Color Interpolation 32 | 5.4 Attenuation Maps 33 | 5.5 Advanced Texturing Using Texture Coordinate Generation 34 | 5.6 Hardware Bump Mapping 35 | 5.7 Ground-Plane Shadows 36 | 5.8 Real-Time Shadows on Complex Objects 37 | 5.9 Improving Environment-Mapped Reflection Using Glossy Prefiltering and the Fresnel Term 38 | 5.10 Convincing-Looking Glass for Games 39 | 5.11 Refraction Mapping for Liquids in Containers 40 | 41 | ## Game Programming Gems 2 42 | 43 | ### Section 4 - Geometry Management 44 | 4.1 Comparison of VIPM Methods 45 | 4.2 Simplified Terrain Using Interlocking Tiles 46 | 4.3 Sphere Trees for Fast Visibility Culling, Ray Tracing, and Range Searching 47 | 4.4 Compressed Axis-Aligned Bounding Box Trees 48 | 4.5 Direct Access Quadtree Lookup 49 | 4.6 Approximating Fish Tank Refractions 50 | 4.7 Rendering Print Resolution Screenshots 51 | 4.8 Applying Decals to Arbitrary Surfaces 52 | 4.9 Rendering Distant Scenery with Skyboxes 53 | 4.10 Self-Shadowing Characters 54 | 4.11 Classic Super Mario 64 Third-Person Control and Animation 55 | 56 | ### Section 5 - Graphics Display 57 | 5.1 Cartoon Rendering: Real-time Silhouette Edge Detection and Rendering 58 | 5.2 Cartoon Rendering Using Texture Mapping and Programmable Vertex Shaders 59 | 5.3 Dynamic Per-Pixel Lighting Techniques 60 | 5.4 Generating Procedural Clouds Using 3D Hardware 61 | 5.5 Texture Masking for Faster Lens Flare 62 | 5.6 Practical Priority Buffer Shadows 63 | 5.7 Impostors: Adding Clutter 64 | 5.8 Operations for Hardware-Accelerated Procedural Texture Animation 65 | 66 | ## Game Programming Gems 3 67 | 68 | ### Section 4 Graphics 69 | 4.1 T-Junction Elimination and Retriangulation 70 | 4.2 Fast Heightfield Normal Calculation 71 | 4.3 Fast Patch Normals 72 | 4.4 Fast and Simple Occlusion Culling 73 | 4.5 Triangle Strip Creation, Optimizations, and Rendering 74 | 4.6 Computing Optimized Shadow Volumes for Complex Data Sets 75 | 4.7 Subdivision Surfaces for Character Animation 76 | 4.8 Improved Deformation of Bones 77 | 4.9 A Framework for Realistic Character Locomotion 78 | 4.10 A Programmable Vertex Shader Compiler 79 | 4.11 Billboard Beams 80 | 4.12 3D Tricks for Isometric Engines 81 | 4.13 Curvature Simulation Using Normal Maps 82 | 4.14 Methods for Dynamic, Photorealistic Terrain Lighting 83 | 4.15 Cube Map Lighting Techniques 84 | 4.16 Procedural Texturing 85 | 4.17 Unique Textures 86 | 4.18 Textures as Lookup Tables for Per-Pixel Lighting Computations 87 | 4.19 Rendering with Handcrafted Shading Models 88 | 89 | ## Game Programming Gems 4 90 | 91 | ### Section 5 Graphics 92 | 5.1 Poster Quality Screenshots 93 | 5.2 GPU Shadow Volume Construction for Nonclosed Meshes 94 | 5.3 Perspective Shadow Maps 95 | 5.4 Combined Depth and ID-Based Shadow Buffers 96 | 5.5 Carving Static Shadows into Geometry 97 | 5.8 Techniques to Apply Team Colors to 3D Models 98 | 5.9 Fast Sepia Tone Conversion 99 | 5.10 Dynamic Gamma Using Sampled Scene Luminance 100 | 5.11 Heat and Haze Post-Processing Effects 101 | 5.13 Motion Capture Data Compression 102 | 5.14 Fast Collision Detection for 3D Bones-Based Articulated Characters 103 | 5.15 Terrain Occlusion Culling with Horizons 104 | 105 | ## Game Programming Gems 5 106 | 107 | ### Section 5 Graphics 108 | 5.1 Realistic Cloud Rendering on Modern GPUs 109 | 5.2 Let It Snow, Let It Snow, Let It Snow (and Rain) 110 | 5.3 Widgets: Rendering Fast and Persistent Foliage 111 | 5.4 2.5 Dimensional Impostors for Realistic Trees and Forests 112 | 5.5 Gridless Controllable Fire 113 | 5.6 Powerful Explosion Effects Using Billboard Particles 114 | 5.7 A Simple Method for Rendering Gemstones 115 | 5.8 Volumetric Post-Processing 116 | 5.9 Procedural Level Generation 117 | 5.10 Recombinant Shaders 118 | 119 | ## Game Programming Gems 6 120 | 121 | ### Section 5 Graphics 122 | 5.1 Synthesis of Realistic Idle Motion for Interactive Characters 123 | 5.2 Spatial Partitioning Using an Adaptive Binary Tree 124 | 5.3 Enhanced Object Culling with (Almost) Oriented Bounding Boxes 125 | 5.4 Skin Splitting for Optimal Rendering 126 | 5.5 GPU Terrain Rendering 127 | 5.6 Interactive Fluid Dynamics and Rendering on the GPU 128 | 5.7 Fast Per-Pixel Lighting with Many Lights 129 | 5.8 Rendering Road Signs Sharply 130 | 5.9 Practical Sky Rendering for Games 131 | 5.10 High Dynamic Range Rendering Using OpenGL Frame Buffer Objects 132 | 133 | ## Game Programming Gems 7 134 | 135 | ### Section 5 Graphics 136 | 5.1. Advanced Particle Deposition 137 | 5.2. Reducing Cumulative Errors in Skeletal Animations 138 | 5.3. An Alternative Model for Shading of Diffuse Light for Rough Materials 139 | 5.4. High-Performance Subdivision Surfaces 140 | 5.5. Animating Relief Impostors Using Radial Basis Functions Textures 141 | 5.6. Clipmapping on SM1.1 and Higher 142 | 5.7. An Advanced Decal System 143 | 5.8. Mapping Large Textures for Outdoor Terrain Rendering 144 | 5.9. Art-Based Rendering with Graftal Imposters 145 | 5.10. Cheap Talk: Dynamic Real-Time Lipsync 146 | 147 | ## Game Programming Gems 8 148 | 149 | ### Section 1 Graphics 150 | 1.1 Fast Font Rendering with Instancing 151 | 1.2 Principles and Practice of Screen Space Ambient Occlusion 152 | 1.3 Multi-Resolution Deferred Shading 153 | 1.4 View Frustum Culling of Catmull-Clark Patches in DirectX 11 154 | 1.5 Ambient Occlusion Using DirectX Compute Shader 155 | 1.6 Eye-View Pixel Anti-Aliasing for Irregular Shadow Mapping 156 | 1.7 Overlapped Execution on Programmable Graphics Hardware 157 | 1.8 Techniques for Effective Vertex and Fragment Shading on the SPUs 158 | 159 | # Game Engine Gems 160 | 161 | ## Game Engine Gems, Volume 1 162 | 163 | ### Part II — Rendering Techniques 164 | 15. Physically-Based Outdoor Scene Lighting 165 | 16. Rendering Physically-Based Skyboxes 166 | 17. Motion Blur and the Velocity-Depth-Gradient Buffer 167 | 18. Fast Screen-space Ambient Occlusion and Indirect Lighting 168 | 19. Real-Time Character Dismemberment 169 | 20. A Deferred Decal Rendering Technique 170 | 171 | 172 | ## Game Engine Gems, Volume 2 173 | 174 | ### Part I — Graphics and Rendering 175 | 1. Fast Computation of Tight-Fitting Oriented Bounding Boxes 176 | 2. Modeling, Lighting, and Rendering Techniques for Volumetric Clouds 177 | 3. Simulation of Night-Vision and Infrared Sensors 178 | 4. Screen-Space Classification for Efficient Deferred Shading 179 | 5. Delaying OpenGL Calls 180 | 6. A Framework for GLSL Engine Uniforms 181 | 7. A Spatial and Temporal Coherence Framework for Real-Time Graphics 182 | 8. Implementing a Fast Diffusion DOF Solver 183 | 9. Automatic Dynamic Stereoscopic 3D 184 | 10. Practical Stereo Rendering 185 | 11. Making 3D Stereoscopic Games 186 | 12. A Generic Multi-View Rendering Engine Architecture 187 | 13. 3D in a Web Browser 188 | 14. 2D Magic 189 | 190 | ## Game Engine Gems, Volume 3 191 | 192 | ### Part I — Graphics and Rendering 193 | 1. The Open Game Engine Exchange Format 194 | 2. Realistic Blending of Skies, Water, and Terrain 195 | 3. Fog with a Linear Density Function 196 | 4. Vegetation Management in Leadwerks Game Engine 4 197 | 5. Smooth Horizon Mapping 198 | 6. Buffer-Free Generation of Triangle Strip Cube Vertices 199 | 7. Edge-Preserving Smoothing Filter for Particle Based Rendering 200 | 8. Variable Precision Pixel Shading for Improved Power Efficiency 201 | 9. A Fast and High-Quality Texture Atlasing Algorithm 202 | 203 | # Insights 204 | 205 | ## OpenGL Insights 206 | 207 | Teaching Computer Graphics Starting with Shader-Based OpenGL 208 | Transitioning Students to Post-Deprecation OpenGL 209 | WebGL for OpenGL Developers 210 | Porting Mobile Apps to WebGL 211 | The GLSL Shader Interfaces 212 | An Introduction to Tessellation Shaders 213 | Procedural Textures in GLSL 214 | OpenGL SC Emulation Based on OpenGL and OpenGL ES 215 | Mixing Graphics and Compute with Multiple GPUs 216 | GPU Tessellation: We Still Have a LOD of Terrain to Cover 217 | Antialiased Volumetric Lines Using Shader-Based Extrusion 218 | 2D Shape Rendering by Distance Fields 219 | Efficient Text Rendering in WebGL 220 | Layered Textures Rendering Pipeline 221 | Depth of Field with Bokeh Rendering 222 | Real-Time Physically Based Deformation Using Transform Feedback 223 | Hierarchical Depth Culling and Bounding-Box Management on the GPU 224 | Massive Number of Shadow-Casting Lights with Layered Rendering 225 | Efficient Layered Fragment Buffer Techniques 226 | Programmable Vertex Pulling 227 | Octree-Based Sparse Voxelization Using the GPU Hardware Rasterizer 228 | Performance Tuning for Tile-Based Architectures 229 | Exploring Mobile vs. Desktop OpenGL Performance 230 | Improving Performance by Reducing Calls to the Driver 231 | Indexing Multiple Vertex Arrays 232 | Multi-GPU Rendering on NVIDIA Quadro 233 | Asynchronous Buffer Transfers 234 | Fermi Asynchronous Texture Transfers 235 | WebGL Models: End-to-End 236 | In-Game Video Capture with Real-Time Texture Compression 237 | An OpenGL-Friendly Geometry File Format and Its Maya Exporter 238 | ARB_debug_output: A Helping Hand for Desperate Developers 239 | The OpenGL Timer Query 240 | A Real-Time Profiling Tool 241 | Browser Graphics Analysis and Optimizations 242 | Performance State Tracking 243 | Monitoring Graphics Memory Usage 244 | The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D 245 | SceneJS: A WebGL-Based Scene Graph Engine 246 | Features WebGL and Design Choices in SpiderGL 247 | Multimodal Interactive Simulations on the Web 248 | A Subset Approach to Using OpenGL and OpenGL ES 249 | Jesse Barker, Alexandros Frantzis 250 | The Build Syndrome 251 | 252 | ## WebGL Insights 253 | 254 | ANGLE: A Desktop Foundation for WebGL 255 | Mozilla's Implementation of WebGL 256 | Continuous Testing of Chrome's WebGL Implementation 257 | Getting Serious with JavaScript 258 | Emscripten & WebGL 259 | Data Visualization with WebGL: from Python to JavaScript 260 | Teaching an Introductory Computer Graphics Course with WebGL 261 | Bug-Free and Fast Mobile WebGL 262 | WebGL Engine Design in Babylon.js 263 | Rendering Optimizations in the Turbulenz Engine 264 | Performance and Rendering Algorithms in Blend4Web 265 | Sketchfab Material Pipeline: From File Variations to Shader Generation 266 | glslify: A module system for GLSL 267 | Budgeting Frame Time 268 | Deferred Shading in Luma 269 | HDR Image-Based Lighting on the Web 270 | Real-Time Volumetric Lighting for WebGL 271 | Terrain Geometry – LOD Adapting Concentric Rings 272 | Data Visualization Techniques with WebGL 273 | hare3d - Rendering Large Models in the Browser 274 | The BrainBrowser Surface Viewer: WebGL-based Neurological Data Visualization 275 | Usability of WebGL Applications 276 | Designing Cameras for WebGL Applications 277 | 278 | # GPU Gems 279 | 280 | ## GPU Gems 1 281 | 282 | ### Part I: Natural Effects 283 | Chapter 1. Effective Water Simulation from Physical Models 284 | Chapter 2. Rendering Water Caustics 285 | Chapter 3. Skin in the "Dawn" Demo 286 | Chapter 4. Animation in the "Dawn" Demo 287 | Chapter 5. Implementing Improved Perlin Noise 288 | Chapter 6. Fire in the "Vulcan" Demo 289 | Chapter 7. Rendering Countless Blades of Waving Grass 290 | Chapter 8. Simulating Diffraction 291 | ### Part II: Lighting and Shadows 292 | Chapter 9. Efficient Shadow Volume Rendering 293 | Chapter 10. Cinematic Lighting 294 | Chapter 11. Shadow Map Antialiasing 295 | Chapter 12. Omnidirectional Shadow Mapping 296 | Chapter 13. Generating Soft Shadows Using Occlusion Interval Maps 297 | Chapter 14. Perspective Shadow Maps: Care and Feeding 298 | Chapter 15. Managing Visibility for Per-Pixel Lighting 299 | ### Part III: Materials 300 | Chapter 16. Real-Time Approximations to Subsurface Scattering 301 | Chapter 17. Ambient Occlusio 302 | Chapter 18. Spatial BRDFs 303 | Chapter 19. Image-Based Lighting 304 | Chapter 20. Texture Bombing 305 | ### Part IV: Image Processing 306 | Chapter 21. Real-Time Glow 307 | Chapter 22. Color Controls 308 | Chapter 23. Depth of Field: A Survey of Techniques 309 | Chapter 24. High-Quality Filtering 310 | Chapter 25. Fast Filter-Width Estimates with Texture Maps 311 | Chapter 26. The OpenEXR Image File Format 312 | Chapter 27. A Framework for Image Processing 313 | ### Part V: Performance and Practicalities 314 | Chapter 28. Graphics Pipeline Performance 315 | Chapter 29. Efficient Occlusion Culling 316 | Chapter 30. The Design of FX Composer 317 | Chapter 31. Using FX Composer 318 | Chapter 32. An Introduction to Shader Interfaces 319 | Chapter 33. Converting Production RenderMan Shaders to Real-Time 320 | Chapter 34. Integrating Hardware Shading into Cinema 4D 321 | Chapter 35. Leveraging High-Quality Software Rendering Effects in Real-Time Applications 322 | Chapter 36. Integrating Shaders into Applications 323 | ### Part VI: Beyond Triangles 324 | Chapter 37. A Toolkit for Computation on GPUs 325 | Chapter 38. Fast Fluid Dynamics Simulation on the GPU 326 | Chapter 39. Volume Rendering Techniques 327 | Chapter 40. Applying Real-Time Shading to 3D Ultrasound Visualization 328 | Chapter 41. Real-Time Stereograms 329 | Chapter 42. Deformers 330 | 331 | ## GPU Gems 2 332 | 333 | ### Part I: Geometric Complexity 334 | Chapter 1. Toward Photorealism in Virtual Botany 335 | Chapter 2. Terrain Rendering Using GPU-Based Geometry Clipmaps 336 | Chapter 3. Inside Geometry Instancing 337 | Chapter 4. Segment Buffering 338 | Chapter 5. Optimizing Resource Management with Multistreaming 339 | Chapter 6. Hardware Occlusion Queries Made Useful 340 | Chapter 7. Adaptive Tessellation of Subdivision Surfaces with Displacement Mapping 341 | Chapter 8. Per-Pixel Displacement Mapping with Distance Functions 342 | ### Part II: Shading, Lighting, and Shadows 343 | Chapter 9. Deferred Shading in S.T.A.L.K.E.R. 344 | Chapter 10. Real-Time Computation of Dynamic Irradiance Environment Maps 345 | Chapter 11. Approximate Bidirectional Texture Functions 346 | Chapter 12. Tile-Based Texture Mapping 347 | Chapter 13. Implementing the mental images Phenomena Renderer on the GPU 348 | Chapter 14. Dynamic Ambient Occlusion and Indirect Lighting 349 | Chapter 15. Blueprint Rendering and "Sketchy Drawings" 350 | Chapter 16. Accurate Atmospheric Scattering 351 | Chapter 17. Efficient Soft-Edged Shadows Using Pixel Shader Branching 352 | Chapter 18. Using Vertex Texture Displacement for Realistic Water Rendering 353 | Chapter 19. Generic Refraction Simulation 354 | ### Part III: High-Quality Rendering 355 | Chapter 20. Fast Third-Order Texture Filtering 356 | Chapter 21. High-Quality Antialiased Rasterization 357 | Chapter 22. Fast Prefiltered Lines 358 | Chapter 23. Hair Animation and Rendering in the Nalu Demo 359 | Chapter 24. Using Lookup Tables to Accelerate Color Transformations 360 | Chapter 25. GPU Image Processing in Apple's Motion 361 | Chapter 26. Implementing Improved Perlin Noise 362 | Chapter 27. Advanced High-Quality Filtering 363 | Chapter 28. Mipmap-Level Measurement 364 | ### Part IV: General-Purpose Computation on GPUS: A Primer 365 | Chapter 29. Streaming Architectures and Technology Trends 366 | Chapter 30. The GeForce 6 Series GPU Architecture 367 | Chapter 31. Mapping Computational Concepts to GPUs 368 | Chapter 32. Taking the Plunge into GPU Computing 369 | Chapter 33. Implementing Efficient Parallel Data Structures on GPUs 370 | Chapter 34. GPU Flow-Control Idioms 371 | Chapter 35. GPU Program Optimization 372 | Chapter 36. Stream Reduction Operations for GPGPU Applications 373 | ### Part V: Image-Oriented Computing 374 | Chapter 37. Octree Textures on the GPU 375 | Chapter 38. High-Quality Global Illumination Rendering Using Rasterization 376 | Chapter 39. Global Illumination Using Progressive Refinement Radiosity 377 | Chapter 40. Computer Vision on the GPU 378 | Chapter 41. Deferred Filtering: Rendering from Difficult Data Formats 379 | Chapter 42. Conservative Rasterization 380 | ### Part VI: Simulation and Numerical Algorithms 381 | Chapter 43. GPU Computing for Protein Structure Prediction 382 | Chapter 44. A GPU Framework for Solving Systems of Linear Equations 383 | Chapter 45. Options Pricing on the GPU 384 | Chapter 46. Improved GPU Sorting 385 | Chapter 47. Flow Simulation with Complex Boundaries 386 | Chapter 48. Medical Image Reconstruction with the FFT 387 | 388 | ## GPU Gems 3 389 | 390 | ### Part I: Geometry 391 | Chapter 1. Generating Complex Procedural Terrains Using the GPU 392 | Chapter 2. Animated Crowd Rendering 393 | Chapter 3. DirectX 10 Blend Shapes: Breaking the Limits 394 | Chapter 4. Next-Generation SpeedTree Rendering 395 | Chapter 5. Generic Adaptive Mesh Refinement 396 | Chapter 6. GPU-Generated Procedural Wind Animations for Trees 397 | Chapter 7. Point-Based Visualization of Metaballs on a GPU 398 | ### Part II: Light and Shadows 399 | Chapter 8. Summed-Area Variance Shadow Maps 400 | Chapter 9. Interactive Cinematic Relighting with Global Illumination 401 | Chapter 10. Parallel-Split Shadow Maps on Programmable GPUs 402 | Chapter 11. Efficient and Robust Shadow Volumes Using Hierarchical Occlusion Culling and Geometry Shaders 403 | Chapter 12. High-Quality Ambient Occlusion 404 | Chapter 13. Volumetric Light Scattering as a Post-Process 405 | ### Part III: Rendering 406 | Chapter 14. Advanced Techniques for Realistic Real-Time Skin Rendering 407 | Chapter 15. Playable Universal Capture 408 | Chapter 16. Vegetation Procedural Animation and Shading in Crysis 409 | Chapter 17. Robust Multiple Specular Reflections and Refractions 410 | Chapter 18. Relaxed Cone Stepping for Relief Mapping 411 | Chapter 19. Deferred Shading in Tabula Rasa 412 | Chapter 20. GPU-Based Importance Sampling 413 | ### Part IV: Image Effects 414 | Chapter 21. True Impostors 415 | Chapter 22. Baking Normal Maps on the GPU 416 | Chapter 23. High-Speed, Off-Screen Particles 417 | Chapter 24. The Importance of Being Linear 418 | Chapter 25. Rendering Vector Art on the GPU 419 | Chapter 26. Object Detection by Color: Using the GPU for Real-Time Video Image Processing 420 | Chapter 27. Motion Blur as a Post-Processing Effect 421 | Chapter 28. Practical Post-Process Depth of Field 422 | ### Part V: Physics Simulation 423 | Chapter 29. Real-Time Rigid Body Simulation on GPUs 424 | Chapter 30. Real-Time Simulation and Rendering of 3D Fluids 425 | Chapter 31. Fast N-Body Simulation with CUDA 426 | Chapter 32. Broad-Phase Collision Detection with CUDA 427 | Chapter 33. LCP Algorithms for Collision Detection Using CUDA 428 | Chapter 34. Signed Distance Fields Using Single-Pass GPU Scan Conversion of Tetrahedra 429 | Chapter 35. Fast Virus Signature Matching on the GPU 430 | ### Part VI: GPU Computing 431 | Chapter 36. AES Encryption and Decryption on the GPU 432 | Chapter 37. Efficient Random Number Generation and Application Using CUDA 433 | Chapter 38. Imaging Earth's Subsurface Using CUDA 434 | Chapter 39. Parallel Prefix Sum (Scan) with CUDA 435 | Chapter 40. Incremental Computation of the Gaussian 436 | Chapter 41. Using the Geometry Shader for Compact and Variable-Length GPU Feedback 437 | 438 | # ShaderX 439 | 440 | ## Shaderx 1 Vertex and Pixel Shader Tips and Tricks 441 | 442 | ### Part 1: Introduction to Shader Programming 443 | ### Part 2: Vertex Shader Tricks 444 | Vertex Decompression in a Shader 445 | Shadow Volume Extrusion Using a Vertex Shader 446 | Character Animation with Direct3D Vertex Shaders 447 | Lighting a Single-Surface Object 448 | Optimizing Software Vertex Shaders 449 | Compendium of Vertex Shader Tricks 450 | Perlin Noise and Returning Results from Shader Programs 451 | ### Part 3: Pixel Shader Tricks 452 | Blending Textures for Terrain 453 | Image Processing with 1.4 Pixel Shaders in Direct3D 454 | Hallo World -- Font Smoothing with Pixel Shaders 455 | Emulating Geometry with Shaders -- Imposters 456 | Smooth Lighting with ps.1.4 457 | Per-Pixel Fresnel Term 458 | Diffuse Cube Mapping 459 | Accurate Reflections and Refractions 460 | UV Flipping Technique to Avoid Repetition 461 | Photorealistic Faces with Vertex and Pixel Shaders 462 | Non-Photorealistic Rendering with Pixel and Vertex Shaders 463 | Animated Grass with Pixel and Vertex Shaders 464 | Texture Perturbation Effects 465 | Rendering Ocean Water 466 | Rippling Reflective and Refractive Water 467 | Crystal/Candy Shader 468 | Bubble Shader 469 | Per-Pixel Strand-Based Anisotropic Lighting 470 | A Non-Integer Power Function on the Pixel Shader 471 | Bump Mapped BRDF Rendering 472 | Real-Time Simulation and Rendering of Particle Flows 473 | ### Part 4: Using 3D Textures with Shaders 474 | 3D Textures and Pixel Shaders 475 | Truly Volumetric Effects 476 | ### Part 5: Engine Design with Shaders 477 | First Thoughts on Designing a Shader-Driven Game Engine 478 | Visualization with the Krass Game Engine 479 | Designing a Vertex Shader-Driven 3D Engine for the Quake III Format 480 | 481 | ## ShaderX2 - Introductions and Tutorials with DirectX9 482 | 483 | Introduction to the DirectX High Level Shading Language 1 484 | Introduction to the vs_3_0 and ps_3_0 Shader Models 485 | Advanced Lighting and Shading with Direct3D 9 486 | Introduction to Different Fog Effects 487 | Shadow Mapping with Direct3D 9 488 | The Theory of Stencil Shadow Volumes 489 | Shader Development Using RenderMonkey 490 | Tips for Creating Shader-Friendly 3D Models 491 | 492 | ## ShaderX2 Shader Programming Tips Tricks with DirectX9 493 | ### Section I - Geometry Manipulation Tricks 494 | Using Vertex Shaders for Geometry Compression 495 | Using Lookup Tables in Vertex Shaders 496 | Terrain Geomorphing in the Vertex Shader 497 | 3D Planets on the GPU 498 | Cloth Animation with Pixel and Vertex Shader 499 | Collision Shaders 500 | Displacement Mapping 501 | ### Section II - Rendering Techniques 502 | Rendering Objects as Thick Volumes 503 | Screen-aligned Particles with Minimal VertexBuffer Locking 504 | Hemisphere Lighting with Radiosity Maps 505 | Galaxy Textures 506 | Turbulent Sun 507 | Fragment-level Phong Illumination 508 | Specular Bump Mapping on Pre-ps_1_4 Hardware 509 | Voxel Rendering with PS_3_0 161 510 | Simulating Blending Operations on Floating-point Render Targets 511 | Rendering Volumes in a Vertex & Pixel Program by Ray Tracing 512 | Normal Map Compression 513 | Drops of Water and Texture Sprites 514 | Advanced Water Effects 515 | Efficient Evaluation of Irradiance Environment Maps 516 | Practical Precomputed Radiance Transfer 517 | Advanced Sky Dome Rendering 518 | Deferred Shading with Multiple Render Targets 519 | Meshuggah*s Effects Explained 520 | Layered Car Paint Shader 521 | Motion Blur Using Geometry and Shading Distortion 522 | Simulation of Iridescence and Translucency on Thin Surfaces 523 | Floating-point Cube Maps 524 | Stereoscopic Rendering in Hardware Using Shaders 525 | Hatching, Stroke Styles, and Pointillism 526 | Layered Fog 527 | Dense Matrix Algebra on the GPU 528 | ### Section III - Software Shaders and Shader Programming Tips 529 | Software Vertex Shader Processing 530 | x86 Shaders-ps_2_0 Shaders in Software 531 | SoftD3D: A Software-only Implementation of Microsoft*s Direct3D API 532 | Named Constants in Shader Development 533 | ### Section IV - Image Space 534 | Advanced Image Processing with DirectX 9 Pixel Shaders 535 | Night Vision: Frame Buffer Post-processing with ps.1.1 Hardware 536 | Non-Photorealistic Post-processing Filters in MotoGP 2 537 | Image Effects with DirectX 9 Pixel Shaders 538 | Using Pixel Shaders to Implement a Mosaic Effect Using Character Glyphs 539 | Mandelbrot Set Rendering 540 | Real-Time Depth of Field Simulation 541 | ### Section V - Shadows 542 | Soft Shadows 543 | Robust Object ID Shadows 544 | Reverse Extruded Shadow Volumes 545 | ### Section VI - 3D Engine and Tools Design 546 | Shader Abstraction 547 | Post-Process Fun with Effects Buffers 548 | Shaders under Control (Codecreatures Engine) 549 | Shader Integration in the Gamebryo Graphics Engine 550 | Vertex Shader Compiler 551 | Shader Disassembler 552 | 553 | ## ShaderX 3 554 | ## Section 1 - Introduction and Geometry Manipulation 555 | 1.1 Accessing and modifying topology on the GPU 556 | 1.2 Rendering of Complex Formulas 557 | 1.3 Deforming of Mesh Objects using HLSL 558 | 1.4 Morphing between two different Objects 559 | 1.5 Silhouette Geometry Shaders 560 | 1.6 GLSL Real-time Shader Development 561 | ## Section 2 - Rendering Techniques 562 | 2.1 Parallax Mapping 563 | 2.2 Deferred Lighting on PS 3.0 with High Dynamic Range 564 | 2.3 Reflections from Bumpy Surfaces 565 | 2.4 Massively Parallel Particle Systems on the GPU 566 | 2.5 Parallax Occlusion Mapping: Self-Shadowing, Perspective-Correct Bump Mapping Using Reverse Height Map Tracing 567 | 2.6 Improved Batching Via Texture Atlases 568 | 2.7 A Simulation of Thermal Imaging 569 | 2.8 Real-Time Texture-Space Skin Rendering 570 | 2.9 Dot3 Cel Shading 571 | 2.10 Hardware Accelerated Charcoal Rendering 572 | 2.11 Detail Texture Motion Blur 573 | 2.12 Animation and display of water 574 | 2.13 Rendering Semitransparent Layered Media 575 | 2.14 Hair Rendering and Shading 576 | 2.15 Reduction of lighting calculations using Spherical Harmonics 577 | ## Section 3 - Software Shaders and Shader Programming Tips 578 | 3.1 Optimizing Dx9 Vertex Shaders for Software Vertex Processing 579 | 3.2 Software Shaders and DirectX DLL Implementation 580 | 3.3 Tactical Path-Finding using Stochastic Maps on the GPU 581 | 3.4 FX Composer 1.5 Standardization 582 | ## Section 4 - Image Space 583 | 4.1 A Steerable Streak Filter 584 | 4.2 Adaptive Glare 585 | 4.3 Color Grading 586 | 4.4 Improved Depth of Field Rendering 587 | 4.5 Lighting Precomputation Using the Relighting Map 588 | 4.6 Shaderey - NPR Style Rendering 589 | ## Section 5 - Shadows 590 | 5.1 Poisson Shadow Blur 591 | 5.2 Fractional-Disk Soft Shadows 592 | 5.3 Fake Soft Shadows Using Precomputed Visibility Distance Functions 593 | 5.4 Efficient Omnidirectional Shadow Maps 594 | ## Section 6 - 3D Engine Design 595 | 6.1 An Extensible Direct3D Resource Management System 596 | 6.2 Integrating Shaders into the Vision Rendering Engine 597 | 6.3 Effect Parameters Manipulation Framework 598 | 6.4 Shader Visualization Systems for The Art Pipeline 599 | 6.5 Drawing a Crowd 600 | ## Section 7 -Tools Environmental Effects 601 | 7.1 In-Depth Performance Analyses of DirectX9 Shading Hardware concerning Pixel Shader and Texture Performance 602 | 7.2 Shaderbreaker 603 | 7.3 Generating Shaders From HLSL Fragments 604 | ## Section 8 - Environmental Effects 605 | 8.1 Light Shaft Rendering 606 | 8.2 Rendering Rainbows 607 | 8.3 A Practical Analytic Model for Daylight with Shaders 608 | 8.4 Volumetric Clouds 609 | 610 | ## ShaderX 4 611 | 612 | ### Section 1 - Geometry Manipulation 613 | 1.1 Better geometry batching using light buffers 614 | 1.2 Practical Cloth Simulation for Modern GPU 615 | 1.3 Shader Implementation of Discrete Wavelet Transform 616 | 1.4 Morph Target Animation 617 | 1.5 Real-Time Character Animation on the GPU 618 | 1.6 Skinning with AniTextures 619 | ### Section 2 - Rendering Techniques 620 | 2.1 Interlaced Rendering 621 | 2.2 Triangle mesh tangent space calculation 622 | 2.3 Hardware-Based Ambient Occlusion 623 | 2.4 Ambient Occlusion Fields 624 | 2.5 Rendering Surface Details with Relief Mapping 625 | 2.6 Real-time Obscurances with Color Bleeding 626 | 2.7 Bump My Shiny Metal 627 | 2.8 Fog Volumes 628 | 2.9Dynamical global illuminations using an environment map 629 | 2.10 Real-time Rendering and Simulation of the Airbrush Media for Metallic Appearance 630 | 2.11 Dynamic Glossy Environment Reflections Using Summed-Area Tables 631 | 2.12 Real-time caustics by GPU 632 | 2.13 Dot-Product for efficient detail texture mapping 633 | 2.14 Real-Time Environment Mapping with Equal Solid-Angle Spherical Quad-Map 634 | 2.15 Reflective Shadow Maps 635 | ### Section 3 - Image Space 636 | 3.1 Texture Compression with Coefficient Domain Shaders 637 | 3.2 Motion Blurring Environment Maps 638 | 3.3 Simulating the Visual Effects of a Video Recording System 639 | 4.1 Soft Projected Shadows 640 | 4.2 Eliminate surface acne with gradient shadow mapping 641 | 4.3 Real-time soft shadows using the PDSM technique 642 | 4.4 Robust Shadow Mapping with Light-Space Perspective Shadow Maps 643 | 4.5 Shadowbuffer Frustum Partitioning 644 | ### Section 5 - 3D Engine Design 645 | 5.1 Tips and Tricks for D3DX Effects Based Renderer 646 | 5.2 Post-Processing Effects using DXSAS 647 | 5.3Case Study: Designing a Shader-Subsystem for a Next-Gen Graphics Engine 648 | ### Section 6 - Beyond Pixels and Triangles 649 | 6.1 Real-time damage deformation methods 650 | 6.2 Ray Tracing Effects without Tracing Rays 651 | 6.3 Implementing Ray-Tracing on the GPU 652 | 6.4 GPU powered path-finding using precomputed Navigation Mesh approach 653 | ### Section 7 - Environmental Effects 654 | 7.1 Winter Wonderland 655 | 7.2 Rendering Snow Cover 656 | 7.3 Cached Procedural Textures for Terrain Rendering 657 | 7.4 A Dynamic Sky System 658 | 7.5 True-to-life Real-time Animation of Shallow Water on Today s GPUs 659 | ### Section 8 - Tools 660 | 8.1 The SuperShader 661 | 8.2 Implementing Radiosity for a Light map Precomputation Tool 662 | 8.3 Indicator Materials 663 | 8.4 Dynamic Branching on non-ps_3_0 Graphics Hardware 664 | 8.5 GLSL Shader Debugging with GLIntercept 665 | 8.6 GPU Performance of DirectX 9 Per-Fragment Operations Revisited 666 | 667 | ## ShaderX5- Advanced Rendering Techniques 668 | ### Section 1 - Geometry Manipulation 669 | 1.1 Smoothed N-Patches 670 | 1.2 Micro-beveled Edges 671 | 1.3 Dynamic Wrinkle Patterns and Hatching on Animated Meshes 672 | 1.4 Cloth without Cloth 673 | ### Section 2 - Rendering Techniques 674 | 2.1 ASimple Area Light Model for GPUs 675 | 2.2 Alpha-to-coverage in Depth 676 | 2.3 Dynamic Parallax Occlusion Mapping with Soft Shadows 677 | 2.4 Pre-Processing of Complex, Static Scenes for Fast Real Time Graphics 678 | 2.5 Overcoming Deferred Shading Drawbacks 679 | 2.6 Normal Mapping without Pre-Computed Tangents 680 | 2.7 Animating Vegetation Using GPU Programs 681 | 2.8 ZT-Buffer Algorithm 682 | ### Section 3 - Image Space 683 | 3.1 Real-Time Depth-of-Field Implemented with a Post-Processing only Technique 684 | 3.2 Selective Supersampling 685 | 3.3 Jump Flooding - An Efficient and Effective Communication on GPU 686 | ### Section 4 - Shadows 687 | 4.1 Cascaded Shadow Maps 688 | 4.2 Multisampling Extension for Gradient Shadow Maps 689 | 4.3 Alias-free Hard Shadows with Geometry Maps 690 | 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Computation Culling During Shadow Mapping 691 | 4.5 Queried Virtual Shadow Maps 692 | 4.6 Real-time Soft Shadows with Shadow Accumulation 693 | ### Section 5 - Environmental Effects 694 | 5.1 Spherical Billboards for Rendering Volumetric Data 695 | 5.2 Per-Pixel Lit, Light Scattering Smoke 696 | 5.3 Volumetric Clouds and Mega Particles 697 | 5.4 Rendering Multiple Layers of Rain with a Post-Processing Composite Effect 698 | 5.5 Animation and Rendering of Underwater God Rays 699 | ### Section 6 - Global Illumination Effects 700 | 6.1Irradiance Volumes for Real Time Rendering 701 | 6.2 Indirect Diffuse and Glossy Illumination on the GPU 702 | 6.3 Interactive Refractions and Caustics Using Image-Space Techniques 703 | 6.4 Splatting of Diffuse and Glossy Indirect Illumination 704 | ### Section 7 - Mobile Devices 705 | 7.1 OpenGL ES 2.0 Shaders forMobileDevices 706 | 7.2 OpenGL ES 2.0 Engine 707 | 7.3 OpenGL ES 2.0 Performance Recommendations forMobileDevices 708 | 7.4 Real-time Tile based Texture Synthesis Using Non-rectangular Grids 709 | 7.5 Cartoon Fire Effects Using OpenGL ES 2.0 710 | ### Section 8 - 3D Engine Design 711 | 8.1 Post-Processing Effects in Design 712 | 8.2 Transparent Shader Data-Binding 713 | 8.3 Designing Plug-in Shaders with HLSL 714 | 8.4 Shader System Integration: Nebula2 and 3ds Max 715 | ### Section 9 - Beyond Pixels and Triangles 716 | 9.1 Large crowds of autonomous animated characters using fragment shaders and level of detail 717 | 9.2 Interactive Image Segmentation Based on GPU Cellular Automata 718 | 9.3 Real-time Cellular Texturing 719 | 9.4 Collision Detection Shader Using Cube-Maps 720 | 9.5 AGPU Panorama Viewer for Generic Camera Models 721 | 9.6 Explicit Early-Z Culling for Efficient Fluid Flow Simulation 722 | 9.7 Storing and Accessing Topology on the GPU: A Case Study on Mass-Spring Systems 723 | 9.8 Implementing High-Quality PRNG on GPU 724 | 9.9 Printf shader for debugging pixel shaders 725 | 726 | ## ShaderX6- Advanced Rendering Techniques 727 | 728 | ### 1. Geometry Manipulation 729 | 1.1 Fast Evaluation of Subdivision Surfaces on Direct3D 10 Graphics Hardware 730 | 1.2 Improved Appearance Variety for Geometry Instancing 731 | 1.3 Implementing Real-Time Mesh Simplification Using Programmable Geometry Pipeline on GPU 732 | ### 2.Rendering Techniques 733 | 2.1 Care and Feeding of Normal Vectors 734 | 2.2 Computing Per-Pixel Object Thickness in a Single Render Pass 735 | 2.3 Filtered Tilemaps 736 | 2.4 Parallax Occlusion Mapping Special Feature Rendering 737 | 2.5 Uniform Cubemap for Dynamic Environments 738 | 2.6 Isocube A Cubemap with Uniformly Distributed and Equally Important Texels 739 | 2.7 Practical Geometry Clipmaps for Rendering Terrains in Computer Games 740 | 2.8 Efficient and Practical TileTrees 741 | 2.9 Quantized Ring Clipping 742 | ### 3.Image Space 743 | 3.1 GPU-Based Active Contours for Real-Time Object Tracking 744 | 3.2 Post-tonemapping resolve for high quality HDR antialiasing in D3D10 745 | 3.3 A Fast, Small-Radius GPU Median Filter 746 | 3.4 Per-pixel Motion Blur for Wheels 747 | 3.5 Deferred Rendering using a Stencil Routed K-Buffer 748 | 3.6 HDR meets Black&White 2 749 | 3.7 Robust Order-Independent Transparency via Reverse Depth Peeling in DirectX 10 750 | ### 4.Shadows 751 | 4.1Stable rendering of cascaded shadow maps 752 | 4.2 Approximate Cumulative Distribution Function Shadow Mapping 753 | 4.3 Rendering Filtered Shadows with Exponential Shadow Maps 754 | 4.4 Fitted Virtual Shadow Maps and Shadow Fog 755 | 4.5 Removing Shadow Volume Artifacts 756 | ### 5 Environmental Effects 757 | 5.1 Rendering Realistic Ice Objects 758 | 5.2 Sunlight with Volumetric Light Rays 759 | 5.3 Procedural Ocean Effects 760 | ### 6 Global Illumination 761 | 6.1 Practical Methods for a PRT-based Shader Using Spherical Harmonics 762 | 6.2 Incremental Instant Radiosity 763 | 6.3 Real Time Photon Mapping Approximation on the GPU 764 | 6.4 Interactive Global Illumination with Precomputed Radiance Maps 765 | ### 7 Handheld Devices 766 | 7.1 Shaders Gone Mobile Porting from Direct3D 9.0 to Open GL ES 2.0 767 | 7.2 Efficiently Using Tile-Based GPUs on Mobile Phones 768 | 7.3 Maximal Performance and Image Quality with Minimal Precision 769 | 7.4 Implementing Graphical Benchmark in OpenGL ES 2.0 770 | 7.5 Every Cycle Counts Level of Detail Shaders 771 | 7.6 Shadow Techniques for OpenGL ES 2.0 772 | ### 8 3D Engine Design 773 | 8.1 A Flexible Material System in Design 774 | 8.2 3D Engine Tools with C++CLI 775 | 8.3 Efficient HDR Texture Compression 776 | ### 9 Beyond Pixels & Triangles 777 | 9.1 An Interactive Tour of Voronoi Diagrams on the GPU 778 | 9.2 AMD DirectX 10 Performance Tools and Techniques 779 | 9.3 Real-Time Audio Processing on the GPU 780 | 9.4 n-Body Simulations on the GPU 781 | 782 | ## ShaderX7 - Advanced Rendering Techniques 783 | ### Section 1 Geometry Manipulation 784 | 1.1 Scalar to Polygonal Extracting Isosurfaces Using Geometry Shaders 785 | 1.2 Fast Tessellation of Quadrilateral Patches for Dynamic Level of Details 786 | 1.3 Dynamic Terrain Rendering on GPU Using Real-Time Tessellation 787 | 1.4 Adaptive Re-Meshing for Displacement Mapping 788 | 1.5 Fast Tessellation of Quadrilateral Patches for Dynamic Level of Details 789 | ### Section 2 Rendering Techniques 790 | 2.1 Quick Noise for GPUs 791 | 2.2 Efficient Soft Particles 792 | 2.3 Simplified High Quality Anti-aliased Lines 793 | 2.4 Fast Skin Shading 794 | 2.5 An Efficient and Physically Plausible Real Time Shading Model 795 | 2.6 Graphics Techniques in Crackdown 796 | 2.7 Deferred Rendering Transparency 797 | 2.8 Deferred Shading with Multisampling Anti-Aliasing in DirectX 10 798 | 2.9 Light Indexed Deferred Rendering 799 | ### Section 3 Image Space 800 | 3.1 Efficient Post-processing with Importance Sampling 801 | 3.2 Efficient Real-Time Motion Blur for Multiple Rigid Objects 802 | 3.3 Real-time Flow-based Image Abstraction 803 | ### Section 4 Shadows 804 | 4.1 Practical Cascaded Shadow Maps 805 | 4.2 A Hybrid Method for Interactive Shadows in Homogeneous Media 806 | 4.3 Real-time dynamic shadows for image-based lighting 807 | 4.4 Facetted Shadow Mapping for Large Dynamic Game Environments 808 | Section 5 Environment Effects 809 | 5.1 Dynamic Weather Effects 810 | 5.2 Interactive Hydraulic Erosion on the GPU 811 | 5.3 Advanced Geometry for Complex Sky Representation 812 | ### Section 6 Global Illumination 813 | 6.1 Screen Space Ambient Occlusion 814 | 6.2 Image-Space Horizon-Based Ambient Occlusion 815 | 6.3 Deferred Occlusion from Analytic Surfaces 816 | 6.4 Fast Fake Global Illumination 817 | 6.5 Real-Time Subsurface Scattering using Shadow Maps 818 | 6.6 Instant radiosity with GPU photon tracing and approximate indirect shadows 819 | 6.7 Variance methods for Screen-Space Ambient Occlusion 820 | 6.7 Per-Pixel Ambient Occlusion using Geometry Shaders 821 | ### Section 7 Handheld Devices 822 | 7.1 Optimizing your first OpenGL ES Applications 823 | 7.2 Optimised Shaders for Advanced Graphical User Interfaces 824 | 7.3 Facial Animation for Mobile GPUs 825 | 7.4 Augmented Reality on Mobile Phones 826 | ### Section 8 3D Engine Design 827 | 8.1 Cross platform rendering thread: design and implementation 828 | 8.2 Advanced GUI system for games 829 | 8.3 Automatic Load Balancing Shader Framework 830 | 8.4 Game Engine Friendly Occlusion Culling 831 | 8.5 Designing a Renderer for Multiple Lights - The Light Pre-Pass Renderer 832 | 8.6 Using LUV color space with the Light Pre-Pass Renderer 833 | 8.7 Elemental Engine II 834 | ### Section 9 Beyond Pixels & Triangles 835 | 9.1 Sliced Grid: A Memory and Computationally Efficient Data Structure for Particle-based Simulation on the GPU 836 | 9.2 Free-Viewpoint Video on the GPU 837 | 9.3 A Volume Shader for Quantum Voronoi Diagrams inside the 3D Bloch Ball 838 | 9.4 Packing Arbitrary Bit Fields into 16-bit Floating-point Render Targets in DirectX10 839 | 9.5 Interactive Image Morphing Using Thin-Plate Spline 840 | 841 | # GPU Pro 842 | 843 | ## GPU Pro 1 844 | 845 | ### I Mathematics 846 | 1 GPU Color Quantization 847 | 2 Visualize Your Shadow Map Techniques 848 | ### II Geometry Manipulation 849 | 1 As Simple as Possible Tessellation for Interactive Applications 850 | 2 Rule-Based Geometry Synthesis in Real-Time 851 | 3 GPU-Based NURBS Geometry Evaluation and Rendering 852 | 4 Polygonal-Functional Hybrids for Computer Animation and Games 853 | ### III Rendering Techniques 854 | 1 Quadtree Displacement Mapping with Height Blending 855 | 2 NPR Effects Using the Geometry Shader 856 | 3 Alpha Blending as a Post-Process 857 | 4 Virtual Texture Mapping 101 858 | ### IV Global Illumination 859 | 1 Fast, Stencil-Based Multiresolution Splatting for Indirect Illumination 860 | 2 Screen-Space Directional Occlusion 861 | 3 Real-Time Multi-Bounce Ray-Tracing with Geometry Impostors 862 | ### V Image Space 863 | 1 Anisotropic Kuwahara Filtering on the GPU 864 | 2 Edge Anti-aliasing by Post-Processing 865 | 3 Environment Mapping with Floyd-Steinberg Halftoning 866 | 4 Hierarchical Item Buffers for Granular Occlusion Culling 867 | 5 Realistic Depth of Field in Postproduction 868 | 6 Real-Time Screen Space Cloud Lighting 869 | 7 Screen-Space Subsurface Scattering 870 | ### VI Handheld Devices 871 | 1 Migration to OpenGL ES 2.0 872 | 2 Touchscreen-Based User Interaction 873 | 3 iPhone 3GS Graphics Development and Optimization Strategies 874 | 4 Optimizing a 3D UI Engine for Mobile Devices 875 | ### VII Shadows 876 | 1 Fast Conventional Shadow Filtering 877 | 2 Hybrid Min/Max Plane-Based Shadow Maps 878 | 3 Shadow Mapping for Omnidirectional Light Using Tetrahedron Mapping 879 | 4 Screen Space Soft Shadows 880 | ### VIII 3D Engine Design 881 | 1 Multi-Fragment Effects on the GPU Using Bucket Sort 882 | 2 Parallelized Light Pre-Pass Rendering with the Cell Broadband Engine 883 | 3 Porting Code between Direct3D9 and OpenGL 2.0 884 | 4 Practical Thread Rendering for DirectX 9 885 | ### IX Game Postmortems 886 | 1 Stylized Rendering in Spore 887 | 2 Rendering Techniques in Call of Juarez: Bound in Blood 888 | 3 Making it Large, Beautiful, Fast, and Consistent: Lessons Learned Developing Just Cause 2 889 | 4 Destructible Volumetric Terrain 890 | ### X Beyond Pixels and Triangles 891 | 1 Parallelized Implementation of Universal Visual Computer 892 | 2 Accelerating Virtual Texturing Using CUDA 893 | 3 Efficient Rendering of Highly Detailed Volumetric Scenes with GigaVoxels 894 | 4 Spatial Binning on the GPU 895 | 5 Real-Time Interaction between Particles and the Dynamic Mesh on the GPU 896 | 897 | 898 | ## GPU Pro 2 899 | 900 | ### I Geometry Manipulation 901 | 1 Terrain and Ocean Rendering with Hardware Tessellation 902 | 2 Practical and Realistic Facial Wrinkles Animation 903 | 3 Procedural Content Generation on the GPU 904 | ### II Rendering 905 | 1 Pre-Integrated Skin Shading 906 | 2 Implementing Fur Using Deferred Shading 907 | 3 Large-Scale Terrain Rendering for Outdoor Games 908 | 4 Practical Morphological Antialiasing 909 | 5 Volume Decals 910 | ### III Global Illumination Effects 911 | 1 Temporal Screen-Space Ambient Occlusion 912 | 2 Level-of-Detail and Streaming Optimized Irradiance Normal Mapping 913 | 3 Real-Time One-Bounce Indirect Illumination and Shadows using Ray Tracing 914 | 4 Real-Time Approximation of Light Transport in Translucent Homogenous Media 915 | 5 Diffuse Global Illumination with Temporally Coherent Light Propagation Volumes 916 | ### IV Shadows 917 | 1 Variance Shadow Maps Light-Bleeding Reduction Tricks 918 | 2 Fast Soft Shadows via Adaptive Shadow Maps 919 | 3 Adaptive Volumetric Shadow Maps 920 | 4 Fast Soft Shadows with Temporal Coherence 921 | 5 Mipmapped Screen-Space Soft Shadows 922 | V Handheld Devices 923 | 1 A Shader-Based eBook Renderer 924 | 2 Post-Processing Effects on Mobile Devices 925 | 3 Shader-Based Water Effects 926 | ### VI 3D Engine Design 927 | 1 Practical, Dynamic Visibility for Games 928 | 2 Shader Amortization using Pixel Quad Message Passing 929 | 3 A Rendering Pipeline for Real-Time Crowds 930 | ### VII GPGPU 931 | 1 2D Distance Field Generation with the GPU 932 | 2 Order-Independent Transparency using Per-Pixel Linked Lists 933 | 3 Simple and Fast Fluids 934 | 4 A Fast Poisson Solver for OpenCL using Multigrid Methods 935 | 936 | 937 | ## GPU Pro 3 938 | 939 | ### I Geometry Manipulation 940 | 1 Vertex Shader Tessellation 941 | 2 Real-Time Deformable Terrain Rendering with DirectX 11 942 | 3 Optimized Stadium Crowd Rendering 943 | 4 Geometric Antialiasing Methods 944 | ### II Rendering 945 | 1 Practical Elliptical Texture Filtering on the GPU 946 | 2 An Approximation to the Chapman Grazing-Incidence Function for Atmospheric Scattering 947 | 3 Volumetric Real-Time Water and Foam Rendering 948 | 4 CryENGINE 3: Three Years of Work in Review 949 | 5 Inexpensive Antialiasing of Simple Objects 950 | ### III Global Illumination Effects 951 | 1 Ray-Traced Approximate Reflections Using a Grid of Oriented Splats 952 | 2 Screen-Space Bent Cones: A Practical Approach 953 | 3 Real-Time Near-Field Global Illumination Based on a Voxel Model 954 | ### IV Shadows 955 | 1 Efficient Online Visibility for Shadow Maps 956 | 2 Depth Rejected Gobo Shadows 957 | ### V 3D Engine Design 958 | 1 Z 3 Culling 959 | 2 A Quaternion-Based Rendering Pipeline 960 | 3 Implementing a Directionally Adaptive Edge AA Filter Using DirectX 11 961 | 4 Designing a Data-Driven Renderer 962 | ### VI GPGPU 963 | 1 Volumetric Transparency with Per-Pixel Fragment Lists 964 | 2 Practical Binary Surface and Solid Voxelization with Direct3D 11 965 | 3 Interactive Ray Tracing Using the Compute Shader in DirectX 11 966 | 967 | ## GPU Pro 4 968 | 969 | ### I Geometry Manipulation 970 | 1 GPU Terrain Subdivision and Tessellation 971 | 2 Introducing the Programmable Vertex Pulling Rendering Pipeline 972 | 3 A WebGL Globe Rendering Pipeline 973 | ### II Rendering 974 | 1 Practical Planar Reflections Using Cubemaps and Image Proxies 975 | 2 Real-Time Ptex and Vector Displacement 976 | 3 Decoupled Deferred Shading on the GPU 977 | 4 Tiled Forward Shading 978 | 5 Forward+: A Step Toward Film-Style Shading in Real Time 979 | 6 Progressive Screen-Space Multichannel Surface Voxelization 980 | 7 Rasterized Voxel-Based Dynamic Global Illumination 981 | ### III Image Space 982 | 1 The Skylanders SWAP Force Depth-of-Field Shader 983 | 2 Simulating Partial Occlusion in Post-Processing Depth-of-Field Methods 984 | 3 Second-Depth Antialiasing 985 | 4 Practical Framebuffer Compression 986 | 5 Coherence-Enhancing Filtering on the GPU 987 | ### IV Shadows 988 | 1 Real-Time Deep Shadow Maps 989 | V Game Engine Design 990 | 1 An Aspect-Based Engine Architecture 991 | 2 Kinect Programming with Direct3D 11 992 | 3 A Pipeline for Authored Structural Damage 993 | ### VI GPGPU 994 | 1 Bit-Trail Traversal for Stackless LBVH on DirectCompute 995 | 2 Real-Time JPEG Compression Using DirectCompute 996 | 997 | ## GPU Pro 5 998 | 999 | ### I Rendering 1000 | 1 Per-Pixel Lists for Single Pass A-Buffer 1001 | 2 Reducing Texture Memory Usage by 2-Channel Color Encoding 1002 | 3 Particle-Based Simulation of Material Aging 1003 | 4 Simple Rasterization-Based Liquids 1004 | ### II Lighting and Shading 1005 | 1 Physically Based Area Lights 1006 | 2 High Performance Outdoor Light Scattering Using Epipolar Sampling 1007 | 3 Volumetric Light Effects in Killzone: Shadow Fall 1008 | 4 Hi-Z Screen-Space Cone-Traced Reflections 1009 | 5 TressFX: Advanced Real-Time Hair Rendering 1010 | 6 Wire Antialiasing 1011 | ### III Image Space 1012 | 1 Screen-Space Grass 1013 | 2 Screen-Space Deformable Meshes via CSG with Per-Pixel Linked Lists 1014 | 3 Bokeh Effects on the SPU 1015 | ### IV Mobile Devices 1016 | 1 Realistic Real-Time Skin Rendering on Mobile 1017 | 2 Deferred Rendering Techniques on Mobile Devices 1018 | 3 Bandwidth Efficient Graphics with ARM Mali GPUs 1019 | 4 Efficient Morph Target Animation Using OpenGL ES 3.0 1020 | 5 Tiled Deferred Blending 1021 | 6 Adaptive Scalable Texture Compression 1022 | 7 Optimizing OpenCL Kernels for the ARM Mali-T600 GPUs 1023 | V 3D Engine Design 1024 | 1 Quaternions Revisited 1025 | 2 glTF: Designing an Open-Standard Runtime Asset Format 1026 | 3 Managing Transformations in Hierarchy 1027 | ### VI Compute 1028 | 1 Hair Simulation in TressFX 1029 | 2 Object-Order Ray Tracing for Fully Dynamic Scenes 1030 | 3 Quadtrees on the GPU 1031 | 4 Two-Level Constraint Solver and Pipelined Local Batching for Rigid Body Simulation on GPUs 1032 | 5 Non-separable 2D, 3D, and 4D Filtering with CUDA 1033 | 1034 | ## GPU Pro 6 1035 | 1036 | ### I Geometry Manipulation 1037 | 1 Dynamic GPU Terrain 1038 | 2 Bandwidth-Efficient Procedural Meshes in the GPU via Tessellation 1039 | 3 Real-Time Deformation of Subdivision Surfaces on Object Collisions 1040 | 4 Realistic Volumetric Explosions in Games 1041 | ### II Rendering 1042 | 1 Next-Generation Rendering in Thief 1043 | 2 Grass Rendering and Simulation with LOD 1044 | 3 Hybrid Reconstruction Antialiasing 1045 | 4 Real-Time Rendering of Physically Based Clouds Using Precomputed Scattering 1046 | 5 Sparse Procedural Volume Rendering 1047 | ### III Lighting 1048 | 1 Real-Time Lighting via Light Linked List 1049 | 2 Deferred Normalized Irradiance Probes 1050 | 3 Volumetric Fog and Lighting 1051 | 4 Physically Based Light Probe Generation on GPU 1052 | 5 Real-Time Global Illumination Using Slices 1053 | ### IV Shadows 1054 | 1 Practical Screen-Space Soft Shadows 1055 | 2 Tile-Based Omnidirectional Shadows 1056 | 3 Shadow Map Silhouette Revectorization 1057 | ### V Mobile Devices 1058 | 1 Hybrid Ray Tracing on a PowerVR GPU 1059 | 2 Implementing a GPU-Only Particle-Collision System with ASTC 3D Textures and OpenGL ES 3.0 1060 | 3 Animated Characters with Shell Fur for Mobile Devices 1061 | 4 High Dynamic Range Computational Photography on Mobile GPUs 1062 | ### VI Compute 1063 | 1 Compute-Based Tiled Culling 1064 | 2 Rendering Vector Displacement-Mapped Surfaces in a GPU Ray Tracer 1065 | 3 Smooth Probabilistic Ambient Occlusion for Volume Rendering 1066 | ### VII 3D Engine Design 1067 | 1 Block-Wise Linear Binary Grids for Fast Ray-Casting Operations 1068 | 2 Semantic-Based Shader Generation Using Shader Shaker 1069 | 3 ANGLE: Bringing OpenGL ES to the Desktop 1070 | 1071 | ## GPU Pro 7 1072 | 1073 | ### I Geometry Manipulation 1074 | 1 Deferred Snow Deformation in Rise of the Tomb Raider 1075 | 2 Catmull-Clark Subdivision Surfaces 1076 | ### II Lighting 1077 | 1 Clustered Shading: Assigning Lights Using Conservative Rasterization in DirectX 12 1078 | 2 Fine Pruned Tiled Light Lists 1079 | 3 Deferred Attribute Interpolation Shading 1080 | 4 Real-Time Volumetric Cloudscapes 1081 | ### III Rendering 1082 | 1 Adaptive Virtual Textures 1083 | 2 Deferred Coarse Pixel Shading 1084 | 3 Progressive Rendering Using Multi-frame Sampling 1085 | ### IV Mobile Devices 1086 | 1 Efficient Soft Shadows Based on Static Local Cubemap 1087 | 2 Physically Based Deferred Shading on Mobile 1088 | ### V 3D Engine Design 1089 | 1 Interactive Cinematic Particles 1090 | 2 Real-Time BC6H Compression on GPU 1091 | 3 A 3D Visualization Tool Used for Test Automation in the Forza Serie s 1092 | 4 Semi-static Load Balancing for Low-Latency Ray Tracing on Heterogeneous Multiple GPUs 1093 | ### VI Compute 1094 | 1 Octree Mapping from a Depth Camera 1095 | 2 Interactive Sparse Eulerian Fluid 1096 | 1097 | 1098 | 1099 | # GPU Zen 1100 | 1101 | ## GPU Zen 1 1102 | 1103 | ### I Geometry Manipulation 1104 | 1 Attributed Vertex Clouds 1105 | 2 Rendering Convex Occluders with Inner Conservative Rasterization 1106 | ### II Lighting 1107 | 1 Stable Indirect Illumination 1108 | 2 Participating Media Using Extruded Light Volumes 1109 | ### III Rendering 1110 | 1 Deferred+ 1111 | 2 Programmable Per-pixel Sample Placement with Conservative Rasterizer 1112 | 3 Mobile Toon Shading 1113 | 4 High Quality GPU-efficient Image Detail Manipulation 1114 | 5 Linear-Light Shading with Linearly Transformed Cosines 1115 | 6 Profiling and Optimizing WebGL Applications Using Google Chrome 1116 | ### IV Screen Space 1117 | 1 Scalable Adaptive SSAO 1118 | 2 Robust Screen Space Ambient Occlusion 1119 | 3 Practical Gather-based Bokeh Depth of Field 1120 | ### V Virtual Reality 1121 | 1 Efficient Stereo and VR Rendering 1122 | 2 Understanding, Measuring, and Analyzing VR Graphics Performance 1123 | ### VI Compute 1124 | 1 Optimizing the Graphics Pipeline with Compute 1125 | 2 Real Time Markov Decision Processes for Crowd Simulation 1126 | 1127 | ## GPU Zen 2 1128 | 1129 | ### I Rendering 1130 | 1. Adaptive GPU Tessellation with Compute Shaders 1131 | 2. Applying Vectorized Visibility on All frequency Direct Illumination 1132 | 3. Non-periodic Tiling of Noise-based Procedural Textures by Aleksandr Kirillov 1133 | 4. Rendering Surgery Simulation with Vulkan 1134 | 5. Skinned Decals 1135 | 1136 | ### II Environmental Effects 1137 | 1. Real-Time Fluid Simulation in Shadow of the Tomb Raider 1138 | 2. Real-time Snow Deformation in Horizon Zero Dawn: The Frozen Wilds 1139 | 1140 | ### III Shadows (Maurizio Vives) 1141 | 1. Soft Shadow Approximation for Dappled Light Sources 1142 | 2. Parallax-Corrected Cached Shadow Maps 1143 | 1144 | ### IV 3D Engine Design 1145 | 1. Real-Time Layered Materials Compositing Using Spatial Clustering Encoding 1146 | 2. Procedural Stochastic Textures by Tiling and Blending 1147 | 3. A Ray Casting Technique for Baked Texture Generation 1148 | 4. Writing an efficient Vulkan renderer 1149 | 5. glTF - Runtime 3D Asset Delivery 1150 | 1151 | ### V Ray Tracing (Anton Kaplanyan) 1152 | 1. Real-Time Ray-Traced One-Bounce Caustics 1153 | 2. Adaptive Anti-Aliasing using Conservative Rasterization and GPU Ray Tracing 1154 | 1155 | ## GPU Zen 3 1156 | 1157 | ### I GPU-Driven Rendering 1158 | 1. GPU-Driven Rendering in Assassin’s Creed Mirage 1159 | 2. GPU-Driven Curve Generation from Mesh Contour 1160 | 3. GPU Readback Texture Streaming in Skull and Bones 1161 | 4. Triangle Visibility Buffer 2.0 1162 | 5. Resource Management with Frame Graph in Messiah 1163 | 6. Multi-mega Particle System 1164 | 1165 | ### II Rendering and Simulation 1166 | 7. The Evolution of the Real-Time Lighting Pipeline in Cyberpunk 1167 | 8. Real-Time Ray Tracing of Large Voxel Scenes 1168 | 9. Optimizing FSR 2 for Adreno 1169 | 10. IBL-BRDF Multiple Importance Sampling for Stochastic Screen-Space Indirect Specular 1170 | 11. Practical Clustered Forward Decals 1171 | 12. Virtual Shadow Maps 1172 | 13. Real-Time Simulation of Massive Crowds 1173 | 14. Diffuse Global Illumination 1174 | 1175 | ### III Game Engine Design 1176 | 15. GPU Capability Tracking and Configuration System 1177 | 16. The Forge Shader Language 1178 | 17. Simple Automatic Resource Synchronization Method for Vulkan 1179 | 1180 | ### IV Tools of the Trade 1181 | 18. Differentiable Graphics with Slang.D for Appearance-Based Optimization 1182 | 19. DRToolkit: Boosting Rendering Performance Using Differentiable Rendering 1183 | 20. Flowmap Baking with LBM-SWE 1184 | 21. Animating Water Using Profile Buffer 1185 | 22. Advanced Techniques for Radix Sort 1186 | 23. Two-Pass HZB Occlusion Culling 1187 | 24. Shader Server System 1188 | 1189 | # Ray Tracing Gems 1190 | 1191 | ## Ray Tracing Gems 1 1192 | 1193 | ### PART 1: RAY TRACING BASICS 1194 | 1. Ray Tracing Terminology 1195 | 2. What is a Ray? 1196 | 3. Introduction to DirectX Raytracing 1197 | 4. A Planetarium Dome Master Camera 1198 | 5. Computing Minima and Maxima of Subarrays 1199 | 1200 | ### PART 2: INTERSECTIONS AND EFFICIENCY 1201 | 6. A Fast and Robust Method for Avoiding Self-Intersection 1202 | 7. Precision Improvements for Ray/Sphere Intersection 1203 | 8. Cool Patches: A Geometric Approach to Ray/Bilinear Patch Intersections 1204 | 9. Multi-Hit Ray Tracing in DXR 1205 | 10. A Simple Load-Balancing Scheme with High Scaling Efficiency 1206 | 1207 | ### PART 3: REFLECTIONS, REFRACTIONS, AND SHADOWS 1208 | 11. Automatic Handling of Materials in Nested Volumes 1209 | 12. A Microfacet-Based Shadowing Function to Solve the Bump Terminator Problem 1210 | 13. Ray Traced Shadows: Maintaining Real-Time Frame Rates 1211 | 14. Ray-Guided Volumetric Water Caustics in Single Scattering Media with DXR, by Holger Gruen 1212 | 1213 | ### PART 4: SAMPLING 1214 | 15. On the Importance of Sampling 1215 | 16. Sample Transformations Zoo 1216 | 17. Ignoring the Inconvenient When Tracing Rays 1217 | 18. Importance Sampling of Many Lights on the GPU 1218 | 1219 | ### PART 5: DENOISING AND FILTERING 1220 | 19. Cinematic Rendering in UE4 with Real-Time Ray Tracing and Denoising 1221 | 20. Texture Level of Detail Strategies for Real-Time Ray Tracing 1222 | 21. Simple Environment Map Filtering Using Ray Cones and Ray Differentials 1223 | 22. Improving Temporal Antialiasing with Adaptive Ray Tracing 1224 | 1225 | ### PART 6: HYBRID APPROACHES AND SYSTEMS 1226 | 23. Interactive Light Map and Irradiance Volume Preview in Frostbite 1227 | 24. Real-Time Global Illumination with Photon Mapping 1228 | 25. Hybrid Rendering for Real-Time Ray Tracing 1229 | 26. Deferred Hybrid Path Tracing 1230 | 27. Interactive Ray Tracing Techniques for High-Fidelity Scientific Visualization 1231 | 1232 | ### PART 7: GLOBAL ILLUMINATION 1233 | 28. Ray Tracing Inhomogeneous Volumes 1234 | 29. Efficient Particle Volume Splatting in a Ray Tracer 1235 | 30. Caustics Using Screen Space Photon Mapping 1236 | 31. Variance Reduction via Footprint Estimation in the Presence of Path Reuse 1237 | 32. Accurate Real-Time Specular Reflections with Radiance Caching 1238 | 1239 | ## Ray Tracing Gems 2 1240 | 1241 | ### PART I: Ray Tracing Foundations 1242 | 1. A Breakneck Summary of Photographic Terms (and Their Utility to Ray Tracing), by Trevor David Black 1243 | 2. Ray Axis-Aligned Bounding Box Intersection, by Peter Shirley, Ingo Wald, and Adam Marrs 1244 | 3. Essential Ray Generation Shaders, by Morgan McGuire and Zander Majercik 1245 | 4. Hacking the Shadow Terminator, by Johannes Hanika 1246 | 5. Sampling Textures with Missing Derivatives, by Maksim Aizenshtein and Matt Pharr 1247 | 6. Differential Barycentric Coordinates, by Tomas Akenine-Möller 1248 | 7. Texture Coordinate Gradients Estimation for Ray Cones, by Wessam Bahnassi 1249 | 8. Reflection and Refraction Formulas, by Eric Haines 1250 | 9. The Schlick Fresnel Approximation, by Zander Majercik 1251 | 10. Refraction Ray Cones for Texture Level of Detail, by Jakub Boksansky, Cyril Crassin, and Tomas Akenine-Möller 1252 | 11. Handling Translucency with Real-Time Ray Tracing, by Tianyi "Tanki" Zhang 1253 | 12. Motion Blur Corner Cases, by Christopher Kulla and Thiago Ize 1254 | 13. Fast Spectral Upsampling of Volume Attenuation, by Johannes Jendersie 1255 | 14. The Reference Path Tracer, by Jakub Boksansky and Adam Marrs 1256 | ### PART II: APIs and Tools 1257 | 15. The Shader Binding Table Demystified, by Will Usher 1258 | 16. Introduction to Vulkan Ray Tracing, by Matthew Rusch, Neil Bickford, and Nuno Subtil 1259 | 17. Using Bindless Resources with DirectX Raytracing, by Matt Pettineo 1260 | 18. WebRays: Ray Tracing on the Web, by Nick Vitsas, Anastasios Gkaravelis, Andreas A. Vasilakis, and Georgios Papaioannou 1261 | 19. Visualizing and Communicating Errors in Rendered Images, by Pontus Andersson, Jim Nilsson, and Tomas Akenine-Möller 1262 | ### PART III: Sampling 1263 | 20. Multiple Importance Sampling 101, by Anders Lindqvist 1264 | 21. The Alias Method for Sampling Discrete Distributions, by Chris Wyman 1265 | 22. Weighted Reservoir Sampling: Randomly Sampling Streams, by Chris Wyman 1266 | 23. Rendering Many Lights with Grid-Based Reservoirs, by Jakub Boksansky, Paula Jukarainen, and Chris Wyman 1267 | 24. Using Blue Noise for Ray Traced Soft Shadows, by Alan Wolfe 1268 | ### PART IV: Shading and Effects 1269 | 25. Temporally Reliable Motion Vectors for Better Use of Temporal Information, by Zheng Zeng, Shiqiu Liu, Jinglei Yang, Lu Wang, and Ling-Qi Yan 1270 | 26. Ray Traced Level of Detail Cross-Fades Made Easy, by Holger Gruen 1271 | 27. Ray Tracing Decals, by Wessam Bahnassi 1272 | 28. Billboard Ray Tracing for Impostors and Volumetric Effects, by Felix Brüll, Robin Fynn Diedrichs, and Thorsten Grosch 1273 | 29. Hybrid Ray Traced and Image-Space Refractions, by Daniel Parhizgar and Marcus Svensson 1274 | 30. Real-Time Ray Traced Caustics, by Xueqing Yang and Yaobin Ouyang 1275 | 31. Tilt-Shift Rendering Using a Thin Lens Model, by Andrew Kensler 1276 | ### PART V: Intersection 1277 | 32. Fast and Robust Ray/OBB Intersection Using the Lorentz Transformation, by Rodolfo Sabino, Creto Augusto Vidal, Joaquim Bento Cavalcante-Neto, and José Gilvan Rodrigues Maia 1278 | 33. Real-Time Rendering of Complex Fractals, by Vinícius da Silva, Tiago Novello, Hélio Lopes, and Luiz Velho 1279 | 34. Improving Numerical Precision in Intersection Programs, by Ingo Wald 1280 | 35. Ray Tracing of Blobbies, by Manuele Sabbadin and Marc Droske 1281 | 36. Curved Ray Traversal, by Christiaan Gribble 1282 | 37. Ray-Tracing Small Voxel Scenes, by Dylan Lacewell 1283 | ### PART VI: Performance 1284 | 38. CPU Performance in DXR, by Peter Morley 1285 | 39. Inverse Transform Sampling Using Ray Tracing Hardware, by Nate Morrical and Stefan Zellmann 1286 | 40. Accelerating Boolean Visibility Operations Using RTX Visibility Masks, by Dirk Gerrit van Antwerpen and Oliver Klehm 1287 | 41. Practical Spatial Hash Map Updates, by Pascal Gautron 1288 | 42. Efficient Spectral Rendering on the GPU for Predictive Rendering, by David Murray, Alban Fichet, and Romain Pacanowski 1289 | 43. Efficient Unbiased Volume Path Tracing on the GPU, by Nikolai Hofmann and Alex Evans 1290 | 44. Path Tracing RBF Particle Volumes, by Aaron Knoll, Gregory P. Johnson, and Johannes Meng 1291 | 45. Fast Volumetric Gradient Shading Approximations for Scientific Ray Tracing, by Carson Brownlee and David DeMarle 1292 | ### PART VII: Ray Tracing in the Wild 1293 | 46. Ray Tracing in Control, by Juha Sjöholm, Paula Jukarainen, and Tatu Aalto 1294 | 47. Light Sampling in Quake 2 Using Subset Importance Sampling, by Tobias Zirr 1295 | 48. Ray Tracing in Fortnite, by Patrick Kelly, Yuriy O'Donnell, Kenzo ter Elst, Juan Cañada, and Evan Hart 1296 | 49. ReBLUR: A Hierarchical Recurrent Denoiser, by Dmitry Zhdan 1297 | 50. Practical Solutions for Ray Tracing Content Compatibility in Unreal Engine 4, by Evan Hart 1298 | 1299 | # Advances in Real-Time Rendering in 3D Graphics and Games 1300 | 1301 | ## SIGGRAPH 2024 1302 | Neural Light Grid: Modernizing Irradiance Volumes with Machine Learning 1303 | Seamless Rendering on Mobile: The Magic of Adaptive LOD Pipeline 1304 | Flexible and Extensible Shader Authoring in Frostbite with Serac 1305 | Announcing The Call of Duty Open-Source USD Caldera Data Set 1306 | Variable Rate Shading with Visibility Buffer Rendering 1307 | Shipping Dynamic Global Illumination in Frostbite 1308 | Hemispherical Lighting Insights from the Call of Duty Production Lessons 1309 | Achieving scalable performances for large scale components with CBTs 1310 | 1311 | ## SIGGRAPH 2023 1312 | HypeHype Mobile Rendering Architecture 1313 | Nubis3: Methods (and madness) to model and render immersive real-time voxel-based clouds 1314 | Large-Scale Terrain Rendering in Call of Duty 1315 | Authoring Materials That Matters - Substrate in Unreal Engine 5 1316 | The Rendering of The Callisto Protocol 1317 | 1318 | ## SIGGRAPH 2022 1319 | Bisection Based Triangulation of Catmull Clark Subdivision 1320 | Lumen: Real-time Global Illumination in Unreal Engine 5 1321 | Ray Tracing Open Worlds in Unreal Engine 5 1322 | Nubis, Evolved: Real-Time Volumetric Clouds for Skies, Environments, and VFX 1323 | Probe-based lighting, strand-based hair system, and physical hair shading in Unity’s ‘Enemies’ 1324 | Real-time Cluster Path Tracing for Remote Rendering 1325 | Rendering Water in Horizon Forbidden West 1326 | 1327 | ## SIGGRAPH 2021 1328 | Improved Spatial Upscaling through FidelityFX Super Resolution for Real-Time Game Engines 1329 | Experimenting with Concurrent Binary Trees for Large Scale Terrain Rendering 1330 | A Deep Dive into Nanite Virtualized Geometry 1331 | Large-Scale Global Illumination at Activision 1332 | Real-Time Samurai Cinema: Lighting, Atmosphere, and Tone mapping in Ghost of Tsushima 1333 | Radiance Caching for Real-time Global Illumination 1334 | Global Illumination Based on Surfels 1335 | 1336 | ## SIGGRAPH 2020 1337 | Software-Based Variable Rate Shading in Call of Duty: Modern Warfare 1338 | Rendering the Hellscape of Doom Eternal 1339 | From Ray to Path Tracing: Navigating through Dimensions 1340 | Precomputed Lighting Advances in Call of Duty: Modern Warfare 1341 | The Technical Art of The Last of Us Part II 1342 | 1343 | ## SIGGRAPH 2019 1344 | A Journey Through Implementing Multiscattering BRDFs and Area Lights 1345 | Leveraging Real-Time Ray Tracing to build a Hybrid Game Engine 1346 | Strand-based Hair Rendering in Frostbite 1347 | Mesh Shading: Towards Greater Efficiency of Geometry Processing 1348 | Interactive Wind and Vegetation in 'God of War' 1349 | Multi-resolution Ocean Rendering in Crest Ocean System 1350 | Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution 1351 | 1352 | ## SIGGRAPH 2018 1353 | The Challenges of Rendering an Open World in Far Cry 5 1354 | Material Advances in Call of Duty: WWII 1355 | A Life of a Bokeh 1356 | The Road toward Unified Rendering with Unity’s High Definition Render Pipeline 1357 | Efficient Screen-Space Subsurface Scattering Using Burley’s Normalized Diffusion in Real-Time 1358 | Real-Time rendering’s next frontier: Adopting lessons from offline ray tracing to real-time ray tracing for practical pipelines 1359 | Real-Time Ray Tracing of Correct* Soft Shadows 1360 | 1361 | ## SIGGRAPH 2017 1362 | Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine 1363 | Crest: Novel Ocean Rendering Techniques in an Open Source Framework 1364 | Precomputed lighting in Call of Duty: Infinite Warfare 1365 | Dynamic Temporal Antialiasing in Call of Duty: Infinite Warfare 1366 | The Destiny Particle Architecture 1367 | Decima Engine: Advances in Lighting and AA 1368 | Optimized pixel-projected reflections for planar reflectors 1369 | Improved Culling for Tiled and Clustered Rendering 1370 | 1371 | ## SIGGRAPH 2016 1372 | Volumetric Global Illumination at Treyarch 1373 | Deferred Lighting in Uncharted 4 1374 | Real-Time Area Lighting: a Journey from Research to Production 1375 | Rendering Rapids in Uncharted 4 1376 | Aggregate G-Buffer Anti-Aliasing in Unreal Engine 4 1377 | The devil is in the details: idTech 666 1378 | Temporal Antialiasing in Uncharted 4 1379 | Filmic SMAA: Sharp Morphological and Temporal Antialiasing 1380 | The Process of Creating Volumetric-based Materials in Uncharted 4 1381 | Technical Art of Uncharted 4 1382 | 1383 | ## SIGGRAPH 2015 1384 | Towards Unified and Physically-Based Volumetric Lighting in Frostbite 1385 | Stochastic Screen-Space Reflections 1386 | The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn 1387 | A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Rendering 1388 | Sparkly but not too Sparkly! A Stable and Robust Procedural Sparkle Effect 1389 | Multi-Scale Global Illumination in Quantum Break 1390 | Rendering the Alternate History of The Order: 1886 1391 | Learning from Failure: a Survey of Promising, Unconventional and Mostly Abandoned Renderers for ‘Dreams PS4’, a Geometrically Dense, Painterly UGC Game’ 1392 | Dynamic Occlusion with Signed Distance Fields 1393 | GPU-Driven Rendering Pipelines 1394 | 1395 | ## SIGGRAPH 2014 1396 | Next Generation Post Processing in Call of Duty: Advanced Warfare 1397 | High-Quality Temporal Supersampling 1398 | Rendering Techniques in Ryse: Son of Rome 1399 | Hybrid Reconstruction Anti-Aliasing 1400 | Volumetric Fog: Unified Compute Shader-Based Solution to Atmospheric Scattering 1401 | Real-time Lighting via Light Linked List 1402 | Reflection System in Thief 1403 | Tessellation in Call of Duty: Ghosts 1404 | Reflections and Volumetrics of Killzone Shadow Fall 1405 | Creating Content to Drive Destiny’s Investment Game: One Solution to Rule Them All 1406 | Character Heads Creation Pipeline and Rendering in Destiny 1407 | Destiny Character-Animation System and Lessons Learned 1408 | 1409 | ## SIGGRAPH 2013 1410 | Mythic Science Fiction In Real-Time: Destiny Rendering Engine 1411 | Pixel Synchronization: Solving Old Graphics Problems With New Data Structures 1412 | Practical Clustered Deferred And Forward Shading 1413 | The Redengine 3 Character Pipeline 1414 | Oceans On A Shoestring : Shape Representation, Meshing And Shading 1415 | Graphics Gems From Cryengine 3 1416 | 1417 | 1418 | ## SIGGRAPH 2012 1419 | Scalable High Quality Motion Blur and Ambient Occlusion 1420 | Real-Time Global Illumination and Reflections in Dust 514 1421 | Separable Subsurface Scattering & Photorealistic Eyes Rendering 1422 | Accelerating Rendering Pipelines Using Bidirectional Iterative Reprojection 1423 | CSM Scrolling, an Acceleration Technique for the Rendering of Cascaded Shadow Maps 1424 | The Technology Behind the “Unreal Engine 4 Elemental demo” 1425 | Rock-Solid Shading: Image Stability without Sacrificing Detail 1426 | Dynamic Sand Simulation and Rendering in Journey 1427 | Graphics gems for games: Findings from Avalanche Studios 1428 | 1429 | 1430 | ## SIGGRAPH 2011 1431 | Making Game Worlds from Polygon Soup: Visibility, Spatial hierarchy and Rendering Challenges 1432 | Rendering in Cars 2 1433 | Secrets of CryENGINE 3 Graphics Technology 1434 | Two uses of Voxels in LittleBigPlanet2’s graphics engine 1435 | More Performance! Five Rendering Ideas from Battlefield 3 and Need For Speed: The Run 1436 | Physically-based lighting in Call of Duty: Black Ops 1437 | Real-time image quilting: Arbitrary material blends, invisible seams, and no repeats 1438 | Dynamic lighting in God of War 3 1439 | Pre-Integrated Skin Shading 1440 | 1441 | ## SIGGRAPH 2010 1442 | Rendering techniques in Toy Story 3 1443 | A Real-Time Radiosity Architecture for Video Game 1444 | Real-Time Order Independent Transparency and Indirect Illumination using Direct3D 11 1445 | CryENGINE 3: Reaching the Speed of Light 1446 | Sample Distribution Shadow Maps 1447 | Adaptive Volumetric Shadow Maps 1448 | Uncharted 2: Character Lighting and Shading 1449 | Destruction Masking in Frostbite 2 using Volume Distance Fields 1450 | Water Flow in Portal 2 1451 | 1452 | ## SIGGRAPH 2009 1453 | Lighting Research at Bungie 1454 | Light Propagation Volumes in CryEngine 3 1455 | The Light Pre-Pass Renderer: Renderer Design for Efficient Support of Multiple Lights 1456 | Rendering Technology at Black Rock Studios 1457 | When Fuzzy is Good: Advances in Filtering Techniques 1458 | Graphics Engine Postmortem from LittleBigPlanet 1459 | 1460 | --------------------------------------------------------------------------------