This repository was first crafted with the steps from Ray Tracing In One Weekend and the follow-on series. It also includes important type aspects from the blogpost about Type-Safe Ray Tracing. I have updated it to follow "modern C++ standards" (a continuous effort), and also added several more features listed below. Example scenes and images are also provided.
- Unit testing.
- Finish documentation.
- Look into magic number cases and either change or document appropriately.
- Demonstration using PPM image file. Provides different "scenes" to play around with as well.
- Single value_type to allow client to switch between double, float, etc.
- Abstract material class to allow for different materials. Current materials include lambertian, metallic, and dielectric (clear).
- Abstract texture class to allow for different textures. Current textures supported are single-color and checkered pattern.
- Abstract hittable class to allow for different shapes. Currently supports triangles, square pyramids, spheres, rectangles, and blocks.
- Type safe vectors.
- Positionable camera with defocus blur.
- The Cornell Box. [Reference]
- Six spheres in a triangular formation.
- Perlin noise.
- Checkered texture.