# Monte Carlo (Stochastic) Ray Tracer

**Credits:** 6 ECTS Credits / 4.0 work weeks.

**Group size:** 2 persons.

This is a project done in the university course TNCG15 - “Advanced Global Illumination and Rendering”. In a ray tracer modeled after Turner Whitted’s model, only perfect specular reflections are considered. To consider imperfect and, to some extent, diffuse interreflections, Monte Carlo integration schemes are used.

Monte Carlo schemes are based on statistics and can be used to solve integrals that can be very hard to solve analytically.

There are also different types of BRDF:s implemented such as the Blinn-Phong model and the Cook-Torrance model. Transmission is also handled by the renderer.

Visual feedback of the render progress is given by rendering the resulting image to an SDL window. The resulting image is then saved to a .png.

The project report is available here.

## Techniques

- C++
- SDL
- libpng
- Monte Carlo Integration
- Lighting calculations

## Source Code

The project is open source and the source code can be viewed on GitHub.