Section: New Results
Keywords : Global Illumination, Irradiance and Radiance Caching, GPU, Interactivity.
Interactive Global Illumination
We have designed and implemented a software for interactive global illumination using programmable graphics hardware.
Computing global illumination amounts to solve the rendering equation which is an integral equation. Unfortunately, this equation does not have an analytic solution in general. Consequently, Monte Carlo integration is the method of choice for solving it. However, Monte Carlo integration requires the computation of many samples, which makes it demanding in terms of computation time. Our objective is to propose an algorithm which allows interactive global illumination.
Our approach makes use of ray tracing, Monte Carlo integration and caching. It aims at extending the ``irradiance caching'' algorithm. Note that this algorithm is based on the observation that the diffuse component of radiance, reflected on a diffuse surface and due to indirect illumination, changes very slowly on this surface. This allows to sparsely sample and cache the incoming radiance, then to reuse the cached samples to estimate the incoming radiance at nearby points. This method is computationally efficient since the sampling is sparse. However this method is limited to indirect diffuse lighting computation.
We focus on extending the irradiance caching approach to indirect glossy global illumination. Our algorithm relies on ``radiance caching'' (cf figure 11 ). It is based on the caching of directional incoming radiances. We have first designed a new set of basis functions defined on the hemisphere to represent directional incoming radiance and BRDFs. This representation along with a new gradient-based interpolation method are the bases of our radiance caching-based algorithm.
The ``radiance cache splatting'' algorithm allows to compute global illumination using programmable graphics hardware. Using a reformulation of irradiance and radiance caching, our method relies on the capabilities of GPUs to perform radiance interpolation. Moreover, we developed an efficient, GPU-based method to avoid the need of ray tracing (cf figurefig:gpurend). Our approach yields an overall speedup of 30-40× compared to the Radiance software, considered as the reference for irradiance caching.
For now, we only considered static scenes for our computations: the irradiance and radiance caching methods suffer from flickering artifacts when it comes to dynamic environments. Therefore, we are now aiming at extending our work for fast, high quality global illumination in dynamic scenes.