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
Programming Languages and Libraries