A basic implementation of software-based ray tracing in C++. All output is directly stored in a .ppm file (openable in Photoshop, Gimp, feh, etc.).
Currently the ray tracer is capable of:
- Ray tracing for an arbitrary number of spheres
- Ray tracing for an abritrary number of point light sources
- Accurately simulating perspective projection
- Basic shadows
- Reflective materials
- Refractive materials
While this is missing some more advanced features, it is capable of generating a realistic image.