22
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

Monte Carlo Path Tracing - graphics.stanford.edu

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

Page 3

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Light Path

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Light Path

Page 4: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

Page 10

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Fixed Sampling (Not Random Enough)

10 paths / pixel

Light Ray Tracing

Page 11: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

Page 14

Bidirectional Path Tracing

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Symmetric Light Path

Page 15: Monte Carlo Path Tracing - graphics.stanford.edu

Page 15

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Symmetric Light Path

CS348B Lecture 14 Pat Hanrahan, Spring 2009

Symmetric Light Path

Page 16: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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: Monte Carlo Path Tracing - graphics.stanford.edu

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