A simple ray tracing renderer written in C++.
The program provides a few different "labs" that demonstrate components of the ray tracing process:
- Shapes - computes triangular meshes for a few different shape primitives at different levels of tesselation.
- Camera - computes and applies the matrix transformations necessary to convert world coordinates to a view frustum which can be displayed on the screen, based on a specific camera.
- Intersection - computes intersection points and normals for rays cast against a few different shape primitives.
- Sceneview - combines the previous functions to display a scene graph. Sample scenes are provided in data/scenes
- Rendering - performs ray tracing to illuminate the scenes as displayed in the previous lab.