Jamorn Sriwasansak
email: jamorn.sriwasansak@gmail.com

Adrien Gruson
email: adrien.gruson@gmail.com

Efficient Energy-Compensated VPLs using Photon Splatting

Keywords: CCS Concepts:, Computing methodologies → Rendering, Ray tracing, global illumination, many lights, density estimation

Efficient light transport simulation is important for many applications in computer graphics. Many-light methods based on virtual point lights (VPLs) especially work well for scenes consist mainly of diffuse materials. Rendered images with VPLs, however, are known to suffer from energy loss due to clamping of the VPL contributions. Removing this clamping, unfortunately, introduces significant variance in images due to the singularities of VPLs. We propose an efficient and practical algorithm which compensates energy loss of VPLs using yet another efficient rendering method -photon splatting. Recent unified path sampling frameworks show that VPLs are in fact photons. Based on this unified formulation, we propose to reuse VPLs as photons to compensate missing energy of clamped VPLs. This combination is very natural: the singularities of VPLs happen if a shading point is too close to VPLs, but such VPLs can also be seen as neighboring photons that are indeed useful for photon density estimation. We formulate this energy compensation process using multiple importance sampling to combine rendering with VPLs and photon splatting optimally. Our algorithm can be efficiently implemented on GPUs since rendering with VPLs and photon splatting are both suitable for GPUs. The results demonstrate that our method produces more accurate images in the same rendering time than the existing methods. For common use cases of rendering mostly diffuse scenes, our work leads to an efficient, accurate, and practical rendering algorithm based on VPLs.

INTRODUCTION

Monte Carlo ray tracing is a common approach for light transport simulation in rendering. This approach probabilistically samples light transport paths and accumulates their contribution to compute the value of each pixel. While Monte Carlo ray tracing produces accurate results, the rendered images will exhibit noise if the number of samples is not sufficiently high.

Many-light methods [START_REF] Dachsbacher | Scalable Realistic Rendering with Many-Light Methods[END_REF][START_REF] Keller | Instant radiosity[END_REF]] address this issue by reusing parts of sampled paths across all the pixels in the image. In the first step, several paths starting from the light sources (light subpaths) are generated and the vertices of the generated paths are stored as virtual point lights (VPLs). In the second step, a ray is traced from the camera to find the shading point. The last step is to accumulate the contributions from all the VPLs. Since each light subpath is reused by all the pixels, this approach significantly increases the number of accumulated samples per path. Many-light methods thus produce smooth images very quickly compared to Monte Carlo ray tracing.

This efficient path reuse in VPLs, unfortunately, comes with the fundamental issue of singularities in VPL contributions. Due to its formulation, the contribution of each VPL is inversely proportional to the squared distance to a shading point. Such singularities can show up as bright splotches in images rendered with VPLs. A common practice to alleviate this issue is to clamp the contribution of each VPL to a user-specified threshold. This common practice, however, leads to energy loss and shows up as dark corners in rendered images. While previous work proposed to compensate lost energy by using Monte Carlo ray tracing [START_REF] Kollig | Illumination in the presence of weak singularities[END_REF] or its approximation in the screen space [START_REF] Novák | Screen-space bias compensation for interactive high-quality global illumination with virtual point lights[END_REF], efficient and accurate energy compensation of VPLs remains an open problem.

We propose an efficient approach to compensate lost energy in rendering with VPLs based on a novel combination with photon splatting. Building upon recent unified light transport frameworks [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF][START_REF] Hachisuka | A path space extension for robust light transport simulation[END_REF], we explain how VPLs can be seen as photons in photon density estimation. This combination is natural: the singularities of VPLs become problematic when they are too close to a shading point, but such VPLs are useful as photons in photon density estimation and causes no singularities. Our method is computationally very efficient since we can reuse generated VPLs as photons and both approaches are suitable to run on GPUs. To summarize, the main contributions of this paper are:

• Efficient energy compensation of VPLs using photon splatting.

• Application of the unified framework to combine rendering with VPLs and photon splatting.

Fig. 1 highlights that our method can produce smooth images without the issue of singularities. Since this scene contains lots of concave corners, the singularities of VPLs show up very frequently. By using our combination, problematic VPLs are now used as neighboring photons without such singularities. The rendered image of our method is close to the reference only within several seconds.

RELATED WORK

Singularities in many-light methods. Many-light methods are prone to cause singularities [START_REF] Dachsbacher | Scalable Realistic Rendering with Many-Light Methods[END_REF][START_REF] Keller | Instant radiosity[END_REF]. A common approach to address this problem is to clamp the contribution of each VPL to a user-defined threshold. While clamping removes bright splotches, it results in darker images due to missing energy. [START_REF] Hašan | Virtual spherical lights for many-light rendering of glossy scenes[END_REF] addressed the singularities by blurring each VPL to have non-zero solid angle. A blurred VPL is called a virtual spherical light (VSL). Since each VSL has non-zero solid angle, it is possible to directionally integrate the contributions of VSLs and thus cancels out the singularities. This formulation can be seen as a particular form of final gathering in photon density estimation. While we also use photon density estimation, we do not need to perform directional integration which can be computationally costly.

Energy compensation. Another approach is to compensate the missing energy by using another rendering algorithm that does not suffer from the same singularities [START_REF] Kollig | Illumination in the presence of weak singularities[END_REF][START_REF] Raab | Unbiased global illumination with participating media[END_REF]. Since the calculation of the missing energy itself is also costly, an approximation is necessary to achieve interactive performance with this approach [START_REF] Engelhardt | Approximate bias compensation for rendering scenes with heterogeneous participating media[END_REF][START_REF] Novák | Screen-space bias compensation for interactive high-quality global illumination with virtual point lights[END_REF]. [START_REF] Davidovič | Combining global and local virtual lights for detailed glossy illumination[END_REF] proposed to separate the computation into global and local illumination. Their method generates a dense set of local VPLs using path tracing and ignoring the visibility term. While singularities of their local VPLs are less noticeable than those of regular VPLs, clamping is still necessary. Our method does not require any clamping and efficiently reuses VPLs as photons without any approximation except for bias in photon density estimation.

Scalable methods. The computational cost of many-light methods is proportional to the number of VPLs. Matrix row-column sampling (MRCS) [START_REF] Hašan | Matrix row-column sampling for the many-light problem[END_REF]] addressed this problem based on a transfer matrix and exploited the structure of the matrix to approximate the contributions of multiple VPLs. Lightcuts [START_REF] Walter | Multidimensional lightcuts[END_REF][START_REF] Walter | Lightcuts: a scalable approach to illumination[END_REF][START_REF] Walter | Bidirectional lightcuts[END_REF] alleviated this scalability problem by hierarchically clustering VPLs into a tree. Lightslice [START_REF] Ou | LightSlice: Matrix Slice Sampling for the Many-lights Problem[END_REF] combined the idea of lightcuts and MRCS by clustering shading points into slices and performed MRCS for each slice. These methods approximate the result of VPL rendering such that the computational cost becomes sublinear and allow us to use a significantly large number of VPLs. However, clamping is still necessary. [START_REF] Davidovič | Progressive lightcuts for GPU[END_REF] thus proposed a modification on lightcuts where the clamping factor is relaxed progressively. While our method performs well without these scalable methods, one can optionally use scalable methods to speed up the VPLs rendering part of our method.

Photon density estimation. Photon mapping [START_REF] Wann | Global illumination using photon maps[END_REF]] introduced the concept of density estimation to rendering. We employ a variant of photon mapping called photon splatting [START_REF] Stürzlinger | Interactive rendering of globally illuminated glossy scenes[END_REF]. Photon splatting can be efficiently implemented on GPUs using rasterization [START_REF] Lavignotte | Scalable photon splatting for global illumination[END_REF][START_REF] Mcguire | Hardware-accelerated global illumination by image space photon mapping[END_REF] to achieve interactive performance. While original photon mapping is biased and has limited accuracy given the memory budget, it can be made into a progressive method [START_REF] Hachisuka | Progressive photon mapping[END_REF][START_REF] Knaus | Progressive photon mapping: A probabilistic approach[END_REF], making it asymptotically converge to the correct result.

We build upon the unified light transport frameworks [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF][START_REF] Hachisuka | A path space extension for robust light transport simulation[END_REF]] to combine photon splatting and rendering with VPLs using multiple importance sampling [START_REF] Veach | Optimally combining sampling techniques for Monte Carlo rendering[END_REF]. This combination is fundamentally different from bidirectional lightcuts [START_REF] Walter | Bidirectional lightcuts[END_REF] which is based on bidirectional path tracing. To our best knowledge, our work is the first to utilize the unified frameworks in many-light methods. Fig. 2. When a light subpath vertex is close to the shading point, using this vertex as a VPL leads to the issue of the singularity. However, the same vertex is, in fact, useful in photon density estimation since we want this vertex to be close to the shading point. The opposite is true when the vertex is far from the shading point: this vertex is not useful in photon density estimation, but the singularities of VPLs do not happen.

OVERVIEW

Unified light transport frameworks [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF][START_REF] Hachisuka | A path space extension for robust light transport simulation[END_REF]] provided a theoretical connection between Monte Carlo path integration and photon density estimation. Since many-light methods are Monte Carlo path integration methods, it is possible to reformulate them under the unified light transport frameworks. One can thus see that VPLs (as they are light subpath vertices) are essentially photons in photon density estimation. This reformulation leads to our key observation: when VPLs are suffering from the singularities due to the geometry term, they are close to a shading point, which are indeed useful as photons in photon density estimation. This combination allows us to avoid singularities of VPLs by switching to photon density estimation when appropriate. Fig. 2 illustrates this observation. Unlike some existing energy compensation for VPLs, our formulation employs a balance heuristic using multiple importance sampling [START_REF] Veach | Optimally combining sampling techniques for Monte Carlo rendering[END_REF]. This combination is possible due to our introduction of the unified frameworks into many-light methods. Since VPLs are photons, we can efficiently reuse the same light subpaths for both VPLs and photons. The resulting algorithm is suitable for GPUs since there are many efficient implementations of VPLs and photon density estimation on GPUs.

UNIFYING VPLS AND PHOTONS

We explain how to unify rendering with VPLs and photon splatting under the vertex merging formulation [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF]. Table 1 summarizes our notations. The path integral formulation [START_REF] Veach | Robust monte carlo methods for light transport simulation[END_REF]] models the intensity I p of a pixel p as

I p = ∫ Ω f p ( x)dµ( x), (1)
where x = x 0 . . . x k is a path, f p ( x) is the measurement contribution function for the pixel p, and Ω is the set of all possible paths. The measurement contribution function is defined as

f p ( x) = W p (x 0 , x 1 ) k -1 i=1 f r (x i-1 , x i , x i+1 ) k -1 j=0 G(x j , x j+1 )L e (x k -1 , x k ), (2)
for given BRDFs f r , the importance function W p , and the emission function L e . We use the notation f r (x i-1 , x i , x i+1 ) to define the value of a BRDF f r for given directions x i+1 to x i and x i to x i-1 . The geometry term G(x j , x j+1 ) is defined using the visibility term V as G(x j , Efficient Energy-Compensated VPLs using Photon Splatting :5

x j+1 ) = V (x j , x j+1 ) cos(θ j ) cos(θ j+1 ) | |x j -x j+1
Table 1. Our notations.

Symbol Description

x a path

I p ( x), f p ( x)
pixel intensity and a measurement contribution function of the pixel p G(x, y) a geometry term f r (x, y, z)

a BSDF function at y location ȳ, z a light and an eye subpath y i ,z i ith vertex of a light and an eye subpath

f l ( ȳ), f e (z)
a measurement contribution function of a light and an eye subpath p l ( ȳ), p e (z)

PDF of a light and an eye subpath

C l ( ȳ), C e (z)
contribution of light and eye subpath x ′ an extended path ȳ′ an extended light subpath y ′ i an extended vertex of light subpath p(x|y, z) PDF of BSDF sampling x given y and z C vpl ( ȳ), C pm ( ȳ) contribution using VPL and photon w vpl ( x), w pm ( x ′ ) a weighting function of VPL and photon N vpl , N pm a number of VPL and photon light subpaths at x j and x j+1 . In the following explanation, we consider paths of a fixed length to simplify the equations, but our method is not limited to this variant. Suppose that we construct a path x based a length-one eye subpath z = z 0 z 1 and a light subpath ȳ = y s . . . y 0 as x = z ȳ. The measurement contribution function can be factorized into the eye subpath throughput f e (z), the light subpath throughput f l ( ȳ) as

f p ( x) = f e (z)f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 )f l ( ȳ) (3) f e (z) = W p (z 0 , z 1 )G(z 0 , z 1 ) f l ( ȳ) = s-1 i=1 f r (y i+1 , y i , y i-1 ) s-1 j=0 G(y j , y j+1 )L e (y 1 , y 0 ).
By sampling z and ȳ according to PDFs p e (z) and p l ( ȳ), the Monte Carlo integration of Equation 1becomes

I p = E f e (z)f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 )f l ( ȳ) p e (z)p l ( ȳ) = E [C e (z)f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 )C l ( ȳ)] , (4)
where we define C e (z) ≡

f e ( z)
p e ( z) and ȳ) to denote the contributions from subpaths. A common approach is to use PDFs p e (z) and p l ( ȳ) that are proportional to f e (z) and f l ( ȳ) respectively. Many-light methods and photon density estimation rely on the same approaches for generating z and ȳ. Thus the contributions C e (z) and C l (z) do not change between two approaches. The difference between these two approaches exists only in the rest of the terms in Equation 4. VPLs. Rendering with VPLs is based on a two-pass algorithm. In the first pass, we generate a set of light subpath vertices and store them as VPLs. For brevity of explanation, we consider only the last vertex y s of each light subpath as a VPL. In the second pass, we trace an eye subpath for each pixel. The set of light subpaths is shared across all the pixels to compute the terms in Equation 4. The contribution of each VPL C vpl ( ȳ) is

C l ( ȳ) ≡ f l ( ȳ) p l (
C vpl ( ȳ) = f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 )C l ( ȳ).
(5)

While a VPL enables efficient path reuse across all the pixels, Equation 5 has a singularity due to G(z 1 , y s ). As the eye subpath vertex z 1 gets close to the VPL location y s , the geometry term G(z 1 , y s ) becomes infinitely large. This causes a bright splotch in the rendered image. This issue is known as weak singularities of VPLs [START_REF] Kollig | Illumination in the presence of weak singularities[END_REF]]. We propose to address this issue by using photon splatting.

Photons. Our method is built on the unified light transport frameworks [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF][START_REF] Hachisuka | A path space extension for robust light transport simulation[END_REF] which point out that a set of light subpaths can also be used as photons. To see this connection, consider extending a light subpath ȳ by sampling one more vertex ȳ′ = y ′ s ȳ according to the PDF p(y ′ s |y s , y s-1 ) ∼ G(y ′ s , y s )f r (y ′ s , y s , y s-1 ) (see Fig. 3). The vertex merging formulation [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF]] considers this additional light subpath vertex y ′ s in photon density estimation as a sample for Russian roulette, and merges it to the last eye subpath vertex z 1 .

Under this unified formulation, the measurement contribution of an extended path x ′ = z ȳ′ remains the same as Equation 3 as

f p ( x ′ ) = f e (z)f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 )f l ( ȳ), (6)
because y ′ s is merged to z 1 . The probability density function p ′ l ( ȳ′ ) becomes

p ′ l ( ȳ′ ) ≈ p l ( ȳ)p(y ′ s |y s , y s-1 )πr 2 , ( 7
)
where r is the radius of the density estimation kernel and p(y ′ s |y s , y s+1 )πr 2 is the Russian roulette probability under a few assumptions using a uniform kernel [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF]]. The contribution of each photon C pm ( ȳ′ ) thus becomes

C pm ( ȳ′ ) ≈ f r (z 0 , z 1 , y s )G(z 1 , y s )f r (z 1 , y s , y s-1 ) p(y ′ s |y s , y s-1 )πr 2 C l ( ȳ). ( 8
)
Since p(y ′ s |y s , y s-1 ) ∼ G(y ′ s , y s )f r (y ′ s , y s , y s-1 ), by assuming that z 1 ≈ y ′ s and a uniform kernel

K(z 1 , y ′ s ) = 1/πr 2 if ||z 1 -y ′ s || < r else 0, we have C pm ( ȳ′ ) ≈ f r (z 0 , z 1 , y s )K(z 1 , y ′ s )ΦC l ( ȳ), ( 9
)
where Φ is the normalization constant of p(y ′ s |y s , y s-1 ) which is obtained by solving the integrand Φ = ∫ S G(y s , y ′ s )f r (y ′ s , y s , y s-1 )dy ′ s . Because the uniform kernel could be evaluated to zero, naively summing the contribution of all the photons results in C pm ( ȳ′ ) = 0 most of the time. A common approach is to gather neighboring photons using nearest neighbor search such that ||z 1y ′ s || < r . Comparing Equation 5and Equation 9 reveals the benefit of using photons over VPLs: the contribution of each photon does not contain any geometry term. If z 1 and y s are close, a VPL suffers from the singularity due to G(z 1 , y s ). In photon density estimation, we not only remove G(z 1 , y s ) and f r (z 1 , y s , y s-1 ), but also are likely to have y ′ s with ||z 1y ′ s || < r , if z 1 and y s are already close. On the other hand, if z 1 and y s are far, a VPL works fine, but it is unlikely to generate y ′ s near z 1 by tracing a ray from y s . VPLs and photons thus have complementary properties, making its combination meaningful. Another important aspect is that they share a lot of terms such as C e (z), C l ( ȳ), p e (z), and p l ( ȳ). We build upon this observation and combine VPLs and photons using multiple importance sampling.

Combining VPLs and Photons. Now that VPLs and photons are formulated under the same framework, it is straightforward to combine them using multiple importance sampling [START_REF] Veach | Optimally combining sampling techniques for Monte Carlo rendering[END_REF]. We consider two paths xi = z ȳi and x ′ i = z ȳ′ i that corresponds to the same light transport path using VPLs and photons. The PDFs in this case are

p vpl ( xi ) = p e (z)p l ( ȳi ) (10) p pm ( x ′ i ) ≈ p e (z)p l ( ȳi )p(y ′ s,i |y s,i , y s-1,i )πr 2 . ( 11
)
Using the balance heuristic, we can compute weight for photon splatting as

w pm ( x ′ i ) = p(y ′ s,i |y s,i , y s-1,i )πr 2 N pm p(y ′ s,i |y s,i , y s-1,i )πr 2 N pm + N vpl , (12)
where N pm and N vpl are the numbers of light paths used in photon splatting and rendering with VPLs respectively. We thus have a weighted contribution for photon density estimation

I p,pm = E       1 N pm N pm i=1 w pm ( x ′ i )C e (z)C pm ( ȳ′ i )       . ( 13
)
Since we only have two sampling strategy for a given path, the weight for VPLs is simply

w vpl ( xi ) = 1 -w pm ( x ′ i ).
For rendering with VPLs, we have

I p,vpl = E       1 N vpl N vpl i=1 w vpl ( xi )C e (z)C vpl ( ȳi )       . ( 14
)
Discussion. [START_REF] Kollig | Illumination in the presence of weak singularities[END_REF] reformulated geometry clamping as another heuristic of multiple importance sampling [START_REF] Veach | Optimally combining sampling techniques for Monte Carlo rendering[END_REF]. Their heuristic is essentially

w vpl ( x) = min (1, b/G(z 1 , y s ))
where b is a user-defined bounding value. Their heuristic can efficiently reduce the amount of computation. In our method, we do not need to discard the samples as photon splatting is not expensive. While bidirectional lightcuts [START_REF] Walter | Bidirectional lightcuts[END_REF]] also uses multiple importance sampling to avoid the singularities of VPLs, due to the use of bidirectional estimators, it requires additional path sampling from the eye. In the results, we show that photon splatting in our method can be used to compensate lost energy without additional path sampling.

RESULTS

Implementation. We utilized OpenGL rasterization to generate a shading point and its information such as position, normal, and material parameters, and store them in a G-Buffer [START_REF] Deering | The Triangle Processor and Normal Vector Shader: A VLSI System for High Performance Graphics[END_REF]. OptiX [Parker et al. 2010] was used for light subpaths sampling. We preallocated depth + 1 light vertices for every max(N pm , N vpl ) light paths to store all information needed. Some preallocated vertices might not contain any information due to early path termination. These vertices are discarded during rendering process and might cause some inefficiency. One can potentially use atomic counter similar to light vertex cache [START_REF] Davidovič | Progressive light transport simulation on the GPU: Survey and improvements[END_REF] technique to solve the problem.

For all the results in the paper, we used ray tracing to compute the visibility of each VPL. One could alternatively use imperfect shadow maps [START_REF] Ritschel | Imperfect Shadow Maps for Efficient Computation of Indirect Illumination[END_REF] to improve the performance of the VPL part if the approximation is acceptable. We used image space photon mapping (ISPM) for photon splatting [START_REF] Mcguire | Hardware-accelerated global illumination by image space photon mapping[END_REF]. The results were generated with an Intel i7-6850K and an NVIDIA Geforce GTX 980 Ti. The error metrics that were used are symmetric Mean Absolute Percent Error (sMAPE) = (2/n) |I -R| /(I + R + 0.0001) and relative MSE (relMSE) = (1/n) (I -R) 2 /(R 2 + 0.001). We only use the first metric to compare against images rendered with VPLs without clamping because the sMAPE metric is less sensitive to singularities caused by VPLs. The reference images have been rendered by Mitsuba [Jakob 2010] with several days computation using regular path tracing. We compare our method with VPL without clamping, VSL, ISPM, and GPU path tracing with OptiX. Our GPU path tracing uses next event estimation with the balance heuristic to combines samples from BSDF sampling and light sampling. To achieve fair comparisons, we used the same number of photons per iteration for the comparison between ours and ISPM, and we used the same number of VPLs per iteration for the comparison between ours, VPL, and VSL.

Scene

Light tracing VPL Splatting photon Stairs 6.32 × 10 -5 ms 2.83 ms 1.71 × 10 -4 ms Living Room 6.54 × 10 -5 ms 2.66 ms 1.65 × 10 -4 ms Conference 9.21 × 10 -5 ms 5.26 ms 1.87 × 10 -4 ms Buddha 8.39 × 10 -5 ms 8.39 ms 2.09 × 10 -4 ms Efficient Energy-Compensated VPLs using Photon Splatting Influence of parameters. The main parameter of our method is the ratio between the number of VPLs N vpl and the number of photons N pm per iteration. One might want to simply reuse all the light subpaths by setting N vpl = N pm . However, this choice is not necessarily optimal since rendering with VPLs and photon splatting have significantly different performance per light subpath. Table 2 shows that splatting of photons is multiple of magnitudes faster than gathering VPLs per light subpath. It is thus generally a good idea to set N vpl significantly smaller than N pm to balance the rendering times of algorithms better. Based on the numerical experiment shown in Fig. 5, we set N pm = 300000 and N vpl = 30 regardless of the scene.

In order to reuse as much computation as possible between VPLs and photons, we splat all of sampled light subpath vertices as photons and reuse a fraction of them as VPLs. Since N vpl is significantly smaller than N pm , correlation between VPLs and photon splatting is usually negligible unlike bidirectional estimators in bidirectional lightcuts [START_REF] Walter | Bidirectional lightcuts[END_REF].

We set the kernel radius of photon splatting to be 0.3% of the radius of the scene bounding sphere. For VSL, we set its radius to 5% of the radius of the scene bounding sphere. We carefully chose radius for all the methods so that each method provides the best relative mean square error.

Scenes. The Stairs scene (Fig. 1) has edges and corners that can easily cause problems for manylight methods. Clamping the geometry term reduces the singularities issue at the cost of a darker image. Our method does not have this problem and produces an image that is close to the reference. This scene highlights a typical use case of our method such as light transport simulation for architectures.

The Conference scene (Fig. 6, left column) is challenging for many-light methods due to the complex geometry and the glossy floor. It consists of 16 light sources which make path tracing inefficient due to explicit light connections with a large number of light sources. Photon splatting also has a similar level of noise to path tracing in this scene. Rendering with VPLs again has a problem in the curtain area due to the singularities. While using VSLs reduces the singularities in this area, but also produces the darker result around the corners due to its approximation. Compare to other methods, ours produces a more accurate result on the curtain at the cost of little additional noise. In the pillar region, the visible noise is due to indirect VPLs and photons have a hard time reaching this scene location. Fig. 7 shows the same scene with shorter rendering time.

The Living Room scene (Fig. 6, middle column) showcases strong indirect illumination from the ceiling. Path tracing produces a noisy result because next-event estimation does not work well in this scene. While this scene mainly uses diffuse materials, which is suitable for rendering with [START_REF] Keller | Instant radiosity[END_REF]], virtual spherical light (VSL) [START_REF] Hašan | Virtual spherical lights for many-light rendering of glossy scenes[END_REF]], and our method. Path tracing and ISPM usually exhibit a visible level of noise. In comparison, VPL produces smoother images but suffers from the singularities. VSL solves this problem but introduces a visible level of bias. Our method provides results close to the reference.

VPLs, photon splatting yields lower relative error since the image rendered with VPLs suffers from the singularities. The rendered image with VSL shows visible artifacts due to bias. With the combination of VPLs and photons, our method alleviates the issues of singularities and bias at the same time.

The Buddha scene (Fig. 6, right column) features complex glossy light transport. This scene contains multiple spotlights for lighting up the Buddha status and the flag. Path tracing again results in a noisy image due to the presence of glossy light transport. Photon splatting performs well in this scene, except in the area where diffuse light transport dominates. Rendering with VPLs and VSLs are not efficient in computing glossy to glossy light transport on the statue. Our method provides the best result as it combines density estimation and VPL efficiently. Progressive rendering. One feature of our method is that the photon splatting part can be turned into a consistent algorithm by the progressive formulation [START_REF] Hachisuka | Progressive photon mapping[END_REF][START_REF] Knaus | Progressive photon mapping: A probabilistic approach[END_REF]. This makes the entire algorithm consistent since it is the same approach as unified light transport frameworks [START_REF] Georgiev | Light transport simulation with vertex connection and merging[END_REF][START_REF] Hachisuka | A path space extension for robust light transport simulation[END_REF]]. We only need to reduce the kernel size at every iteration progressively.

We compared the progressive variant of our method with progressive VPL clamping [START_REF] Davidovič | Progressive lightcuts for GPU[END_REF]. For each scene, we searched the relaxation parameter to minimize relative MSE. We also compared with a progressive variant of VSL [Novák et al. 2012a]. Fig. 8 shows the relative mean square error evolution of rendering technique in the test scenes. VSL and clamped VPL have a similar amount of error. Our method starts with a lower error at the beginning and provides more accurate results in all the case. Progressive VPL [START_REF] Davidovič | Progressive lightcuts for GPU[END_REF], and Progressive VSL [START_REF] Hašan | Virtual spherical lights for many-light rendering of glossy scenes[END_REF]]. For all the scenes shown in Fig. 6, our method provides the most accurate results.

Glossy surfaces. Since our method does not continue tracing secondary rays from the eye, there is no importance sampling of BRDFs at the shading point. Previous works [START_REF] Hachisuka | Stochastic Progressive Photon Mapping[END_REF][START_REF] Kollig | Illumination in the presence of weak singularities[END_REF][START_REF] Walter | Bidirectional lightcuts[END_REF] show that tracing such rays are beneficial for scenes with glossy surfaces. More general algorithms for photon density estimation on GPUs [START_REF] Hachisuka | Parallel progressive photon mapping on GPUs[END_REF] is necessary to implement such a variant of our method on GPUs. Scalability. While our current implementation gathers all the VPLs without any clustering, it is potentially useful to employ scalable algorithms such as lightcuts [START_REF] Walter | Lightcuts: a scalable approach to illumination[END_REF] to amortize the cost of gathering VPLs. However, since we weight the contribution of each VPL via multiple importance sampling, finding a tight error bound is no longer trivial. Clustering of VPLs also introduces another source of error, which would require special care in the weighting strategy. While our method generally performs well without such clustering, this direction is interesting and surely leads to more efficient path reuse.

Volumes. Many-light methods have been successfully applied to volumes [Novák et al. 2012a,b]. Likewise, photon density estimation with higher dimensional primitives [START_REF] Jarosz | Progressive photon beams[END_REF]] also has excellent performance in volumes. We believe that our approach of combining many-light methods and photon density estimation is promising for volumes as well.

CONCLUSION

We presented an efficient rendering method that combines rendering with VPLs and photon splatting under the unified formulation. The intuition behind this combination is that, when a VPL is too close to a shading point and suffers from singularities, this exact same VPL can be used as a neighboring photon in photon density estimation. We showed that this natural combination with photon splatting indeed efficiently alleviates the singularities of VPLs. Moreover, since both rendering with VPLs and rendering with photon splatting run efficiently on GPUs, our combined method is also suitable for GPUs. The results demonstrate that our method achieves generally better performance compared to other methods based only on many-lights or photons. We believe that our method is particularly useful to quickly render scenes with mostly diffuse materials, which should open up many practical applications in the industry.

Fig. 1 .

 1 Fig. 1. Comparison between our method and many-light techniques with 15 seconds of rendering. Virtual point lights (VPLs) suffer from the singularities and there are many bright splotches in the image. Clamping (Clamped VPL) can remove such artifacts, but the image becomes darker due to energy loss. Our method avoids the singularities by reusing VPLs as photons in photon mapping and produces a smooth image without energy loss.

Fig. 3 .

 3 Fig. 3. Light transport for one bounce of indirect lighting. Compare to many-light methods, photon density estimation need an additional vertex y ′ 1 .

Fig. 4 .

 4 Photon Splaing ( , … , )

Fig. 5 .

 5 Fig.5. Relative MSE for different scenes with different numbers of VPLs for 15 seconds of rendering. The plot shows that the efficiency of our method does not vary across different scenes, except when the number of VPLs is too small or too large.

Fig. 6 .

 6 Fig. 6. Equal-time comparisons in 15 seconds between GPU path tracing, image space photon mapping (ISPM) [McGuire and Luebke 2009], virtual point light (VPL)[START_REF] Keller | Instant radiosity[END_REF]], virtual spherical light (VSL)[START_REF] Hašan | Virtual spherical lights for many-light rendering of glossy scenes[END_REF]], and our method. Path tracing and ISPM usually exhibit a visible level of noise. In comparison, VPL produces smoother images but suffers from the singularities. VSL solves this problem but introduces a visible level of bias. Our method provides results close to the reference.

  Fig. 7. After only 100 ms of rendering time, rendering with VPLs exhibits low frequency artifacts due to a low sample count. Compared to photon density estimation, our method shows much less noise since VPLs efficiently render far illumination. Having longer rendering time makes our method converges to a smooth result overall.

Table 2 .

 2 Time spent for path sampling, gathering VPLs, and splatting photons per light subpath in our method.

Proc. ACM Comput. Graph. Interact. Tech., Vol. 1, No. 1, Article . Publication date: May 2018.

ACKNOWLEDGMENTS

We would like to thank anonymous reviewers for thoroughly reviewing our submission. Furthermore, We thank Anat Grynberg and Greg Ward (the conference room), Stanford Computer Graphics Laboratory (happy buddha), blendswap.com artists "Wayne"(the stairs) and "cenobi"(the living room). This project is partially funded by Japanese Government (Monbukagakusho -MEXT) Scholarship and JSPS KAKENHI Grant Number 15H05308.