Scalable manylight methods. Jaroslav Křivánek Charles University in Prague. Instant radiosity. Approximate indirect illumination by Virtual Point Lights (VPLs). Render with VPLs. Generate VPLs. Instant radiosity with glossy surfaces. Large number of VPLs required
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Virtual Point Lights (VPLs)
Generate VPLs
Ground truth
1,000 VPLs
100,000 VPLs
Walter et al., SIGGRAPH 2005/2006
Slides courtesy Bruce Walter:
Area lights + Sun/sky + Indirect
Tableau Scene
Camera
Three Cuts
#1
#1
#1
#4
#4
#2
#3
#4
4
4
4
1
4
1
4
1
4
1
2
3
4
1
2
3
4
1
2
3
4
Good
Bad
Bad
Three Cuts
#1
#1
#1
#4
#4
#2
#3
#4
4
4
4
1
4
1
4
1
4
1
2
3
4
1
2
3
4
1
2
3
4
Bad
Good
Bad
Three Cuts
#1
#1
#1
#4
#4
#2
#3
#4
4
4
4
1
4
1
4
1
4
1
2
3
4
1
2
3
4
1
2
3
4
Good
Good
Good
Light Tree
Representative
4
Light
Clusters
1
4
Individual
1
2
3
4
Lights
S
result=MiGiViIi
lights
Material term
Visibility term
Light intensity
Geometric term
lights
Cluster ApproximationSum precomputed during light tree
construction
result≈ MjGjVjIi
j is the representative light
Cluster
error<MubGubVubIi
S

lights
Cluster
ub= upper bound
Reference (1096s)
Error
Error x16
Kitchen, 388K polygons, 4608 lights (72 area sources)
Lightcuts 128s
4 608 Lights
(Area lights only)
Avg. 259 shadow rays / pixel
Lightcuts 290s
59 672 Lights
(Area + Sun/sky + Indirect)
Avg. 478 shadow rays / pixel
(only 54 to area lights)
Tableau Scene
Kitchen Scene
Problem: Large cuts in dark areas
Direct only (relative cost 1x)
Direct+Indirect (1.3x)
Direct+Indirect+Volume (1.8x)
Direct+Indirect+Volume+Motion (2.2x)
Light points
Camera
Light points
Camera
Light points
Pixel
Camera
Gather points
Light points
Gather points
Pixel= SjMjiGjiVjiIi
(j,i)ÎGxL
Visibility term
Material term
Light intensity
Gather strength
Geometric term
L4
L5
L2
L0
L1
L3
G2
G0
G1
Product GraphProduct Graph
G0
=
Light tree
G2
X
G1
L0
L4
L1
L6
L2
L5
L3
Gather tree
L6
Product Graph
L4
L5
G0
L2
L0
L1
L3
=
Light tree
G2
X
G1
G2
L0
L4
L1
L6
L2
L5
L3
G0
G1
Gather tree
L6
Product Graph
L4
L5
G0
L2
L0
L1
L3
=
Light tree
G2
X
G1
G2
L0
L4
L1
L6
L2
L5
L3
G0
G1
Gather tree
L0
L4
L1
L6
L2
L5
L3
G0
G2
G1
L0
L4
L1
L6
L2
L5
L3
G0
G2
G1
L0
L4
L1
L6
L2
L5
L3
G0
G2
G1
Zoomed insets
Metropolis
Time 148min (15x)
Visible noise
5% brighter (caustics etc.)
Our result
Time 9.8min
180 Gather points X 13,000 Lights = 234,000 Pairs per pixel
Avg cut size 447 (0.19%)
Hašan et al., SIGGRAPH 2007
Slides courtesy Miloš Hašan:
http://miloshasan.net/
Designed specifically for GPU rendering (shadow mapping)
Brute force
(100k VPLs)
10 min
13 min
20 min
MRCS(our result)
3.8 sec
13.5 sec
16.9 sec
Lights
Pixels
Pointtomanypoints visibility: Shadowmapping
Pointtopoint visibility: Raytracing
Lights
Pixels
1 shadow map
Shadow map at light position
Surface samples
Lights
Pixels
1 shadow map
Shadow map at sample position
Lights
Pixels
Compute small subset of columns(i.e. pick some lights)
compute weighted sum
Use rows to choose a good set of columns (=lights)
Lights
Pixels
?
how to choose columns and weights?
compute rows
(i.e. pick pixels, compute contrib from ALL lights for each)
choose columns (=lights) and weights
compute columns(i.e. for the selected lights, compute contribution to all pixels)
weighted sum
Reduced columns
radius = weight
position = information vector
Visualizing the Reduced ColumnsReduced columns: vectors in highdimensional space
visualize as …
total cost of all clusters
squared distance between information vectors
weights
cost of a cluster
sum over all pairs in it
Minimize:
where:
Columns with various intensities can be clustered
Strong but similar columns
Weak columns can be clustered more easily
Very fast (use optimized BLAS)
Some clusters might be too small / large
Lights
Pixels
Assemble rows into reduced matrix
Cluster reduced columns
Compute rows (GPU)
Choose representatives
Weighted sum
Compute columns (GPU)
5x diff
Our result: 16.9 sec (300 rows + 900 columns)
Reference: 20 min (using all 100k lights)
2.1m polygons
Mostly indirect & sky illumination
Indirect shadows
5x diff
Our result: 13.5 sec (432 rows + 864 columns)
Reference: 13 min (using all 100k lights)
388k polygons
Mostly indirect illumination
Glossy surfaces
Indirect shadows
5x diff
Reference: 10 min (using all 100k lights)
Our result: 3.8 sec (100 rows + 200 columns)
869k polygons
Incoherent geometry
Highfrequency lighting
KajiyaKay hair shader
http://www.cs.dartmouth.edu/~fabio/publication.php?id=lightslice11
Cannot use shadow maps for row/column sampling
Clustering borrowed from the original MRCS paper
Not really a fair comparison to MRCS (uses ray traced visibility)
Contributions to the record locationof individual lights
Importance record 1
Importance record 2
Importance record 3
Full light contribution
Unoccluded contribution
Uniform distribution
Unoccluded contribution w/ bounded Gterm
Lightcuts [Walter et al 05/06]
Matrix Row Column Sampling [Hašan et al. 07]
LightSlice[Ou & Pellacini 2011]
Importance caching [Georgiev et al. 2012]