Nowadays, ray-tracing is getting more and more in focus, because the compute capability of the graphics card has elevated to a level, that allows us to execute this technique in real time, or achieve such realism in reasonable time, which was impossible until now. However, even besides using a grahpics card, one may need to implement some algorithms to speed up this process, to achieve this result.
This work elaborates on the technique called ray-tracing, and on one of the many possible implementations of this on a GPU (Graphics Processing Unit). I describe the basics of ray-tracing, as well as why I chose triangles as primitives to build the scene, then I present the architecture of the (NVIDIA) graphics card used to test, and I also describe and compare the different space partitioning algorithms. From the latter, I have also implemented one called BVH tree, I also explain why I chose this. The program can be found in the appendix.
At last, I evaluate the program, where I assess the performance, and also I look into what could be done to further improve the program.