Parallel Irradiance Caching on the GPU
Massachusetts Institute of Technology, Cambridge, Massachusetts, USA
Massachusetts Institute of Technology, 18.337/6.338 Parallel Computing Final Report, 2013
@article{jones2013parallel,
title={Parallel Irradiance Caching on the GPU},
author={Jones, Nathaniel},
year={2013}
}
While ray tracing is highly parallelizable in concept, the Radiance suite of programs for architectural global illumination simulation was written for serial execution and makes use of certain heuristic techniques that are not easily performed in parallel environments. It uses irradiance caching to store and reuse the results of expensive indirect irradiation computations. The irradiance cache has unpredictable size, and Radiance alternately reads and adds to it during a simulation, making it unfriendly to parallelization. The irradiance caching method proposed in this paper uses the OptiX engine for GPU ray tracing. Irradiance records are stored in buffers in GPU memory which can as necessary be used to create a bounding volume hierarchy (BVH) of known irradiance values based on their valid ranges. Queries into the irradiance cache are performed by casting a short ray into the BVH. Because the CPU maintains a handle to the irradiance cache, it is possible to read irradiance records from a file prior to simulation and write them back afterward. Therefore, this proposed method maintains consistency with the expected use and output of Radiance while performing calculations at higher speeds.
January 5, 2014 by hgpu