Accelerating Occlusion Rendering on a GPU via Ray Classification
Accurately rendering occlusions is required when ray-tracing objects to achieve more realistic rendering of scenes. Indeed, soft phenomena such as shadows and ambient occlusion can be achieved with stochastic ray tracing techniques. However, computing randomized incoherent ray-object intersections can be inefficient. This is problematic in Graphics Processing Unit (GPU) applications, where thread divergence can significantly lower throughput. The authors show how this issue can be mitigated using classification techniques that sort rays according to their spatial characteristics. Still, classifying occlusion terms requires sorting millions of rays. This is offset by savings in rendering time, which result from a more coherent ray distribution. The authors survey and test different ray classification techniques to identify the most effective. The best results were achieved when sorting rays using a compress-sort-decompress approach using 32-bit hash keys.