This project was implemented during Spring 2020-2021 for Advanced Ray Tracing course. We first started with basic intersections and got simple images but after a while, we have studied more advanced techniques and our rendering results got a lot realistic.
I first tried to implement this project with GLSL compute shaders but failed to follow the homeworks on time. So when I saw that it was tackling my progress, I immediately implemented a CPU version and carried on from there (This happened after 2nd Homework).
At the end of the semester, I have a pet ray tracer as a programmer :D. I want to thank to our professor Ahmet Oğuz Akyüz for this amazing course and also to my classmates (I've learnt a lot reading their blog posts).
Feature list:
- Parallelism with C++ Async/Future
- BVH trees for mesh intersections
- Diffuse, Dielectric, Conductor materials
- Multisampling
- Motion Blur
- Glossy Reflections
- Depth Of Field
- Texture support
- Procedural Textures and Perlin Noise generator
- Advanced Lighting (Directional, Point, Area, Environment, Spot lights)
- HDR imaging and tone mapping
- BRDF models
- Object lights ( Light meshes and Light spheres)
- Path tracing support
During the course we recorded our progress with blog posts, mine is here :
Cornellbox scene with diffuse spheres |
---|
Rendered in approx. 3 hours |
Cornellbox scene with diffuse a glass sphere |
---|
Rendered in approx. 6 hours |
Veach Ajar Scene |
---|
Rendered in approx. 1 day 8 hours |