Created using C++, in Visual Studio.
This program generates images of objects with realistic lighting by simulating how light behaves in a virtual environment. This project is a more up-to-date recreation of a previous ray tracer that I worked on: https://github.com/nvasiu/Ray-Tracer. This project's features include:
- Diffuse shading and realistic shadows.
- Rough or reflective surfaces.
- Light emitting objects.
- A menu UI that lets users control the variables of the environment.
- Real time image rendering.
- (Transparent objects and light refraction are a work in progress.)
 |
| Example Image With Program UI |
 |
| Reflective, Rough and Light Emitting Spheres |
This program simulates realistic lighting in real time by randomly modifying the direction that light rays bounce. This randomness means that images will initially be generated with some amount of noise (as seen below). Letting the program run with the "accumulate" option turned on will gather color data over many render iterations and average them out, resulting in a cleaner image.
 |
| How An Image Looks Initially Without Accumulation |
 |
| How The Previous Image Looks After A Second Of Accumulation |
 |
| Work In Progress Of Transparent Objects |