500 likes | 691 Views
ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 21 February, 2010, Washington , USA. Cascaded Light Propagation Volumes for Indirect Illumination. Anton Kaplanyan 1 Carsten Dachsbacher 2
E N D
ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 21 February, 2010, Washington, USA Cascaded Light Propagation Volumes for Indirect Illumination Anton Kaplanyan1 Carsten Dachsbacher2 1Crytek GmbH 2VISUS / University Stuttgart
Motivation Indirect Occlusion Glossy reflections Participating Media Multiple bounces Completely dynamic (cameras, lights, scene) Real-time, suitable for game production Indirect lighting ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Previous work Irradiance volumes Greger et al. 1997 SH Irradiance Volumes Tatarchuk 2004 Image-Space Photon Mapping McGuire and Luebke 2009 Multi-resolution Splatting Nichols and Wyman 2009 PRT: Spherical Harmonics Sloan et al. 2004 Spherical proxies with SH Exponentiation Zhong et al. 2007 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Previous work, continued Instant radiosity Keller 1997 VPL visibility Laine et al. 2007 Ritschel et al. 2008 Many-lights approach Walter et al. 2005 Hasan et al. 2007 Chevlak-Postavak et al. 2008 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Previous work, continued Disk-based Color Bleeding Bunell 2005 Christensen 2008 • All techniques above have one or more of the following limitations: • Precomputed or redundant data (problems with dynamic and/or editable scenes) • Not suitable for game production performance-wise • Most of dynamic techniques are without indirect visibility Finite Element: Antiradiance Dachsbacher et al. 2007 Microrendering Ritschel et al. 2010 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Previous work, lattice methods Light Propagation Maps Fattal 2009 Lattice-Boltzmann Lighting Geist et al. 2004 Lattice-Based Volumetric Global Illumination Qiu et al. 2007 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Basic idea ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Basic idea ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Basic idea ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Propagation demo 0 iterations, only injection 4 iterations after injection 6 iterations after injection 8 iterations after injection
Overview ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Light Propagation Volumes • Use many-lights approach to capture sources of indirect lighting • Sample directly lit surfaces and initialize 3D grid • Represent directional distribution with Spherical Harmonics • Inspired by SH Irradiance Volumes [Tatarchuk04] • Iterative, local propagation: cell-to-cell ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Secondary Light Sources ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Secondary Light Sources Reflective shadow maps Depth Flux Normal ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Injection ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Pipeline ? Reflective shadow maps Radiance volume gathering VPL VPL VPL A set of regularly sampled VPLs of the scene from light position Discretize initial VPL distribution by the regular grid and SH ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Light injection into the volume • Every element of Reflective Shadow Map is a secondary lights • Render as a point primitive into 3D grid • Represent flux in Spherical Harmonics • Accumulate all VPLs into the grid • The 3D grid is initialized with initial reflected light in the end n ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Light Propagation ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Pipeline Reflective shadow maps Radiance volume gathering Iterative propagation VPL VPL VPL A set of regularly sampled VPLs of the scene from light position Discretize initial VPL distribution by the regular grid and SH Propagate light iteratively going from one cell to another ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Iterative Light Propagation • Local cell-to-cell propagationacross the 3D grid • Iterate till the light travels through the entire volume • Similar to SH Discrete Ordinate Method (used for participating media illumination) • Number of iterations depend on the resolution of the grid ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
The propagation iteration • 6 axial directions of propagation • Use contour faces as a propagation wave front • Integrate sourceintensity by the solid angle to get incoming fluxfor the face f
The propagation iteration • Use more than 6 directions • Only 6 direct neighbors • Computelight propagation to eachface of neighbors’ cells • 30 virtual directions • SHDOM: 27 neighbor cells =27 directions • good trade-off ofmemorybandwidthvs “ray effect” • “Ray effect” - light propagates in a set of fictitious directions 4 directions of propagation 8 directions of propagation
Reprojection • Acquire the incident flux throughthe receiving face • Create a new point light in the center of receiving cell • Oriented towards the face • Causing exactly the same flux as the face received • Generate clamped cosine lobe in SH basis similar to injection stage • Accumulate the resulting SH coefficients into the destination cell for next iteration
Scene rendering ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Rendering • Look-up grid with trilinear interpolation • Evaluate the irradiance with cosine lobe of surface’s normal • Apply dampening factor • Compute directional derivative towards normal • Dampen based on derivative deviation from the intensity distribution direction ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Cascaded Light Propagation Volumes • Motivation: memory and bandwidth cost is o(N^3) for increase of LPV grid • Impossible to support large scenes • Idea: use multiple nested grids to refine resolution hierarchically • Do not consider small objects for large sparse grids • Transfer propagated lighting fromnested grid to the parent grid • Illuminate scene similarly tocascaded shadow maps • Reduces the number of iterations sufficient per cascade ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Cascaded Indirect Illumination 1 cascade 3 cascades ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Fuzzy Secondary Occlusion • Introduce a “fuzzyblocking” between cells • Use another grid for blocking • Occlusion is view-dependent • Projected size of an occluder is a cosine lobe blocker ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Fuzzy Secondary Occlusion Scene Light view • Represent it as SH • Store into occlusion grid • Sample surfaces usingrasterization • Possibly multiple views • Very similar to light injection • Interpolate blockinglinearly in between cells Camera view ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Fuzzy Secondary Occlusion W/o secondary occlusion With secondary occlusion ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Multiple Bounces • Idea: use informationfrom occlusion gridto compute multipleindirect reflections • Reflect light duringeach propagationiteration • Avoidself-illumination by injecting reflectedlight at safety-distance ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Glossy Reflections • Idea:Compute incident light from reflection direction by marching through LPV grid • Go few steps back in propagation time to reducelight smearing • 4 cells is sufficient for moderately glossy objects • Lookups into multiple cells prevent discontinuitiesin glossy reflections ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Indirect lighting in isotropic participating media • Ray march through the LPV • Accumulate inscattered light • Limited to single-scattering • Step through the wholegrid along viewdirection • Back to frontaccumulation ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Timings (Crytek Sponza) Depends on scene complexity 32^3 grid size 8 iterations Depends on image size (1280x720) ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Results Reference, 42 min LPV, 78 fps @GTX285 Reference PBRT, 45 min LPV, 60 fps @GTX285 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Limitations of the method • Only diffuseinter-reflections • Sparse spatial and low-frequency angular approximations • Light diffusion: light transport smears in all directions • Spatial discretization: visible for occlusion and very coarsegrids • Incomplete information for secondary occlusion ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Conclusion • Full-dynamic: scene, view, lighting changes • Real-time: GPU- and consoles- friendly • Production-eligible (simple tweaking) • Highly scalable • proportionally to quality • Stable, flicker-free • Supports complex geometry (e.g. foliage) ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Video ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
We’d like to thank: • Crytek and especially the CEO Cevat Yerli for giving us an opportunity to make this research • The whole Crytek R&D department and artists for help provided • Many people across the industry and research community for interesting discussions and provided feedbacks See the paper for more details Thank you for your attention ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Backup slide: Small details • Stability of the solution • RSM one-texel snapping • One-cell snapping for LPVs • Temporal SSAA with reprojection for RSM injection • Self-illumination and light bleeding • Half-cell VPL shifting to normal direction during RSM injection • Directional derivative in normal direction to compute a dampening factor ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Backup slide: Console optimizations • For both consoles • Store everything in signed QUVW8 format, [-1;1] with scaling factor • Use h/w 3D textures and trilinear filtering • Xbox 360 • Unwrap RT vertically to avoid bank conflicts during injection • Use API bug work-around to resolve into a 3D slice • PlayStation 3 • Use memory aliasing for render into 3D texture • Use 2x MSAA aliasing to reduce pixel work twice ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2010, Washington
Backup slide: Console optimizations II • Render Reflective Shadow Map • Usually 128 x 128 is ok • Inject each pixel into unwrapped LPV with a swarm of points • 16384 points in one DIP • Use vertex texture fetch on X360 • Use R2VB on PlayStation 3 • Multi-layered unwrapping to avoid bank conflicts during RSM injection on Xbox 360 • All together: 3,0 ms on X360/PS3
Backup slide: Massive Lighting • Render sliced unwrapped light box into LPV (spatial overdraw vsscreen-space, maximum 1024x32 pixels) • Convert light’s radiant intensity into SH • Shadows are not supported Light in the Light Propagation Volume Coverage in unwrapped render target