This is a programming project for the course Advance Computer Graphic in the second year of my master's degree.

In this project, My partner and me have implemented many functionalities in a ray tracer framework in C++. We got our first image of a 3D scene by implementing raycasting with spheres and Phong illumination.

Then we implemented multiple light sources, shadows, reflections and refractions by tracing the ray recursively.

After that we implemented our own camera model, so that the images reproduced by our raytracer could have higher quality. The models could be viewed by different angles by moving the camera. We also implemented texture mapping and alternative illumination models.

Finally, we implemented more geometries and used our raytracer to load 3D mesh files in order to reproduce more complecated scenes. However, our teddy bear has some numerical problems :(