Overview
About tracr
Tracr is the final project I created for a computer graphics class at McGill, it is a completed raytracer that renders images using .json scene specification files. Each scene is fully customizable with camera position/rotation, object placement, light positioning, and more.
For the base project I implemented the ray tracing from scratch, and added features for visualizing simple geometry, materials with custom shading, light and shadows, mesh importing, object instancing, and anti-aliasing. After the base implementation was finished, I added multiple other features to create more realistic graphics and more varied scenes. This included features for area lights/soft shadows, depth of field, and a Constructive Solid Geometry system for creating more complex objects.
Responsibilities
What I Did
- 01 Used linear algebra to generate rays and calculate intersections with spheres, boxes, planes, and triangles
- 02 Created a customizable material system that adds shading and colour to objects
- 03 Developed point and area lights which cast hard and soft shadows on other objects
- 04 Added anti-aliasing to images by super sampling each pixel
- 05 Authored a boolean logic based Constructive Solid Geometry system for creating complex objects out of simple geometry
- 06 Implemented a depth of field blur feature for rendering more realistic images