Improving anti-aliasing.

One way of improving the anti-aliasing would be to implement adaptive super sampling. With adaptive super sampling rays are adaptively chosen where they should be shot. Some initial rays are shot and if they have a high variance compared to each other, additional sampling will occur and thus not sampling where it won't be needed. [3]. This saves a lot of computation time. Another alternative to better the sampling is to replace the grid with a rotated one, which gives more anti-aliasing to vertical or horizontal edges, where it is usually most needed [5]. To speed the process up even more the ray tracer could be rewritten to use the GPU instead of CPU.  This can be done in many different ways. One way is called GPGPU-programing (General purpose GPU).  NVIDA offers the “CUDA toolkit” for their own GPUs which contains a C/C++ compiler that compiles C++ optimized code and GPU optimized libraries for example Matrix calculations. This would replace the current math library glm for example. The problem with the CUDA toolkit is that it’s not a unified platform, AMD GPUs are not compatible with it. AMD instead uses something that is called OpenCL.[1][2]
If a person would like to create a GPU-optimized application under any GPU, OpenCL should be used. OpenCL is a unified platform for GPGPU-programming.[2]

The other option for optimization via GPU is rewriting the entire raytracer in SDL 2.0(or any other hardware accelerated graphics libarary) as SDL 2.0 supports full 3D hardware acceleration and SDL 1.2 does not.[4]

References:

[1]CUDA-toolkit specification:
https://developer.nvidia.com/cuda-toolkit  (Accessed 2015-05-25 )

[2]OpenCL specification:
http://developer.amd.com/tools-and-sdks/opencl-zone/  (Accessed 2015-05-25 )

[3] Allan B Tucker, Computer Science handbook. 2nd ed. Boca Raton:
Taylor and Francis Group LLC, 2004. Page "39-19".
Note that this books page number actually was referred to like this, i think it means Chapter 39, page 19. 


[4] SDL 1.2 to 2.0 Migration Guide - Overview section.
https://wiki.libsdl.org/MigrationGuide  (Accessed 2015-05-25 )

[5] Tomas, Akenine-Möller.,  Eric, Haines and Nathaniel Hoffman. Real Time Rendering. 3rd ed. Wellesley: AK Peters ltd, 2008. Page 128.