GPU-accelerated Rendering of Atmospheric Glories
MetadataShow full item record
Type of Workapplication:pdf
DepartmentComputer Science and Electrical Engineering
RightsDistribution Rights granted to UMBC by the author.
Access limited to the UMBC community. Item may possibly be obtained via Interlibrary Loan thorugh a local library, pending author/copyright holder's permission.
This item is likely protected under Title 17 of the U.S. Copyright Law. Unless on a Creative Commons license, for uses protected by Copyright Law, contact the copyright holder or the author.
Incorporating atmospheric phenomena such as glories into games and other interactive graphics applications increases the visual realism of natural environments in those applications, creating a more immersive and believable virtual world. This work presents techniques for rendering glories quickly and accurately for use in such applications. The glory appears as a collection of concentric colored rings, akin to the larger, better-known rainbow. Its color banding pattern is described by the Mie scattering equations, which are complex and must be calculated for many different wavelengths and scattering angles. This dissertation presents a novel implementation of Mie scattering which performs these calculations in parallel on the GPU using OpenGL compute shaders. It achieves significant rendering speedups over previous sequential CPU implementations of glory rendering. Additional algorithmic refinements are supported by the radial symmetry of the glory and the limited range of physical scenarios in which glories occur. The number of Mie calculations required can be substantially reduced without sacrificing perceptual accuracy by selecting Mie scattering inputs using 2D low-discrepancy Sobol sampling in (wavelength, scattering angle) space rather than independent 1D wavelength selection per pixel. The contributions of this work include the GPU implementations of several Sobol variants and findings on their relative benefits. An incremental rendering framework spreads the Mie scattering calculations over multiple frames to achieve interactive speeds. It begins with a fast approximation render which is gradually refined. It uses performance prediction to respond to a changing time budget and assesses render status and image quality using multiple metrics. Performance comparisons are provided for the Mie scattering shaders on various hardware configurations.