1 Temporal Radiance Caching P. Gautron K. Bouatouch S. Pattanaik
2 Global Illumination P L o (P, ω o ) ∫ L i (P, ω i ) = * BRDF(ω o, ω i ) *cos(θ)dω i
3 GI: Computation L o (P, ω o ) ∫ L i (P, ω i ) = * BRDF(ω o, ω i ) *cos(θ)dω i No analytical solution Numerical methods - Radiosity - Photon mapping - Path tracing - Bidirectional path tracing - Irradiance & Radiance caching - …
4 GI: Computation L o (P, ω o ) ∫ L i (P, ω i ) = * BRDF(ω o, ω i ) *cos(θ)dω i No analytical solution Numerical methods - Radiosity - Photon mapping - Path tracing - Bidirectional path tracing - Irradiance & Radiance caching - …
5 (Ir)Radiance Caching R Spatial weighting function Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
6 (Ir)Radiance Caching Spatial gradients Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
7 (Ir)Radiance Caching Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
8 (Ir)Radiance Caching Record LocationGI Solution Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
9 (I)RC in Dynamic Scenes
10 (I)RC in Dynamic Scenes
11 (I)RC in Dynamic Scenes
12 (I)RC in Dynamic Scenes
13 Contributions Temporal (ir)radiance interpolation scheme Temporal weighting function Temporal gradients Fast estimate of future indirect lighting
14 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion
15 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion
16 Irradiance Caching: Observations - Indirect lighting is costly -Indirect lighting changes slowly over a surface Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
17 Irradiance Caching: Principle Record LocationGI Solution Ward et al. 88: A Ray Tracing Solution for Diffuse Interreflections
18 IC Records: Zone of Influence Close objects = Small zoneDistant objects = Large zone
19 IC: Spatial Weighting Function Spatial change of indirect lighting depends on - Local geometry - Surrounding geometry nknk n P PkPk
20 IC: Spatial Weighting Function nknk n P PkPk Upper bound of the change change = ||P-P k || RkRk + 1-n.n k Distance Normals divergence Mean dist. to the surrounding geometry
21 IC: Spatial Weighting Function nknk n P PkPk w k (P) = 1 ||P-P k || RkRk + 1-n.n k Distance Normals divergence > 1/a Mean dist. to the surrounding geometry
22 IC: Spatial Gradients No GradientsWith Gradients Estimate of the spatial change wrt. - Distance - Normals divergence
23 Radiance Caching Extension of irradiance caching to glossy interreflections Cache directional distribution of light Hemispherical Harmonics Krivanek et al. 05: Radiance Caching for Efficient Global Illumination Computation
24 Radiance Caching Same weighting function as IC Transl. gradient for each coef. Rot. gradient replaced by rotation Krivanek et al. 05: Radiance Caching for Efficient Global Illumination Computation
25 (I)RC in Dynamic Scenes New cache for each frame High cost Flickering Reuse records across frames
26 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion - Temporal Weighting Function - Estimate of the Future Incoming Lighting - Temporal Gradients
27 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion - Temporal Weighting Function - Estimate of the Future Incoming Lighting - Temporal Gradients
28 Temporal Weighting Function Estimate the temporal change rate of indirect lighting
29 Temporal Weighting Function Estimate the temporal change rate of indirect lighting
30 Temporal Weighting Function Estimate the temporal change rate of indirect lighting ≈ E t -E t+1 δtδt ∂E ∂t (t 0 ) = E 0 (-1) = E t+1 /E t
31 Temporal Weighting Function Inverse of the temporal change rate of indirect lighting = E t+1 /E t ( -1)(t-t 0 ) 1 w k t (t) => 1/a t Problem : Lifespan is determined when the record is created
32 Lifespan Thresholding P At point P and time t: Static environment = E t+1 /E t = 1 w k t (t) = ∞ for all t Infinite Lifespan
33 Lifespan Thresholding P At point P and time t: Static environment = E t+1 /E t = 1 w k t (t) = ∞ for all t Infinite Lifespan
34 Lifespan Thresholding P At point P and time t: Static environment = E t+1 /E t = 1 w k t (t) = ∞ for all t Infinite Lifespan Incorrect w k t (t) = 0 if t-t k >δ tmax
35 Record Replacement
36 Temporal Weighting Function Determines the lifespan of the records Lifespan depends on the local change of incoming radiance If the environment is static, threshold the lifespan to a maximum value = E t+1 /E t Requires the knowledge of future irradiance However
37 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion - Temporal Weighting Function - Estimate of the Future Incoming Lighting - Temporal Gradients
38 Future Incoming Lighting PP ≈ Time tTime t+1 E(P, t) = E(P, t+1) =
39 Future Incoming Lighting Assumption: Animation is predefined Future transformation matrices are known Use reprojection to estimate the future incoming lighting
40 Reprojection k EtEt E t+1
41 Reprojection t+1 t k EtEt OK E t+1 Hemisphere sampling
42 Reprojection t+1 ? ? EtEt OK E t+1 Reprojection
43 Reprojection EtEt OK E t+1 t+1 ? ? Depth culling
44 Reprojection EtEt OK E t+1 Hole filling t+1 ? ?
45 Reprojection EtEt OK E t+1 t+1 OK
46 Future Incoming Lighting Simple reprojection No additional hemisphere sampling Easy GPU Implementation
47 Temporal Interpolation k E t =
48 Temporal Interpolation k E t = Recompute Irradiance
49 Temporal Interpolation: Goal k E t =
50 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion - Temporal Weighting Function - Estimate of the Future Incoming Lighting - Temporal Gradients
51 Extrapolated Gradients E t computed by hemisphere sampling E t+1 estimated by reprojection Δ t extra ≈ E t+1 -E t Δ t = ∂E / ∂t
52 Extrapolated Gradients k E t extra = E 0 = Computed E 1 = Estimated E t actual = E t actual -E t extra =
53 Extrapolated Gradients
54 Interpolated Gradients: Pass 1 k E 0 = Computed E t actual =
55 Interpolated Gradients: Pass 2 k E t inter = E 0 = Computed E t = Computed E t actual = E t actual -E t inter =
56 Interpolated Gradients E t computed by hemisphere sampling E t+n computed by hemisphere sampling Δ t = ∂E / ∂t Δ E t+n -E t n t inter ≈
57 Temporal Gradients Extrapolated 1 pass Possible flickering Interpolated 2 passes No flickering
58 Outline - Introduction - Irradiance and Radiance Caching - Temporal Radiance Caching - Results - Conclusion
59 Flying Kite
60 Japanese Interior
61 Japanese Interior
62 Spheres
63 Conclusion Temporal radiance interpolation scheme Reuse records across frames Quality improvementSpeedup Easily integrates within (ir)radiance caching-based renderers GPU Implementation Work submitted for publication Dynamic objects, light sources, viewpoint
64 Future Work Avoid the need of maximum lifespan Propose an interpolation method adapted to fast changes (temporal details are smoothed out by the gradients)
65 On the web: OR Google ‘pascal gautron’ P. Gautron, K. Bouatouch, S. Pattanaik Temporal Radiance Caching Technical Report no. 1796, IRISA, Rennes, France
66 Flying Kite: Records Lifespan