Scalable many-light methods

Similar documents
Lecture 15: Many Lights. CS 6620, Spring 2009 Kavita Bala Computer Science Cornell University. Many Lights

LightSlice: Matrix Slice Sampling for the Many-Lights Problem

Lightcuts: A Scalable Approach to Illumination

Virtual Spherical Lights for Many-Light Rendering of Glossy Scenes

Discussion. Smoothness of Indirect Lighting. History and Outline. Irradiance Calculation. Irradiance Caching. Advanced Computer Graphics (Spring 2013)

To Do. Real-Time High Quality Rendering. Motivation for Lecture. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Bidirectional Lightcuts

In this part of the course, I will discuss various approaches for generating VPLs where they are most needed for a given camera view.

Philipp Slusallek Karol Myszkowski. Realistic Image Synthesis SS18 Instant Global Illumination

Multidimensional Lightcuts

Practical Product Importance Sampling for Direct Illumination

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity

Lightcuts. Jeff Hui. Advanced Computer Graphics Rensselaer Polytechnic Institute

Monte-Carlo Ray Tracing. Antialiasing & integration. Global illumination. Why integration? Domains of integration. What else can we integrate?

This course covers a group of global illumination algorithms known as many light methods, or VPL rendering methods. (VPL = virtual point light)

A Brief Overview of. Global Illumination. Thomas Larsson, Afshin Ameri Mälardalen University

Precomputed & Hybrid Variants of Lightcuts

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

INFOGR Computer Graphics. J. Bikker - April-July Lecture 10: Ground Truth. Welcome!

Effects of Global Illumination Approximations on Material Appearance

Anti-aliasing and Monte Carlo Path Tracing. Brian Curless CSE 557 Autumn 2017

Monte Carlo Ray Tracing. Computer Graphics CMU /15-662

Distribution Ray-Tracing. Programação 3D Simulação e Jogos

Anti-aliasing and Monte Carlo Path Tracing

GAMES Webinar: Rendering Tutorial 2. Monte Carlo Methods. Shuang Zhao

The V-Ray installer will automatically remove any previous installations. This will allow you to seamlessly upgrade from previous versions.

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Global Illumination The Game of Light Transport. Jian Huang

Irradiance Gradients. Media & Occlusions

Anti-aliasing. Images and Aliasing

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Raytracing & Epsilon. Today. Last Time? Forward Ray Tracing. Does Ray Tracing Simulate Physics? Local Illumination

The Rendering Equation & Monte Carlo Ray Tracing

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural

Choosing the Right Algorithm & Guiding

These are the annotated slides of the real time part of the Many Lights Rendering

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie

Motivation: Monte Carlo Path Tracing. Sampling and Reconstruction of Visual Appearance. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Anti-aliasing and Monte Carlo Path Tracing. Brian Curless CSE 457 Autumn 2017

Virtual Spherical Lights for Many-Light Rendering of Glossy Scenes

Single Scattering in Refractive Media with Triangle Mesh Boundaries

Other Rendering Techniques CSE 872 Fall Intro You have seen Scanline converter (+z-buffer) Painter s algorithm Radiosity CSE 872 Fall

CPSC GLOBAL ILLUMINATION

Fast Agglomerative Clustering for Rendering

Illumination Algorithms

Final Project: Real-Time Global Illumination with Radiance Regression Functions

CS 563 Advanced Topics in Computer Graphics Irradiance Caching and Particle Tracing. by Stephen Kazmierczak

Today. Anti-aliasing Surface Parametrization Soft Shadows Global Illumination. Exercise 2. Path Tracing Radiosity

Sung-Eui Yoon ( 윤성의 )

The Rendering Equation and Path Tracing

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL:

Recent Advances in Monte Carlo Offline Rendering

THEA RENDER ADAPTIVE BSD ENGINE

Occluder Simplification using Planar Sections

Global Illumination CS334. Daniel G. Aliaga Department of Computer Science Purdue University

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Global Illumination. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

Reusing Shading for Interactive Global Illumination GDC 2004

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

The Traditional Graphics Pipeline

Global Illumination and Monte Carlo

CS770/870 Spring 2017 Radiosity

In the real world, light sources emit light particles, which travel in space, reflect at objects or scatter in volumetric media (potentially multiple

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

Hello, Thanks for the introduction

Accelerated Raytracing

Interactive Methods in Scientific Visualization

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

The Traditional Graphics Pipeline

Overview. Radiometry and Photometry. Foundations of Computer Graphics (Spring 2012)

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Me Again! Peter Chapman. if it s important / time-sensitive

CS770/870 Spring 2017 Radiosity

Path Tracing part 2. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

Local vs. Global Illumination & Radiosity

Advanced Ray Tracing

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

CS 428: Fall Introduction to. Radiosity. Andrew Nealen, Rutgers, /7/2009 1

Motivation. Advanced Computer Graphics (Fall 2009) CS 283, Lecture 11: Monte Carlo Integration Ravi Ramamoorthi

Pixelcuts: Scalable Approximate Illumination from Many Point Lights

Part I The Basic Algorithm. Principles of Photon Mapping. A two-pass global illumination method Pass I Computing the photon map

Advanced Computer Graphics CS 563: Adaptive Caustic Maps Using Deferred Shading. Frederik Clinck lie

Corona Sky Corona Sun Corona Light Create Camera About

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

The Traditional Graphics Pipeline

Global Illumination. COMP 575/770 Spring 2013

CS354R: Computer Game Technology

Interactive Volumetric Shadows in Participating Media with Single-Scattering

CSCI 4972/6963 Advanced Computer Graphics Quiz 2 Tuesday April 17, 2007 noon-1:30pm

CHAPTER 1 Graphics Systems and Models 3

Review. Stephen J. Guy

Topics and things to know about them:

Illumination and Geometry Techniques. Karljohan Lundin Palmerius

Transcription:

Scalable many-light methods Jaroslav Křivánek Charles University in Prague

Instant radiosity Approximate indirect illumination by 1. Generate VPLs 2. Render with VPLs 2

Instant radiosity with glossy surfaces Ground truth 1,000 VPLs 100,000 VPLs Large number of VPLs required True even for diffuse scenes Scalability issues 3

Scalable many-light methods 1. Generate many, many VPLs 2. Pick only the most relevant VPLs for rendering 4

Scalable many-light methods Choosing the right VPLs Per-pixel basis Lightcuts [Walter et al 05/06] Per-image basis Matrix Row Column Sampling [Hašan et al. 07] Somewhere in-between LightSlice [Ou & Pellacini 2011] Importance caching [Georgiev et al. 2012] 5

Scalable many-light rendering Lightcuts Multidimensional Lightcuts Walter et al., SIGGRAPH 2005/2006 Slides courtesy Bruce Walter: http://www.graphics.cornell.edu/~bjw/papers.html

Lightcuts http://www.graphics.cornell.edu/~bjw/papers.html 7

Complex Lighting Simulate complex illumination using VPLs Area lights HDR environment maps Sun & sky light Indirect illumination Unifies illumination Area lights + Sun/sky + Indirect

Scalable Scalable solution for many point lights Thousands to millions Sub-linear cost 600 Time (secs) 500 400 300 200 Standard Ward Lightcut 100 0 0 1000 2000 3000 4000 Number of Point Lights Tableau Scene

Lightcuts Problem Visible surface

Lightcuts Problem

Camera Lightcuts Problem

Light Cluster Key Concepts Approximate many lights by a single brighter light (the representative light)

Light Cluster Light Tree Key Concepts Binary tree of lights and clusters Clusters Individual Lights

Light Cluster Light Tree A Cut Key Concepts A set of nodes that partitions the lights into clusters

Simple Example Light Tree #1 #2 #3 #4 Representative Light 4 1 4 Clusters 1 2 3 4 Individual Lights

Three Example Cuts Three Cuts #1 #2 #4 #1 #3 #4 #1 #4 4 4 4 1 4 1 4 1 4 1 2 3 4 1 2 3 4 1 2 3 4

Three Example Cuts Three Cuts #1 #2 #4 #1 #3 #4 #1 #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 Example Cuts Three Cuts #1 #2 #4 #1 #3 #4 #1 #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 Example Cuts Three Cuts #1 #2 #4 #1 #3 #4 #1 #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

Pre-process Algorithm Overview Convert illumination to point lights Build light tree For each eye ray Choose a cut to approximate the illumination

Convert Illumination HDR environment map Importance sampling Indirect Illumination Convert indirect to direct illumination using Instant Radiosity [Keller 97] Caveats: no caustics, clamping, etc. More lights = more indirect detail

Build light tree Cluster spatially close lights with similar orientation Light Tree Representative Light 4 1 4 Clusters 1 2 3 4 Individual Lights

Choose a cut Approximate illumination with a bounded error Different cut for each pixel

Illumination Equation result = M i G i V i I i Σlights

Cluster Approximation result M j G j V j I i Σlights Sum pre-computed during light tree construction Cluster j is the representative light

Cluster Error Bound error < M ub G ub V ub Σ I i lights Cluster Bound each term Visibility <= 1 (trivial) Intensity is known Bound material and geometric terms using cluster bounding volume ub = upper bound

Weber s Law Perceptual Metric Contrast visibility threshold is fixed percentage of signal Used 2% in our results Ensure each cluster s error < visibility threshold Transitions will not be visible Used to select cut

Problem: Perceptual Metric We don t know the illumination so we don t know the threshold either (because threshold = 2% illumination) Solution: As we traverse the tree, gradually improve the illumination estimate. Stop the traversal if the error bound for all cut nodes is below threshold.

Cut Selection Algorithm Start with coarse cut (eg, root node) Cut

Cut Selection Algorithm Select cluster with largest error bound Cut

Cut Selection Algorithm Refine if error bound > 2% of total Cut

Cut Selection Algorithm Cut

Cut Selection Algorithm Cut

Cut Selection Algorithm Cut

Cut Selection Algorithm Repeat until cut obeys 2% threshold Cut

Lightcuts (128s) Error Reference (1096s) Error x16 Kitchen, 388K polygons, 4608 lights (72 area sources)

Combined Illumination 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)

Lightcuts Reference Cut size Error x 16

Scalable Scalable solution for many point lights Thousands to millions Sub-linear cost 600 Tableau Scene 600 Kitchen Scene Time (secs) 500 400 300 200 Standard Ward Lightcut Time (secs) 500 400 300 200 Standard Ward Lightcuts 100 100 0 0 0 1000 2000 3000 4000 0 1000 2000 3000 4000 5000 Number of Point Lights Number of Point Lights

Why does it work so well? Data-driven stratification & importance sampling Stratification Clustering of similar lights in the light tree Importance sampling Subdividing clusters with high contribution 41

Main issue Problem: Large cuts in dark areas 42

Lightcuts Recap Key ingredients Upper bound on error Refinement of the highest-error nodes first

Multidimensional Lightcuts http://www.graphics.cornell.edu/~bjw/papers.html

Problem Simulate complex, expensive phenomena Complex illumination Anti-aliasing Motion blur Participating media Depth of field Pixel = Time Volume Aperture Pixel Lights Area L(x,ω)... Pixel = Time Pixel Area Lights L(x,ω)...

Problem Simulate complex, expensive phenomena Complex illumination Anti-aliasing Motion blur Participating media Depth of field Pixel = Volume Time Pixel Area Lights L(x,ω)...

Problem Simulate complex, expensive phenomena Complex illumination Anti-aliasing Motion blur Participating media Depth of field Pixel = Aperture Volume Time Pixel Area Lights L(x,ω)...

Problem Complex integrals over multiple dimensions Pixel = Aperture Volume Time Requires many samples Pixel Area Lights L(x,ω)... camera

Multidimensional Lightcuts Solves all integrals simultaneously Accurate Scalable Image time (secs) 1800 1200 600 Supersampling Multidimensional 0 0 100 200 300 Samples per pixel

Direct only (relative cost 1x) Direct+Indirect+Volume (1.8x) Direct+Indirect (1.3x) Direct+Indirect+Volume+Motion (2.2x)

Point Sets Discretize full integral into 2 point sets Light points (L) Gather points (G) Light points Camera

Point Sets Discretize full integral into 2 point sets Light points (L) Gather points (G) Light points Camera

Point Sets Discretize full integral into 2 point sets Light points (L) Gather points (G) Light points Camera Pixel Gather points

Point Sets Discretize full integral into 2 point sets Light points (L) Gather points (G) Light points Gather points

Discrete Equation Sum over all pairs of gather and light points Can be billions of pairs per pixel Σ ( j,i) GxL Pixel = S j M ji G ji V ji I i

Product Graph Explicit hierarchy would be too expensive Up to billions of pairs per pixel Use implicit hierarchy Cartesian product of two trees (gather & light)

Product Graph L0 L1 L2 L3 L4 L6 L5 L0 L1 L2 L3 Light tree G1 G0 G2 G0 G1 Gather tree

Product Graph L4 L6 L5 Product Graph L0 L1 L2 L3 Light tree X = G2 G0 G2 G1 L0 L4 L1 L6 L2 L5 L3 G0 G1 Gather tree

Product Graph L4 L6 L5 Product Graph L0 L1 L2 L3 Light tree X = G2 G0 G2 G1 L0 L4 L1 L6 L2 L5 L3 G0 G1 Gather tree

Product Graph Product Graph G0 G2 G1 L0 L4 L1 L6 L2 L5 L3

Product Graph Product Graph G0 G2 G1 L0 L4 L1 L6 L2 L5 L3

Product Graph L4 L6 L5 Product Graph L0 L1 L2 L3 Light tree X = G2 G0 G2 G1 L0 L4 L1 L6 L2 L5 L3 G0 G1 Gather tree

Cluster Representatives

Cluster Representatives

Error Bounds Collapse cluster-cluster interactions to point-cluster Minkowski sums Reuse bounds from Lightcuts Compute maximum over multiple BRDFs Rasterize into cube-maps More details in the paper

Once per image Algorithm Summary Create lights and light tree For each pixel Create gather points and gather tree for pixel Adaptively refine clusters in product graph until all cluster errors < perceptual metric

Scalability Start with a coarse cut Eg, source node of product graph L0 L4 L1 L6 L2 L5 L3 G0 G2 G1

Scalability Choose node with largest error bound & refine In gather or light tree L0 L4 L1 L6 L2 L5 L3 G0 G2 G1

Scalability Choose node with largest error bound & refine In gather or light tree L0 L4 L1 L6 L2 L5 L3 G0 G2 G1

Scalability Repeat process G0 L0 L4 L1 L6 L2 L5 L3 G2 G1

Algorithm summary Until all clusters errors < perceptual metric 2% of pixel value (Weber s law) L0 L4 L1 L6 L2 L5 L3 G0 G2 G1

Results Limitations Some types of paths not included Eg, caustics Prototype only supports diffuse, Phong, and Ward materials and isotropic media

Roulette 7,047,430 Pairs per pixel Time 590 secs Avg cut size 174 (0.002%)

Scalability Image time vs. Gather points Image time (secs) 1600 1200 800 400 0 Multidimensional Original lightcuts Eye rays only 0 50 100 150 200 250 300 Gather points (avg per pixel)

Metropolis Comparison Zoomed insets Our result Time 9.8min Metropolis Time 148min (15x) Visible noise 5% brighter (caustics etc.)

Kitchen 5,518,900 Pairs per pixel Time 705 secs Avg cut size 936 (0.017%)

180 Gather points X 13,000 Lights = 234,000 Pairs per pixel Avg cut size 447 (0.19%)

Scalable many-light rendering Matrix Row-Column sampling Hašan et al., SIGGRAPH 2007 Slides courtesy Miloš Hašan: http://www.cs.cornell.edu/~mhasan/

Matrix Row-Column sampling http://miloshasan.net/ Designed specifically for GPU rendering (shadow mapping) 79

Improving Scalability and Performance Brute force (100k VPLs) 10 min 13 min 20 min MRCS (our result) 3.8 sec 13.5 sec 16.9 sec 80

A Matrix Interpretation Lights (100,000) Pixels (2,000,000) 81

Problem Statement Compute sum of columns Lights = Σ ( ) Pixels 82

Low-Rank Assumption Column space is (close to) low-dimensional Lights = Σ ( ) Pixels 83

Ray-tracing vs Shadow Mapping Lights Pixels Point-to-many-points Point-to-point visibility: Ray-tracing Shadow-mapping 84

Computing Column Visibility Regular Shadow Mapping Lights Pixels 1 shadow map Surface samples Shadow map at light position 85

Row-Column Duality Rows: Also Shadow Mapping! Lights Pixels 1 shadow map Shadow map at sample position 86

Image as a Weighted Column Sum The following is possible: 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) 87

Pixels The Row-Column Sampling Idea Lights? compute rows (i.e. pick pixels, compute contrib from ALL lights for each) how to choose choose columns (=lights) columns and and weights? compute columns (i.e. for the selected lights, compute contribution to all pixels) weighted sum 88

Clustering Approach Columns Clustering Choose representative columns 89

Reduced Matrix Reduced columns 90

Algorithm: Monte Carlo Estimator 1. Cluster reduced columns 2. Choose a representative in each cluster, with probability proportional to weight 3. Approximate other columns in cluster by (scaled) representative This is an unbiased Monte Carlo estimator (of the sum of matrix columns) Which clustering minimizes its variance? 91

Weights and Information Vectors Weights w i Norms of reduced columns Represent the energy of the light Information vectors x i Normalized reduced columns Represent the kind of light s contribution

Visualizing the Reduced Columns Reduced columns: vectors in highdimensional space visualize as radius = weight position = information vector 93

The Clustering Objective Minimize: total cost of all clusters where: cost of a cluster sum over all pairs in it weights squared distance between information vectors 94

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

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

Pixels Full Algorithm Lights Assemble rows into reduced matrix Cluster reduced columns Compute rows (GPU) Choose representatives Compute columns (GPU) Weighted sum 101

Example: Temple 2.1m polygons Mostly indirect & sky illumination Indirect shadows 5x diff Our result: 16.9 sec (300 rows + 900 columns) Reference: 20 min (using all 100k lights) 102

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

Example: Bunny 869k polygons Incoherent geometry High-frequency lighting Kajiya-Kay hair shader 5x diff Our result: 3.8 sec (100 rows + 200 columns) Reference: 10 min (using all 100k lights) 104

Effect of exploration #VPLs = 250k, # cols = 10k # rows = 300 28 sec Too few VPLs # rows = 900 35 sec 105

Comparison Lightcuts (2M VPLs) 30 sec MRCS (250k VPLs) 35 sec 106

Why does it work so well? Data-driven stratification & importance sampling Same reason as for Lightcuts Stratification Split clusters with dissimilar lights Importance sampling Split clusters with high-contribution lights 107

Comparison to Lightcuts Advantage Takes visibility into account in light selection (reduced matrix contains the full light contributions) Drawback Impossible to capture localized effects Low likelihood of getting the right row sample Global light selection 108

LightSlice http://www.cs.dartmouth.edu/~fabio/publication.php?id=lightslice11 109

LightSlice: Idea Get the better from Lightcuts and MRCS Lightcuts: Localized selection of relevant lights MRCS: Take visibility into account in light selection 110

LightSlice: The Algorithm Cannot use shadow maps for row/column sampling Clustering borrowed from the original MRCS paper 111

LightSlice: Matrix Slices Image Matrix slice visualization 112

LightSlice: Results Not really a fair comparison to MRCS (uses ray traced visibility) 113

Importance Caching Localized light (VPL) selection taking visibility into account 114

Importance Caching: Algorithm 1. Importance caching Pick image pixels (2000-3000) For each such pixel, compute and cache contributions from all lights (i.e. matrix row) 2. Image rendering For each image pixel Collect nearby importance records Pick a VPL proportional to the cached contributions 115

Cached light importance Contributions to the record location of individual lights Importance record 1 Importance record 2 Importance record 3 116

Possible problems OK Occlusion Geometry factor Irrelevant 117

Solution: Multiple importances Full light contribution Unoccluded contribution Uniform distribution Unoccluded contribution w/ bounded G-term 118

Distribution combination Multiple importance sampling (MIS) See CG III slides http://cgg.mff.cuni.cz/~jaroslav/teaching/2011-pg3/slides/krivanek-07-npgr010-2011-mc2.pptx New combination heuristic proposed in the paper 119

Results 120

Results: A 2-second rendering 121

Importance Caching: Limitations Fewer initial VPLs than any of the previous algorithms (up to 10k) Because of memory limitations Must run in iterations if more VPLs needed No data-driven stratification 122

Take-home message Data-driven importance sampling may be dangerous Non-zero contribution may be sampled with very low, or even zero probability Being conservative is safer, but can reduce the advantage of data-driven IS For more information see [Owen & Zhou 2000] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.2813 123

How bout Lightcuts and MRCS? MRCS In theory suffers from the same problem, but light importance averaged over full columns, so it works ok BTW: Why do you think there s global clustering in LightSlice Lightcuts Has upper bounds so it knows which lights can be safely skipped 124

Scalable many-light methods 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] 125

Improved VPL distribution [Segovia et al. 07]: Metropolis instant radiosity http://www710.univ-lyon1.fr/~jciehl/bsegovia/bat710/public_html/papers/mir.html Use Metropolis sampling to guide the VPL where they can contribute to the image [Georgiev & Slussalek 2010] http://www.iliyan.com/p/publications.html Use rejection sampling to reject VPLs that do not contribute significantly 126