Recent developments in integrated circuit technology tend toward increased numbers of cores rather than faster clock speeds, so software must use parallelism to achieve faster run times. The ray tracing performed by Radiance is highly parallelizable in concept, with the exception of irradiance caching that serially stores and retrieves results of expensive indirect irradiation computations. This paper describes a novel method of parallel irradiance caching for global illumination on a graphics processing unit (GPU).
The irradiance caching method in this paper closely follows the placement and distribution of rays produced by Radiance using the free OptiX™ ray tracing engine. Ambient values are stored in GPU memory which can as necessary be used to create a bounding volume hierarchy (BVH) of known irradiance records. Queries into the irradiance cache are performed by casting a short ray into the BVH. The current implementation is able to generate images similar to those created by Radiance’s RPICT program up to twenty times faster.