Raytracer/Rasterizer Library

About

This project was the main semester task for the Introduction to Computer Graphics Algorithms course at my university. Our goal was to create a standalone graphics library that could be used for basic raytracing and rasterized renders. The project was created in a team of two where we distributed the work accordingly:

Because we were tasked to build the engine from ground up, first, me and my classmate have both cooperated on creating a math library mimicking the GLM library.

My main tasks were:

  • line drawing algorithm (optimized Bresenham: see my recent worksheet for Bresenham derivation)
  • raytracer basic functionality (primary and secondary rays - shadows, reflections, refractions)
  • shading models (Blinn-Phong, Cook-Torrance)
  • area lights

Gallery