matrix row-column sampling for the many-light problem
Post on 07-Jan-2016
52 Views
Preview:
DESCRIPTION
TRANSCRIPT
Matrix Row-Column Sampling for the Many-Light Problem
Matrix Row-Column Sampling for the Many-Light Problem
Miloš Hašan (Cornell University)
Fabio Pellacini (Dartmouth College)
Kavita Bala (Cornell University)
Complex Illumination: A Challenge
Conversion to Many Lights
Courtesy Walter et al., Lightcuts, SIGGRAPH 05/06
• Area, indirect, sun/sky
A Matrix Interpretation
Pixels(2,000,000)
Lights (100,000)
• Compute sum of columns
• Note: We don’t have the matrix data
Problem Statement
= Σ ( )P
ixel
s
Lights
Indirect Illumination Many Lights
=
100,000 point lights
Σ ( )
Environment Map Many Lights
=
100,000 point lights
Σ ( )
Sun, Sky, Indirect Many Lights
=
100,000 point lights
Σ ( )
Brute Force Takes Minutes
• Why not sum all columns? – With 100,000 lights, still several minutes
10 min 13 min 20 min
Our Contribution• Fast, accurate, GPU-based approximation
• Application: Preview for lighting design
10 min 13 min 20 min
3.8 sec 13.5 sec 16.9 sec
Brute force:
Our result:
Related Work• Many lights (CPU-based): Walter et al 05/06,
Ward 94, Paquette et al 98, Wald et al 03, …• Instant radiosity & related: Keller 97,
Dachsbacher & Stamminger 05/06, Laine et al 07, …• Environment maps: Agarwal et al 03,
Ostromoukhov et al 04, …• Precomputation-based: Sloan et al 02/03, Ng
et al 03/04, Ben-Artzi et al 06, Hasan et al 06, Ritschel et al 07, …
• Other global illumination: Ward et al 88, Jensen 96, Hanrahan et al 91, Christensen 97, Scheel 01/02, Gautron et al 05, Krivanek et al 06, Dachsbacher et al 07, …
Insight #1: Matrix has structure
• Compute small subset of elements• Reconstruct
A simple scene
30 x 30 image The matrix
643 lights
900
pixe
ls
Insight #2: Sampling Pattern Matters
Lights
Pix
els
Point-to-point visibility: Ray-tracingPoint-to-many-points visibility: Shadow-mapping
Row-Column Duality
Shadow map at light position
Surface samples
• Columns: Regular Shadow Mapping
Row-Column Duality
Shadow map at sample position
• Rows: Also Shadow Mapping!
Image as a Weighted Column Sum
compute very small subset of columns
compute weighted sum
• The following is possible:
• Use rows to choose a good set of columns!
Exploration and Exploitation
compute rows (explore)
compute columns (exploit)
weighted sum
?
choose columns and weights
how to choose columns and
weights?
Reduced Matrix
Reduced columns
Clustering Approach
Choose k clustersChoose
representative columns
Reduced columns
Reduced Full
Use the same representatives for
the full matrix
Weighted sum
Representative columns
Visualizing the Reduced Columns
Reduced columns: vectors in high-
dimensional space
visualize as …
radius = norm
Clustering Illustration
Strong but similar columns
Weak columns can be clustered more easily
Columns with various intensities can be clustered
• Minimize:
• where:
The Clustering Metric
total cost of all clusters
cost of a cluster
sum over all pairs in it
norms of the reduced columns
squared distance between normalized
reduced columns
How to minimize?
• Problem is NP-hard• Not much previous research• Should handle large input:
– 100,000 points– 1000 clusters
• We introduce 2 heuristics:– Random sampling– Divide & conquer
Clustering by Random Sampling
Very fast (use optimized BLAS)
Some clusters might be too small / large
Clustering by Divide & Conquer
Splitting small clusters is fast
Splitting large clusters is slow
Combined Clustering Algorithm
Combined Clustering Algorithm
Full Algorithm
Compute rows (GPU)
Weighted sum
Assemble rows into reduced matrix
Cluster reduced columns
Choose representatives
Compute columns (GPU)
Results
• We show 5 scenes:
• Show reference and 5x difference image• All scenes have 100,000+ lights• Timings
– NVidia GeForce 8800 GTX– Light / surface sample creation not included
Temple BunnyKitchen Trees Grand Central
Results: Kitchen• 388k polygons• Mostly indirect illumination• Glossy surfaces• Indirect shadows
Our result: 13.5 sec (432 rows + 864 columns)
Reference: 13 min (using all 100k lights)
5x diff
Results: Temple
• 2.1m polygons• Mostly indirect & sky illumination• Indirect shadows
Our result: 16.9 sec (300 rows + 900 columns)
Reference: 20 min (using all 100k lights)
5x diff
Results: Trees• 328k polygons• Complex incoherent geometry
Our result: 2.9 sec (100 rows + 200 columns)
Reference: 14 min (using all 100k lights)
5x diff
Results: Bunny• 869k polygons• Incoherent geometry• High-frequency lighting• Kajiya-Kay hair shader
Our result: 3.8 sec (100 rows + 200 columns)
Reference: 10 min (using all 100k lights)
5x diff
Results: Grand Central
• 1.5m polygons• Point lights between
stone blocks
Our result: 24.2 sec (588 rows + 1176 columns)
Reference: 44 min (using all 100k lights)
5x diff
The Value of Exploration
Our result(432 rows + 864 columns)
No exploration(Using 1455 lights)
Equal time comparison
The Value of Exploration
Our result No exploration
Equal time comparison: 5x difference from reference
Conclusion
• Fast, high quality approximation for many lights– GPU-oriented– Sample rows to explore low-rank structure– Sample well-chosen columns
• Application: Preview for lighting design– Indirect illumination– Environment maps– Arbitrary lights and shaders
Future Work
• How many rows + columns?– Pick automatically
• Row / column alternation
• Progressive algorithm:– stop when user likes the image
• Render multiple frames at once?
Acknowledgments
• Veronica Sundstedt and Patrick Ledda– Temple scene
• Bruce Walter, PCG @ Cornell• NSF CAREER 0644175• Affinito-Stewart Award
Thank You
Discarded slides
Indirect Illumination Many Lights
• shoot photons from light sources
• deposit on every bounce
• treat photons as point lights
• cosine-weighted emission
Low Rank Assumption
• Worst case: lights with very local contribution
…
The Value of Exploration
Our result(432 rows + 864 columns)
No exploration(Using 1992 lights)
Equal time comparison
The Value of Exploration
Our result No exploration
Equal time comparison: 5x difference image
top related