9
12/6/2010 12/6/2010 1 Monte Carlo Integration Monte Carlo Integration for Image Synthesis for Image Synthesis COS 526, Fall 2010 COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz Rusinkiewicz, Shirley , Shirley Outline Outline • Motivation Motivation Monte Carlo integration Monte Carlo integration Monte Carlo path tracing Monte Carlo path tracing Variance reduction techniques Variance reduction techniques Sampling techniques Sampling techniques • Conclusion Conclusion Motivation Motivation Rendering = integration Rendering = integration Antialiasing Antialiasing Soft shadows Soft shadows Indirect illumination Indirect illumination Caustics Caustics Surface Surface Eye Eye Light Light x ϖ Surface Surface ϖw d n w ) w (x, L w w x f ) w (x, L ) w (x, L i r e o r r r r r r r r ) ( ) , , ( + = Challenge Challenge Rendering integrals are difficult to evaluate Rendering integrals are difficult to evaluate Multiple dimensions Multiple dimensions Discontinuities Discontinuities Partial occluders Partial occluders • Highlights Highlights • Caustics Caustics Jensen Jensen dA x x G x x x)V x L( e x x x x f e) (x,x L ) w L(x, S r e ) , ( ) , ( ) , , ( + = r Outline Outline • Motivation Motivation Monte Carlo integration Monte Carlo integration Monte Carlo path tracing Monte Carlo path tracing Variance reduction techniques Variance reduction techniques Sampling techniques Sampling techniques • Conclusion Conclusion Integration in 1D Integration in 1D x=1 x=1 f(x) f(x) ? ) ( 1 0 = dx x f Slide courtesy of Slide courtesy of Peter Shirley Peter Shirley

Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

Embed Size (px)

Citation preview

Page 1: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

11

Monte Carlo Integration Monte Carlo Integration

for Image Synthesisfor Image Synthesis

COS 526, Fall 2010COS 526, Fall 2010

Tom Tom FunkhouserFunkhouser

Slides from Slides from RusinkiewiczRusinkiewicz, Shirley, Shirley

OutlineOutline

•• MotivationMotivation

•• Monte Carlo integrationMonte Carlo integration

•• Monte Carlo path tracingMonte Carlo path tracing

•• Variance reduction techniquesVariance reduction techniques

•• Sampling techniquesSampling techniques

•• ConclusionConclusion

MotivationMotivation

•• Rendering = integrationRendering = integration–– AntialiasingAntialiasing

–– Soft shadowsSoft shadows

–– Indirect illuminationIndirect illumination

–– CausticsCaustics

SurfaceSurface

EyeEye

LightLight

xx

ωω

SurfaceSurface

ωω’’

wdnw)w(x,Lwwxf)w(x,L)w(x,L ireo

rrrrrrrr)(),,( •′′′+= ∫

Ω

ChallengeChallenge

•• Rendering integrals are difficult to evaluateRendering integrals are difficult to evaluate–– Multiple dimensionsMultiple dimensions

–– DiscontinuitiesDiscontinuities•• Partial occludersPartial occluders

•• HighlightsHighlights

•• CausticsCaustics

JensenJensen

dAxxGxxx)VxL(exxxxfe)(x,xL)wL(x,S

re ),(),(),,( ′′→′→→′+→= ∫r

OutlineOutline

•• MotivationMotivation

•• Monte Carlo integrationMonte Carlo integration

•• Monte Carlo path tracingMonte Carlo path tracing

•• Variance reduction techniquesVariance reduction techniques

•• Sampling techniquesSampling techniques

•• ConclusionConclusion

Integration in 1DIntegration in 1D

x=1x=1

f(x)f(x)

?)(1

0∫ =dxxf

Slide courtesy of Slide courtesy of Peter ShirleyPeter Shirley

Page 2: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

22

We can approximateWe can approximate

x=1x=1

f(x)f(x) g(x)g(x)

∫∫ =1

0

1

0

)()( dxxgdxxf

Slide courtesy of Slide courtesy of Peter ShirleyPeter Shirley

Or we can averageOr we can average

x=1x=1

f(x)f(x)E(f(x))E(f(x))

))(()(1

0

xfEdxxf =∫

Slide courtesy of Slide courtesy of Peter ShirleyPeter Shirley

Estimating the averageEstimating the average

xx11

f(x)f(x)

xxNN

∑∫=

=N

iixf

Ndxxf

1

1

0

)(1

)(

E(f(x))E(f(x))

Slide courtesy of Slide courtesy of Peter ShirleyPeter Shirley

Other DomainsOther Domains

x=bx=b

f(x)f(x)< f >< f >abab

x=ax=a

∑∫=

−=N

ii

b

a

xfN

abdxxf

1

)()(

Slide courtesy of Slide courtesy of Peter ShirleyPeter Shirley

Multidimensional DomainsMultidimensional Domains

•• Same ideas apply for integration over …Same ideas apply for integration over …–– Pixel areasPixel areas

–– SurfacesSurfaces

–– Projected areasProjected areas

–– DirectionsDirections

–– Camera aperturesCamera apertures

–– TimeTime

–– PathsPaths

∑∫=

=N

ii

UGLY

xfN

dxxf1

)(1

)(

SurfaceSurface

EyeEye

PixelPixel

xx

OutlineOutline

•• MotivationMotivation

•• Monte Carlo integrationMonte Carlo integration

•• Monte Carlo path tracingMonte Carlo path tracing

•• Variance reduction techniquesVariance reduction techniques

•• Sampling techniquesSampling techniques

•• ConclusionConclusion

Page 3: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

33

Monte Carlo Path TracingMonte Carlo Path Tracing

•• Integrate radiance Integrate radiance for each pixel for each pixel by sampling pathsby sampling pathsrandomlyrandomly

Diffuse SurfaceDiffuse Surface

EyeEye

LightLight

xx

SpecularSpecularSurfaceSurface

PixelPixel

wdnw)w(x,Lwwxf)w(x,L)w(x,L ireo

rrrrrrrr)(),,( •′′′+= ∫

Ω

Simple Monte Carlo Path TracerSimple Monte Carlo Path Tracer

•• Step 1:Step 1: Choose a ray p=camera, d=(Choose a ray p=camera, d=(θθ,,φφ); assign); assign weight = 1weight = 1

•• Step 2:Step 2: Trace ray to find intersection with nearest surfaceTrace ray to find intersection with nearest surface

•• Step 3:Step 3: Randomly choose between emitted and reflected lightRandomly choose between emitted and reflected light–– Step 3a:Step 3a: If emitted,If emitted,

return weight * Lereturn weight * Le

–– Step 3b:Step 3b: If reflected,If reflected,weight *= reflectanceweight *= reflectanceGenerate ray in random directionGenerate ray in random directionGo to step 2Go to step 2

Monte Carlo Path TracingMonte Carlo Path Tracing

Big diffuse light source, 20 minutesBig diffuse light source, 20 minutes

JensenJensen

Monte Carlo Path TracingMonte Carlo Path Tracing

•• AdvantagesAdvantages–– Any type of geometry (procedural, curved, ...)Any type of geometry (procedural, curved, ...)

–– Any type of BRDF (specular, glossy, diffuse, ...)Any type of BRDF (specular, glossy, diffuse, ...)

–– Samples all types of paths (L(SD)*E)Samples all types of paths (L(SD)*E)

–– Accuracy controlled at pixel levelAccuracy controlled at pixel level

–– Low memory consumptionLow memory consumption

–– Unbiased Unbiased -- error appears as noise in final imageerror appears as noise in final image

•• DisadvantagesDisadvantages–– Slow convergenceSlow convergence

–– Noise in final imageNoise in final image

Monte Carlo Path TracingMonte Carlo Path Tracing

1000 paths/pixel1000 paths/pixel

JensenJensen

VarianceVariance

xx11 xxNN

E(f(x))E(f(x))

[ ] 2

1

))](()([1

)( xfExfN

xfVarN

ii −= ∑

=

Page 4: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

44

VarianceVariance

xx11 xxNN

E(f(x))E(f(x))

[ ] [ ])(1

))(( xfVarN

xfEVar =

Variance decreases as 1/NVariance decreases as 1/NError decreases as 1/sqrt(N)Error decreases as 1/sqrt(N)

OutlineOutline

•• MotivationMotivation

•• Monte Carlo integrationMonte Carlo integration

•• Monte Carlo path tracingMonte Carlo path tracing

•• Variance reduction techniquesVariance reduction techniques

•• Sampling techniquesSampling techniques

•• ConclusionConclusion

VarianceVariance

•• Problem: variance decreases with 1/NProblem: variance decreases with 1/N–– Increasing # samples removes noise slowlyIncreasing # samples removes noise slowly

xx11 xxNN

E(f(x))E(f(x))

Variance Reduction TechniquesVariance Reduction Techniques

•• Importance samplingImportance sampling

•• Stratified samplingStratified sampling

•• Metropolis samplingMetropolis sampling

•• QuasiQuasi--randomrandom ∑∫=

=N

iixf

Ndxxf

1

1

0

)(1

)(

Importance SamplingImportance Sampling

•• Put more samples where f(x) is biggerPut more samples where f(x) is bigger

)(

)(

1)(

1

i

ii

N

ii

xp

xfY

YN

dxxf

=

= ∑∫=Ω

xx11 xxNN

E(f(x))E(f(x))

Importance SamplingImportance Sampling

•• This is still unbiasedThis is still unbiased

xx11 xxNN

E(f(x))E(f(x))

[ ]

Ω

Ω

Ω

=

=

=

dxxf

dxxpxp

xf

dxxpxYYE i

)(

)()(

)(

)()(

for all Nfor all N

Page 5: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

55

Importance SamplingImportance Sampling

•• Zero variance if p(x) ~ f(x)Zero variance if p(x) ~ f(x)

x1 xN

E(f(x))

Less variance with betterLess variance with betterimportance samplingimportance sampling

0)(

1

)(

)(

)()(

=

==

=

YVar

cxp

xfY

xcfxp

i

ii

Stratified SamplingStratified Sampling

•• Estimate subdomains separatelyEstimate subdomains separately

xx11 xxNN

EEkk(f(x))(f(x))

ArvoArvo

Stratified SamplingStratified Sampling

•• This is still unbiasedThis is still unbiased

=

=

=

=

M

kii

N

iiN

FNN

xfN

F

1

1

1

)(1

xx11 xxNN

EEkk(f(x))(f(x))

Stratified SamplingStratified Sampling

•• Less overall variance if Less overall variance if less variance in subdomainsless variance in subdomains

[ ] [ ]∑=

=M

kiiN FVarN

NFVar

12

1

xx11 xxNN

EEkk(f(x))(f(x))

OutlineOutline

•• MotivationMotivation

•• Monte Carlo integrationMonte Carlo integration

•• Monte Carlo path tracingMonte Carlo path tracing

•• Variance reduction techniquesVariance reduction techniques

•• Sampling techniquesSampling techniques

•• ConclusionConclusion

Simple Monte Carlo Path TracerSimple Monte Carlo Path Tracer

•• Step 1:Step 1: Choose a ray (u,v,Choose a ray (u,v,θθ,,φφ); assign); assign weight = 1weight = 1

•• Step 2:Step 2: Trace ray to find intersection with nearest surfaceTrace ray to find intersection with nearest surface

•• Step 3:Step 3: Randomly choose between emitted and reflected lightRandomly choose between emitted and reflected light–– Step 3a:Step 3a: If emitted,If emitted,

return weight * Lereturn weight * Le

–– Step 3b:Step 3b: If reflected,If reflected,weight *= reflectanceweight *= reflectanceGenerate ray in random directionGenerate ray in random directionGo to step 2Go to step 2

Page 6: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

66

Sampling TechniquesSampling Techniques

•• Problem: how do we generate random Problem: how do we generate random points/directions during path tracing?points/directions during path tracing?–– NonNon--rectilinear domainsrectilinear domains

–– Importance (BRDF)Importance (BRDF)

–– StratifiedStratified

SurfaceSurface

EyeEye

xx

Generating Random PointsGenerating Random Points

•• Uniform distribution:Uniform distribution:–– Use random number generatorUse random number generator

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolisC

umul

ativ

eC

umul

ativ

eP

roba

bilit

yP

roba

bilit

y

00

11

ΩΩ

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Cum

ulat

ive

Cum

ulat

ive

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

yy

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Cum

ulat

ive

Cum

ulat

ive

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

yy

Page 7: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

77

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Cum

ulat

ive

Cum

ulat

ive

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

yy

xx

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Cum

ulat

ive

Cum

ulat

ive

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Pro

babi

lity

Pro

babi

lity

00

11

ΩΩ

xxxx

xxxx

xxxx

xxxx xxxx

xxxxxxxx

xxxx

xxxx xxxx

Generating Random PointsGenerating Random Points

•• Specific probability distribution:Specific probability distribution:–– Function inversionFunction inversion

–– RejectionRejection

–– MetropolisMetropolis

Pro

babi

lity

0

1

Ω

xx

xx

xx

xx xx

xxxx

xx

xx xx

Combining Multiple PDFsCombining Multiple PDFs

•• Balance heuristicBalance heuristic–– Use combination of samples generated for each PDFUse combination of samples generated for each PDF

–– Number of samples for each PDF chosen by weightsNumber of samples for each PDF chosen by weights

–– Near optimalNear optimal

Page 8: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

88

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

RenderParkRenderPark

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

HeinrichHeinrich

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

UnfilteredUnfiltered

FilteredFiltered JensenJensen

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

AdaptiveAdaptive

FixedFixed

OhbuchiOhbuchi

Monte Carlo ExtensionsMonte Carlo Extensions

•• UnbiasedUnbiased–– Bidirectional path tracingBidirectional path tracing

–– Metropolis light transportMetropolis light transport

•• Biased, but consistentBiased, but consistent–– Noise filteringNoise filtering

–– Adaptive samplingAdaptive sampling

–– Irradiance cachingIrradiance caching

JensenJensen

Page 9: Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image Synthesis COS 526, Fall 2010 Tom Tom Funkhouser Funkhouser Slides from Slides from Rusinkiewicz

12/6/201012/6/2010

99

SummarySummary

•• Monte Carlo Integration MethodsMonte Carlo Integration Methods–– Very generalVery general

–– Good for complex functions with high dimensionalityGood for complex functions with high dimensionality

–– Converge slowly (but error appears as noise)Converge slowly (but error appears as noise)

•• ConclusionConclusion–– Preferred method for difficult scenesPreferred method for difficult scenes

–– Noise removal (filtering) and Noise removal (filtering) and irradiance caching (photon maps)irradiance caching (photon maps)used in practiceused in practice

More InformationMore Information

•• BooksBooks–– Realistic Ray TracingRealistic Ray Tracing, Peter Shirley, Peter Shirley

–– Realistic Image Synthesis Using Photon MappingRealistic Image Synthesis Using Photon Mapping, Henrik Wann Jensen, Henrik Wann Jensen

•• ThesesTheses–– Robust Monte Carlo Methods for Light Transport SimulationRobust Monte Carlo Methods for Light Transport Simulation, Eric Veach, Eric Veach

–– Mathematical Models and Monte Carlo Methods for Physically Based Mathematical Models and Monte Carlo Methods for Physically Based RenderingRendering, Eric La Fortune, Eric La Fortune

•• Course NotesCourse Notes–– Mathematical Models for Computer GraphicsMathematical Models for Computer Graphics, Stanford, Fall 1997, Stanford, Fall 1997

–– State of the Art in Monte Carlo Methods for Realistic Image SynthesisState of the Art in Monte Carlo Methods for Realistic Image Synthesis, , Course 29, SIGGRAPH 2001Course 29, SIGGRAPH 2001