Merging and conclussion

Implementation: 

Implementing specular surface together with anti-aliasing was much simpler than intiality thought. To have them at the same time you simply have to make the anti-aliasing rays reflect on the specular surfaces. This was done by following the whole path of each anti-aliasing ray, compounding the reflections, before adding it to the average value of all the anti-aliasing rays. This creates reflective anti-aliased surfaces. 

Conclusion: 

The goal of our project specification has been meet and anti-aliasing as well as specular surfaces has been implemented successfully. When we began the project we had very vague ideas of what to do and now at the finishing stages we are finding more and more things that we could implement as we keeping reading about the subject. Time efficiency was not taken into consideration when implementing anti-aliasing and specular surfaces, which can be read about in the project specification. The finished program is slow, and the more you increase the screen resolution, anti-aliasing rays, and the number of reflection the slower it gets. You can clearly see why ray tracing is not used in real time applications. There are of course many ways to optimize the performance of this application which can be read more about under "Improving specular surfaces" and "Improving anti-aliasing", mainly optimization regarding anti-aliasing as this is the most computationally heavy part of the application. Though the subject of anti-aliasing could fill a book, the more you read about the more you will find out.