Year: 2nd Year – Spring Semester(2017)

Grade: 1st Class

Language: C++

Tool Used: Windows GDI

I was tasked with creating a Basic Software 3D Renderer written in C++ and only using GDI calls to explore the roots of Graphics API. Already stablished APIs like OpenGL, Vulkan or DirectX were forbidden to use.
The project implemented rasterization, 3D transformations, wireframe model, solid model, back face culling, depth sorting, flat and smooth lighting, lighting interpolation, directional and  point lighting, Gouraud shading and texturing with Z correction (Depth-buffering).

Also a development diary describing my work on the renderer was written as part of the assignment.

Here is a complete video of the implementation.