The aim for this dissertation is ray tracing using the Compute Shader programing platform. Ray tracing is computationally intensive but also it benefits from parallel processing greatly. They generally run well on graphical processing units. The single thread prowess of central processing unit does not suit their needs. With DirectX 11’s launch general purpose computing is now possible on D3D11 compatible hardware. Using the DirectCompute API the entirety of the ray tracing algorithm is implemented in HLSL language. Also a portion of the code was designed by following object oriented principles courtesy of Dynamic Linking. Often than not GPGPU programing flies in the face of conventional programing wisdom. Simply porting the code from a single threaded environment to a parallel platform is insufficient. You have to rethink the algorithms with parallel computing in mind. A fine example would be recursion. It can be highly data divergent. You need to transform it to an iterative form.
I choose Path tracing for implementation. It is a global illumination algorithm capable of realistic lighting effects. If follows the path from the viewer to the light source. It is an unbiased rendering method and often used as reference for testing other ray tracing solutions. It is also very slow. Countering it the application uses LBVH acceleration hierarchy which is optimized for GPU construction and traversal.