
Ray tracing is the rendering technique of shooting multiple rays into a scene from the point of view of the camera. In a modest view port this involves hundreds of thousands of rays shooting and even reflecting off surfaces. Each ray then needs to be tested against every object (or object component) in the scene for an intersection to find the closest intersection to the ray.
Our project suggests a speed up of this technique by shooting the rays in parallel, and instead of testing all the rays against each triangle in the scene; we propose that the geometry is ordered in a bounding volume hierarchy (BVH) as described in “A Comparison of Acceleration Structures for GPU Assisted Ray Tracing” by Niels Thrane and Lars Ole Simonsen.
The BVH will be composed of geometry enclosed in axis aligned bounding boxes (AABB) that will be constructed in a top down approach from the scene input. The BVH Tree will be represented as a texture, and each ray as well as the BVH Texture will be passed to the GPU for processing. The result will be the intersection for each ray, which will be processed by the main program and rendered in OpenGL to be a realistic scene.
*Photo from "Ray Tracing on a Stream Processor" Purcell, T. Standford : 2004