Ray Casting is the first project for steping towards understanding Ray Tracing algorithms and its importance in Graphics pipeline. Although Ray Tracing algorithms are high on computation side but the quality of the rendered image are quite high.
In this project, I used a predefined scene in a XML file and parsed using utility XML parser library to structure it in the Tree structure based scene graph. We used OpenGL window helper library, GLUT, for windowing system. The basic part of the project is to render the scene in a 2D image in PPM format.
Algorithm for casting is usually different for each primitive as their mathematical representation. The provided scene was having three spheres. We need to write the logic to find the rays (consequntially pixels) which hits the sphere. If ray hits (intersects the objects) we set the pixel color value to white else to black.
Ray Casting on One thread - Render Time 1.973 ms
Z- Buffer Image using Ray Casting on One Thread. Render Time - 2.044 ms
CPU : Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
Memory: 24 Gb DDR3 @ 1600 MHz
GPU: NVIDIA GeForce GTX 880M