1 / 46

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. Area, indirect, sun/sky.

sona
Download Presentation

Matrix Row-Column Sampling for the Many-Light Problem

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matrix Row-Column Sampling for the Many-Light Problem Miloš Hašan (Cornell University) Fabio Pellacini (Dartmouth College) Kavita Bala (Cornell University)

  2. Complex Illumination: A Challenge

  3. Conversion to Many Lights • Area, indirect, sun/sky Courtesy Walter et al., Lightcuts, SIGGRAPH 05/06

  4. A Matrix Interpretation Lights (100,000) Pixels (2,000,000)

  5. Problem Statement • Compute sum of columns • Note: We don’t have the matrix data Lights = Σ ( ) Pixels

  6. Indirect Illumination  Many Lights = Σ ( ) 100,000 point lights

  7. Environment Map  Many Lights = Σ ( ) 100,000 point lights

  8. Sun, Sky, Indirect  Many Lights = Σ ( ) 100,000 point lights

  9. Brute Force Takes Minutes • Why not sum all columns? • With 100,000 lights, still several minutes 10 min 13 min 20 min

  10. Our Contribution • Fast, accurate, GPU-based approximation • Application: Preview for lighting design Brute force: 10 min 13 min 20 min Our result: 3.8 sec 13.5 sec 16.9 sec

  11. 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, …

  12. Insight #1: Matrix has structure • Compute small subset of elements • Reconstruct 643 lights 900 pixels A simple scene 30 x 30 image The matrix

  13. Insight #2: Sampling Pattern Matters Lights Pixels Point-to-many-points visibility: Shadow-mapping Point-to-point visibility: Ray-tracing

  14. Row-Column Duality • Columns: Regular Shadow Mapping Shadow map at light position Surface samples

  15. Row-Column Duality • Rows: Also Shadow Mapping! Shadow map at sample position

  16. Image as a Weighted Column Sum • The following is possible: compute very small subset of columns compute weighted sum • Use rows to choose a good set of columns!

  17. Exploration and Exploitation ? how to choose columns and weights? compute rows (explore) choose columns and weights compute columns (exploit) weighted sum

  18. Reduced Matrix Reduced columns

  19. Clustering Approach Choose representative columns Reduced columns Choose k clusters

  20. Reduced  Full Use the same representatives for the full matrix Representative columns Weighted sum

  21. radius = norm Visualizing the Reduced Columns Reduced columns: vectors in high-dimensional space visualize as …

  22. Clustering Illustration Columns with various intensities can be clustered Strong but similar columns Weak columns can be clustered more easily

  23. The Clustering Metric • Minimize: • where: total cost of all clusters squared distance between normalized reduced columns norms of the reduced columns cost of a cluster sum over all pairs in it

  24. 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

  25. Clustering by Random Sampling Very fast (use optimized BLAS) Some clusters might be too small / large

  26. Clustering by Divide & Conquer Splitting small clusters is fast Splitting large clusters is slow

  27. Combined Clustering Algorithm

  28. Combined Clustering Algorithm

  29. Full Algorithm Assemble rows into reduced matrix Cluster reduced columns Compute rows (GPU) Choose representatives Weighted sum Compute columns (GPU)

  30. 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 Kitchen Temple Trees Bunny Grand Central

  31. Results: Kitchen 5x diff • 388k polygons • Mostly indirect illumination • Glossy surfaces • Indirect shadows Reference: 13 min (using all 100k lights) Our result: 13.5 sec (432 rows + 864 columns)

  32. Results: Temple 5x diff • 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)

  33. Results: Trees 5x diff • 328k polygons • Complex incoherent geometry Reference: 14 min (using all 100k lights) Our result: 2.9 sec (100 rows + 200 columns)

  34. Results: Bunny 5x diff • 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)

  35. Results: Grand Central 5x diff • 1.5m polygons • Point lights between stone blocks Our result: 24.2 sec (588 rows + 1176 columns) Reference: 44 min (using all 100k lights)

  36. The Value of Exploration Our result (432 rows + 864 columns) No exploration (Using 1455 lights) Equal time comparison

  37. The Value of Exploration Our result No exploration Equal time comparison: 5x difference from reference

  38. 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

  39. Future Work • How many rows + columns? • Pick automatically • Row / column alternation • Progressive algorithm: • stop when user likes the image • Render multiple frames at once?

  40. Acknowledgments • Veronica Sundstedt and Patrick Ledda • Temple scene • Bruce Walter, PCG @ Cornell • NSF CAREER 0644175 • Affinito-Stewart Award

  41. Thank You

  42. Discarded slides

  43. Indirect Illumination  Many Lights • shoot photons from light sources • deposit on every bounce • treat photons as point lights • cosine-weighted emission

  44. Low Rank Assumption … Worst case: lights with very local contribution

  45. The Value of Exploration Our result (432 rows + 864 columns) No exploration (Using 1992 lights) Equal time comparison

  46. The Value of Exploration Our result No exploration Equal time comparison: 5x difference image

More Related