Title: TimeDependent Photon Mapping
1Time-Dependent Photon Mapping
- Mike Cammarano
- Henrik Wann Jensen
- EGWR 02
2Standard Photon Map
- Two-pass algorithm
- Photon trace
- Rendering
3First Pass - Photon Trace
For 100 photons emitted from 100W source, each
photon initially carries 1W. Propagate this
radiant flux through scene using MC methods.
4Estimating incident flux
- At any patch of surface, we can estimate the
incident flux
Just average the contributions of all the
photons that hit the patch.
5A Photon
- For each surface interaction, we store
- struct photon
- float x,y,z // position
- char power4 // power (RGBE)
- char phi, theta // incident direction
- short flag
6Photon Storage
- Store this information about surface
- interactions in photon map (kd-tree)
- Photon storage is decoupled from geometry
7Second Pass - Rendering
- Estimate flux incident at a surface point based
on nearby photons.
8Radiance Estimate
Expand ball until it contains some reasonable
number of photons. Use intersection with plane
to estimate area of surface patch.
9Radiance Estimate
10What About Motion?
11One Approach
- Render lots of intermediate frames independent
of one another.
12Average Intermediate Frames
13Expensive
- Only some areas need to be densely sampled in
time. - Need MANY intermediate frames to get smooth
results.
14Adaptive Sampling
- Want to sample densely in time only for the
pixels that need it. - Easy with ray tracing. Can trace each ray for a
different time in the interval. Cook84
15Photon Map
- We cant rebuild the photon map for every eye-ray
with a different time! - We would like to do DRT with photons, too.
- Given rays sampling various times and photons
representing lighting at various times, how do we
match them up?
16Photons distributed in time
17Energy
- Radiant Flux Radiant Energy
18Time-Dep. Radiance Estimate
19Static surface, no occlusion
20Photons in time
- Want average radiance ( ? dt )
21Time distribution
22Average over time
23Case 1
For stationary surfaces with unobstructed
visibility through the entire view interval, we
can ignore time distribution of photons.
24Plane Moving Down
t0.0 t0.5 t1.0
25Photon Visualization
t0.0 t0.5 t1.0
26A Trickier Case
Average of independent frames Distributed
photon times
t0.0 t0.5 t1.0
27Examples
28Problem
- A given patch of surface is only visible through
a particular pixel for a small portion of the
total time interval. - Its brightness during that visible interval
should depend only on the photons reaching it
during that narrow window of time not the
average over all times.
29Distribution in Time
30Narrow Window in Time
- Integrate over small visible interval.
31Comparison
32Performance
- Path tracing 9 hrs
- Average of independent frames 47 sec
- TDPM 43 sec
- Our worst case we get essentially no benefit
from adaptive sampling doesnt cost much to
oversample blue background. - Try it in front of 107 polygon forest
33Summary of Method
IF ray-path from eye is unaffected by
motion Can integrate over entire time interval
?t 1. (Use all the spatially nearby photons
in the estimate) ELSE Integrate over shorter
visible interval. Can use several criteria for
choosing ?t adaptively 1. ?t lt user-specified
Max?t 2. ?t chosen to use only
k-nearest-photons-in-time 3. ?t lt time spanned
by the photons
34Truck Scene
35Effect
36Comparison
Average of 9 frames - 316 seconds
37Comparison
Our method 72 seconds
38Comparison
Ignoring case for eye-paths with movement
39Conclusion
- Can incorporate correct global illumination via
photon mapping in a ray-tracer that adaptively
samples in time. - Computing photon map with time-dependence
requires little or no added cost beyond photon
mapping for the corresponding still scene. - Better performance than alternative methods for
animated global illumination.