Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image...
Transcript of Monte Carlo Integration for Image Synthesis · 12/6/2010 1 Monte Carlo Integration for Image...
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
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
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 −= ∑
=
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
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
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
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
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
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