global illumination with many-light methods
DESCRIPTION
Global illumination with many-light methods. Jaroslav Křivánek Charles University, Prague. Review: Path integral formulation of light transport. Veach , 1998. Zobrazovací rovnice v 3b formulaci. Měřicí rovnice v 3b formulaci. Rovnovážná radiance (Řešení zobrazovací rovnice). - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/1.jpg)
Global illumination with many-light methods
Jaroslav KřivánekCharles University, Prague
![Page 2: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/2.jpg)
Review: Path integral
formulation of light transport
Veach, 1998
![Page 3: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/3.jpg)
Zobrazovací rovnice v 3b formulaci
M r dAGfL
LL
xxxxxxxx
xxxx
)()()(
)()( e
2
coscos)()(
xxxxxx
ioVG
o
i'
![Page 4: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/4.jpg)
Měřicí rovnice v 3b formulaci
Důležitost emitovaná z x’ do x(Značení: šipka = směr šíření světla, nikoli důležitosti)
x’ ... na senzorux … na ploše scnény
MMj AAGLWI xxxxxxxx dd)()()((j)e
Rovnovážná radiance(Řešení zobrazovací rovnice)
![Page 5: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/5.jpg)
Transport světla jako integrál přes prostor světelných cest Cíl: místo integrální rovnice chceme formulovat
transport světla jako integrál přes cesty:
)(d)( xxfI jj
Hodnota (“měření“) j-tého pixelu
Prostor všech světelných cest Spojujících zdroj světla s pixelem j
Příspěvek cesty x k hodnotě pixelu(contribution function)
Míra na množině světelných cest
![Page 6: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/6.jpg)
Obor integrování
množina cest všech možných délek
… množina cest délky k
kxxxx 10
![Page 7: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/7.jpg)
Míra na prostoru cest
Diferenciální míra pro cesty délky k
kdAdAdxd k xxxx
0)()( 0
Tj. násobný integrál přes plochu scény, pro každý vrchol cesty jedna „fajfka“
![Page 8: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/8.jpg)
Aplikace integrálu přes cesty
Odhad integrálu pomocí klasických Monte Carlo metod:
Jak definovat a spočítat hustotu na prostoru cest?
)()( xdxfI jj
)()(
XpXf
I jj
![Page 9: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/9.jpg)
Hustota p-nosti na prostoru cest
Hustota pravděpodobnosti cesty
Sdružená hustota pozic vrcholů cesty:
Součin podmíněných hustot pro jednotlivé vrcholy (vzhledem k plošné míře)
kxxxx 10
),|()|()(),,,()(
102010
10
xxxxxxxxxxppp
pp k
![Page 10: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/10.jpg)
Hustota pro vzrokování směru
Hustota p-nosti není invariantní vůči míře Nutno konvertovat z dw na dA
o
i'
ow
![Page 11: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/11.jpg)
Instant radiosity
Keller, 1997
![Page 12: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/12.jpg)
• http://dl.acm.org/citation.cfm?id=258769
• The “original” many-light method• Probably the first GPU-based GI
algorithm12
Instant radiositySIGGRAPH 1997
![Page 13: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/13.jpg)
• Approximate indirect illumination byVirtual Point Lights (VPLs)
1. Generate VPLs
13
Instant radiosity
2. Render with VPLs
![Page 14: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/14.jpg)
• Exactly the same as photon tracing
– see e.g. CG III slides: http://cgg.mff.cuni.cz/~jaroslav/teaching/2011-pg3/slides/krivanek-10-npgr010-2011-pm.pptx
14
VPL Tracing
![Page 15: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/15.jpg)
1. Pick a light source
2. Pick an initial point an direction
3. Trace particle
4. Create a VPL (photon) at every non-specular surface intersection
15
VPL Tracing
![Page 16: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/16.jpg)
• Diffuse VPL– Position, surface normal– “Power”
• Glossy VPL– Position, surface normal– “Power”– BRDF parameters at VPL position– Incident direction
16
VPL
![Page 17: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/17.jpg)
17
VPL contribution
x
p )()(
)()(
contribVPL
o
xpxpxpxp
VG
BRDFEDF
w
VPL power
VPL emission distribution(BRDF lobe at p – for a diffuse VPL can be folded into )
Geometry term
wo
Visibility
![Page 18: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/18.jpg)
18
Effect of variance
“correlated noise”
![Page 19: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/19.jpg)
19
Getting rid of variance – Clamping
x
p )()(
)()(
contribVPL
o
xpxpxpxp
VG
BRDFEDF
w
VPL power
VPL emission distribution(BRDF lobe at p – for a diffuse VPL can be folded into )
Geometry term
wo
Visibility
min{ c, }
![Page 20: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/20.jpg)
20
Effect of clamping
1000 VPLs - no clamping
missing energy
1000 VPLs - clamping reference (path tracing)
![Page 21: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/21.jpg)
• VPLs = light sub-paths
• VPL contributions = sub-path connections
• Path splitting at VPL position
21
IR as a path-sampling technique
![Page 22: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/22.jpg)
• Works great in diffuse scenes
• 100s of VPLs sufficient for ok-ish images
• Basis of many real-time GI algorithms
• Efficiency: accumulate VPL contribs using GPU (shadow mapping for visibility) 22
Instant radiosity
![Page 23: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/23.jpg)
• 128 VPLs
23
IR: Results from the original paper
![Page 24: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/24.jpg)
24
Digression: Shadow Mapping
![Page 25: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/25.jpg)
• Shadow maps for 180 degree lights (VPLs)
25
Digression: Shadow Mapping
Images: Brabec et al. 2002
Option 1: Hemicube shadow maps. slow (render scene 5 times)
Option 2: Paraboloid mapping
![Page 26: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/26.jpg)
• Paraboloid shadow mapping
26
Digression: Shadow Mapping
Images: Brabec et al. 2002
![Page 27: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/27.jpg)
Real-time GI with instant radiosity
![Page 28: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/28.jpg)
• Reflective shadow maps [Dachsbacher and Stamminger 05]– Fast VPL generation
• Incremental Instant Radiosity [Laine et al. 07]– Only a few new VPLs per frame
• Imperfect Shadow Maps [Ritschel et al. 08]– Faster shadow map rendering 28
Real-time GI with Instant radiosity
![Page 29: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/29.jpg)
• http://cg.ibds.kit.edu/publikationen.php
• Key idea: Interpret shadow map pixels as VPLs
29
Reflective shadow mapsI3D 2005
![Page 30: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/30.jpg)
• Key idea: Interpret shadow map pixels as VPLs
30
Reflective shadow maps
![Page 31: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/31.jpg)
• Key idea: Interpret shadow map pixels as VPLs
• Problem– Too many SM pixels -> too many VPLs
• Solution– Subsample the RSM– Different samples for
each pixel
31
Reflective shadow maps
![Page 32: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/32.jpg)
• Consider x at which we compute indirect illum.– Project x onto the RSM– Select RSM pixels close to the projection
32
Reflective shadow maps
Sampling pattern w/ sample weights
![Page 33: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/33.jpg)
• Only one-bounce indirect illumination
• Further optimizations– no visibility testing in indirect calculation– screen-space subsampling
• Results– 5fps for 400 VPLs on an
GeForce Quadro FX4000
33
Reflective shadow maps
![Page 34: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/34.jpg)
• http://www.tml.tkk.fi/~samuli/
• Key idea: reuse VPLs from previous frames
34
Incremental Instant Radiosity
EGSR 2007
![Page 35: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/35.jpg)
VPL Reuse
• Reuse VPLs from previous frame– Generate as few new VPLs as possible– Stay within budget, e.g. 4-8 new
VPLs/frame+Benefit: Can reuse shadow maps! ! Disclaimer: Scene needs to be
static (only light positions can change)
Slide courtesy Samuli Laine
![Page 36: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/36.jpg)
How To Reuse VPLs• Every frame, do the following:
– Delete invalid VPLs– Reproject existing VPLs to a 2D domain
according to the new light source position
– Delete more VPLs if the budget says so– Create new VPLs– Compute VPL intensities
Slide courtesy Samuli Laine
![Page 37: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/37.jpg)
2D Domain for VPLs
• Let’s concentrate on 180o cosine-falloff spot lights for now
• Nusselt analogUniform distribution in unit disc
= Cosine-weighted directional distribution
Slide courtesy Samuli Laine
![Page 38: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/38.jpg)
Reprojecting VPLs
• So we have VPLs from previous frame• Discard ones behind the spot light• Discard ones behind obstacles• Reproject the rest
Slide courtesy Samuli Laine
![Page 39: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/39.jpg)
Spatial Data Structures
• Compute Voronoi diagram and Delaunay triangulation for the VPL point set
Slide courtesy Samuli Laine
![Page 40: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/40.jpg)
Deleting VPLs
• Greedily choose the ”worst” VPL= The one with shortest Delaunay edges
Slide courtesy Samuli Laine
![Page 41: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/41.jpg)
Generating New VPLs
• Greedily choose the ”best” spot= The one with longest distance to existing
VPLs
Slide courtesy Samuli Laine
![Page 42: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/42.jpg)
Computing VPL Intensities
• Since our distribution may be nonuniform, weight each VPL according to Voronoi area
Slide courtesy Samuli Laine
![Page 43: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/43.jpg)
Interleaved Sampling• Reduces the number of shadow map
lookups per pixel• For each pixel, use a subset of all VPLs• Apply geometry-aware filtering
Slide courtesy Samuli Laine
![Page 44: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/44.jpg)
Resolution Time (ms) FPS1024×7680 17.0 48.61600×1200 30.1 25.9
Sibenik
Triangles:
tessellated 109k
![Page 45: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/45.jpg)
• http://www.mpi-inf.mpg.de/resources/ImperfectShadowMaps/
• Key idea: Faster shadow map rendering using a point-based geometry representation 45
Imperfect Shadow Maps
![Page 46: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/46.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Directlight
Frame t+1
Motivation
Directlight
Frame t
Indirect shadow
• Challenging: Dynamic indirect visibility
No indirect shadowSlide courtesy Tobias Ritschel
![Page 47: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/47.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Instant Radiosity
This is 30 VPLs. You may need 1000…Slide courtesy Tobias Ritschel
![Page 48: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/48.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
• 1024 VPLs• 100k 3D model • 32x32 depth map• ~300M
transforms• 100x overdraw
Instant Radiosity bottleneck32
32
Slide courtesy Tobias Ritschel
![Page 49: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/49.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Imperfect shadow maps• Observations:
Low quality (imperfect) depth maps sufficient for many faint VPLs that form smooth lighting
• Contribution:Efficient generation of low quality depth maps
• Main steps (detailed next)1. VPL generation2. Point-based depth maps3. Pull-push to fill holes4. Shading
Slide courtesy Tobias Ritschel
![Page 50: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/50.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Step 2: Point-based depth maps
ImperfectClassic ImperfectSmaller points
Less points
Slide courtesy Tobias Ritschel
![Page 51: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/51.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
VPL / Depth map
Step 2: Point-based depth maps
• Pre-process:Distribute points on surface– ~8k points for every VPL– Different set for every
VPLs
Slide courtesy Tobias Ritschel
![Page 52: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/52.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Step 3: Pull-Push• Depth maps from points have holes
3D2D
Without pull-pushClassic With pull-pushSlide courtesy Tobias Ritschel
![Page 53: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/53.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
With pull-push
Step 3: Pull-Push
Without pull-pushClassic
• We fill those holes using pull-push ..
Slide courtesy Tobias Ritschel
![Page 54: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/54.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
With pull-push
Step 3: Pull-Push
Without pull-push
• .. on all depth maps in parallel.
Slide courtesy Tobias Ritschel
![Page 55: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/55.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Step 4: Shading• Separate direct and indirect, both deferred• Indirect: Interleaved sampling, geometry aware blur
Direct + Indirect
Direct only Indirect only
G-Bu
ffer
Sim
ple
blur
Edge
-aw
are
Slide courtesy Tobias Ritschel
![Page 56: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/56.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Results: Quality (PBRT, hours)
Slide courtesy Tobias Ritschel
![Page 57: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/57.jpg)
Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, T. Ritschel et al., SIGGRAPH Asia 2008. Singapore, Dec. 12th, 2008
Results: Quality (Ours, 11 fps)
Slide courtesy Tobias Ritschel
![Page 58: Global illumination with many-light methods](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816386550346895dd47151/html5/thumbnails/58.jpg)
• Doesn’t really work that great…
– No contact indirect shadows
– Large scenes don’t work well
58
Imperfect shadow maps: Conclusion