tracr:
Graphics Renderer

PC · Python · 2024 All Projects
Complex image using all features Depth of Field Showcase Area Light Showcase Constructive Solid Geometry Showcase
1 / 5

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.

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

Head back

Learn More
About Me