monte carlo path tracing - graphics.stanford.edu
Post on 04-May-2022
3 Views
Preview:
TRANSCRIPT
Page 1
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Monte Carlo Path Tracing
Today
Path tracing starting from the eye
Path tracing starting from the lights
Which direction is best?
Bidirectional ray tracing
Random walks and Markov chains
Next
Irradiance caching
Photon mapping
CS348B Lecture 14 Pat Hanrahan, Spring 2009
The Rendering Equation
Page 2
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Solving the Rendering Equation
Rendering Equation
Solution
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Successive Approximation
Page 3
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Light Path
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Light Path
Page 4
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Solving the Rendering Equation
One path
Solution is the integral over all paths
Solve using Monte Carlo Integration
Question: How to generate a random path?
Path Tracing from the Eye
Page 5
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing: From Camera
Step 1. Choose a camera ray r given the (x,y,u,v,t) sample
weight = 1;
Step 2. Find ray-surface intersection
Step 3.
if hit light
return weight * Le(r);
else
weight *= reflectance(r)
Choose new ray r’ ~ BRDF(O|I)
Go to Step 2.
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing
10 paths / pixel
Page 6
CS348B Lecture 14 Pat Hanrahan, Spring 2009
M. Fajardo Arnold Path Tracer
Works well for diffuse surfaces
And large hemispherical light sources
CS348B Lecture 14 Pat Hanrahan, Spring 2009
M. Fajardo Arnold Path Tracer
Page 7
CS348B Lecture 14 Pat Hanrahan, Spring 2009
M. Fajardo Arnold Path Tracer
CS348B Lecture 14 Pat Hanrahan, Spring 2009
How Many Bounces?
Avoid path that carry little energy
Terminate when the weight is low
Photons with similar power is a good thing
Think of importance sampling
Integrand is f(x)/p(x) which is constant
Page 8
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Russian Roulette
Terminate photon with probability p
Adjust weight of the result by 1/(1-p)
Intuition:
Reflecting from a surface with R=.5
100 incoming photons with power 2 W
1. Reflect 100 photons with power 1 W
2 Reflect 50 photons with power 2 W
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing: Include Direct Lighting
Step 1. Choose a camera ray r given the
(x,y,u,v,t) sample
weight = 1;
L = 0
Step 2. Find ray-surface intersection
Step 3.
L += weight * Lr(light sources)
weight *= reflectance(r)
Choose new ray r’ ~ BRDF pdf(r)
Go to Step 2.
Page 9
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Penumbra: Trees vs. Paths
4 eye rays per pixel
16 shadow rays per eye ray
64 eye rays per pixel
1 shadow ray per eye ray
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Variance Decreases with N
10 rays per pixel 100 rays per pixel
From Jensen, Realistic Image Synthesis Using Photon Maps
Page 10
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Fixed Sampling (Not Random Enough)
10 paths / pixel
Light Ray Tracing
Page 11
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Classic Ray Tracing
Forward (from eye): E S* (D|G) L
From Heckbert
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Photon Paths
From Heckbert
Caustics
Radiosity
Page 12
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Early Example [Arvo, 1986]
“Backward“ ray tracing
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing: From Lights
Step 1. Choose a light ray.
Choose a ray from the light source
distribution function
x ~ p(x)
d ~ p(d|x)
r = (x, d)
weight = ;
Page 13
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing: From Lights
Step 1. Choose a light ray
Step 2. Find ray-surface intersection
Step 3. Reflect or transmit
u = Uniform()
if u < reflectance(x)
Choose new direction d ~ BRDF(O|I)
goto Step 2
else u < reflectance(x)+transmittance(x)
Choose new direction d ~ BTDF(O|I)
goto Step 2
else // absorption=1–reflectance-transmittance
terminate on surface; deposit energy
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Tracing: From Lights
Step 1. Choose a light ray
Step 2. Find ray-surface intersection
Step 3. Interaction
u = Uniform() / (reflectance(x)+transmittance(x)
if u < reflectance(x)
Choose new direction d ~ BRDF(O|I)
weight *= reflectance(x)
else
Choose new direction d ~ BTDF(O|I)
weight *= transmittance(x)
goto Step 2
Page 14
Bidirectional Path Tracing
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Symmetric Light Path
Page 15
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Symmetric Light Path
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Symmetric Light Path
Page 16
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Bidirectional Ray Tracing
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Path Pyramid
From Veach and Guibas
Page 17
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Comparison
Bidirectional path tracing
25 rays per pixel
Path tracing
56 rays per pixel
From Veach and Guibas
Same amount of time
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Which Direction?
Solve a linear system
Solve for a single xi?
Solve the reverse equation
Source
Estimator
More efficient than solving for all the unknowns
[von Neumann and Ulam]
Page 18
Discrete Random Walk
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Discrete Random Process
Creation Termination
Transition
States
Assign probabilities to each process
Page 19
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Discrete Random Process
Creation Termination
Transition
States
Equilibrium number of particles in each state
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Equilibrium Distribution of States
Total probability of being in states P
Solve this equation
Page 20
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Discrete Random Walk
1. Generate random particles from sources.
2. Undertake a discrete random walk.
3. Count how many terminate in state i [von Neumann and Ulam; Forsythe and Leibler; 1950s]
Creation Termination
Transition
States
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Monte Carlo Algorithm
Define a random variable on the space of paths
Path:
Probability:
Estimator:
Expectation:
Page 21
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Monte Carlo Algorithm
Define a random variable on the space of paths
Probability:
Estimator:
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Estimator
Count the number of particles terminating in state j
Page 22
CS348B Lecture 14 Pat Hanrahan, Spring 2009
Equilibrium Distribution of States
Total probability of being in states P
Note that this is the solution of the equation
Thus, the discrete random walk is an unbiased
estimate of the equilibrium number of particles
in each state
top related