A C++ implementation of a ray tracing rendering engine based on Nori, originally developed for the Advanced Computer Graphics course at EPFL and passed with 6/6.
Final scene showcasing most of the features, rendered with volume rendering. Uncompressed version

- Volume rendering with multiple homogenous participating media
- Multiple importance sampling
- Texture and normal mapping
- Multiple materials, including rough and smooth dielectrics and conductors
- Point, area, directional and image-based lights
- Environment maps
- Depth of field
- Incremental rendering
| Topics | Links |
|---|---|
| Project setup and dummy integrators | report.html |
| Octree optimization | report.html |
| Probability distributions, point lights, ambient occlusion, hierarchical sample warping | report.html |
| Area lights, Whitted-style ray tracing, dielectrics | report.html |
| Path tracing, next event estimation, multiple importance sampling, microfacet BRDF | report.html |
| Final scene | report.html |