Title: Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm
1Radiance Cache SplattingA GPU-Friendly Global
Illumination Algorithm
- P. Gautron J. Krivánek
- K. Bouatouch S. Pattanaik
2Global Illumination
Why?
3Global Illumination
How?
Lo(P, ?o)
BRDF(?o, ?i) cos(?)d?i
4Global Illumination
How?
Lo(P, ?o)
BRDF(?o, ?i) cos(?)d?i
No analytical solution
Numerical methods
- Radiosity
- Photon mapping
- Path tracing
- Bidirectional path tracing
- Irradiance Radiance caching
-
5GPUs
Speed
6GPUs
Versatility
Linear algebra
Fluid dynamics
Signal processing
Databases
And graphics!
7Global Illumination GPUs
CPU
8Global Illumination GPUs
Previous work
9Contributions
A reformulation of (Ir)Radiance caching
- No complex data structure
- Fast, image-space (ir)radiance interpolation
- Fast approximation of hemisphere sampling
for fast and easy GPU implementation
10Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
Results
Conclusion Future Work
11Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
Results
Conclusion Future Work
12Irradiance Caching
Sparse computation of indirect diffuse lighting
?
?
13Irradiance Caching
Sparse computation of indirect diffuse lighting
14Irradiance Caching
Sparse computation of indirect diffuse lighting
Interpolation
15Interpolation
E
16Interpolation
S k / wk(P) gt 1/a
17Radiance Caching
Extension of irradiance caching to glossy
interreflections
Cache directional distribution of light
18Radiance Caching
Extension of irradiance caching to glossy
interreflections
Cache directional distribution of light
Hemispherical Harmonics
19Radiance Caching
?
HSH Incident Radiance
HSH BRDF
20Implementation
Cache Record Computation
Ray tracing
?
?
21Implementation
Cache storage
4
6
1
10
8
2
3
11
3
13
2
4
5
6
7
12
8
9
10
11
12
13
9
1
5
7
22Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
Results
Conclusion Future Work
23(Ir)Radiance Caching vs GPU
(Ir)Radiance Caching
GPU
?
Ray tracing
Rasterization
Cache stored in tree
1/2/3D textures
Spatial queries
Texture lookups
24Reformulation
Our method
25Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
From octree to splatting
From ray tracing to rasterization
Overall algorithm
Results
Conclusion Future Work
26Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
From octree to splatting
From ray tracing to rasterization
Overall algorithm
Results
Conclusion Future Work
27From Octree to Splatting
Irradiance Interpolation
S k / wk(P) gt 1/a
28From Octree to Splatting
Irradiance Caching Weighting Function
Normals divergence
Distance
29From Octree to Splatting
Simplified Weighting Function
P
Pk
Normals divergence
Distance
30From Octree to Splatting
Simplified Weighting Function
P
Pk
Normals divergence
Distance
31From Octree to Splatting
Simplified Weighting Function
P
Pk
aRk
32From Octree to Splatting
Principle
33From Octree to Splatting
Principle
34From Octree to Splatting
Principle
wk(P)gt1/a ?
35From Octree to Splatting
Principle
wk(P)E(P)
wk(P)
36From Octree to Splatting
Principle
37From Octree to Splatting
Principle
wk(P)E(P)
wk(P)
38From Octree to Splatting
Final Image Generation
39From Octree to Splatting
Example
40Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
From octree to splatting
From ray tracing to rasterization
Overall algorithm
Results
Conclusion Future Work
41From Ray Tracing to Rasterization
CPU
42From Ray Tracing to Rasterization
GPU
Simple plane sampling
43From Ray Tracing to Rasterization
GPU
Simple plane sampling
??
44From Ray Tracing to Rasterization
GPU
Simple plane sampling
45From Ray Tracing to Rasterization
GPU
Simple plane sampling
Incoming radiance loss
46From Ray Tracing to Rasterization
GPU
Our plane sampling
??
47From Ray Tracing to Rasterization
GPU
Our plane sampling
Compensation of incoming radiance loss
48Our plane sampling
Summary
3x more accurate than simple plane sampling
Plausible directional information
Easy implementation on GPU
49Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
From octree to splatting
From ray tracing to rasterization
Overall algorithm
Results
Conclusion Future Work
50Algorithm
Step 1 information generation
GPU
51Algorithm
Step 2 detection
CPU
?
52Algorithm
Step 2 detection
CPU
GPU Hemisphere sampling
53Algorithm
Step 2 detection
CPU
GPU Hemisphere sampling
?
54Algorithm
Step 2 detection
CPU
?
55Algorithm
Step 2 detection
CPU
56Algorithm
Step 3 display
GPU
Matrices
Vertex Shader
Record information
57Algorithm
Step 3 display
GPU
Fragment Shader
Record information
58Algorithm
Step 3 display
GPU
Fragment Shader
59Algorithm
Summary
No spatial data structure
Spatial queries replaced by splatting
Interpolation by blending
No quality loss compared to (Ir)Radiance Caching
No order constraint for image traversal
Can be implemented using native GPU features
60Our renderer
Direct lighting
GPU per-pixel lighting shadow maps
CPU ray tracing
61Outline
Introduction
Irradiance Radiance Caching
Our method Radiance Cache Splatting
Results
Conclusion Future Work
62Results
Sibenik Cathedral (80K triangles)
63Results
Sponza Atrium (66K triangles)
64Results
Comparison with Radiance
Radiance Time
645 s
425 s
Our Renderer Time
13,7 s
14,3 s
Speedup
47,1
29,7
65Results
From Irradiance to Radiance Caching Venus (24K
triangles)
66Conclusion
Reformulation of (Ir)Radiance Caching
Speedup 29x 47x
Interactive or fast, high quality rendering
67Future Work
Multiple bounces
Area light sources
All-Frequency BRDFs
More complex models
Better hemisphere sampling
68Any questions?
Radiance Cache Splatting on the web
http//www.irisa.fr/siames/Pascal.Gautron/