Software Rasterizer
What a GPU does under the hood, my own depth buffer, vertex culling and texture mapping, with normal, diffuse, metal and specular maps.
$ git clone https://github.com/XanderBert/SoftwareRasterizer
For my Graphics Programming course, I built a software rasterizer. The nice thing about this project is that I really learned what a GPU does under the hood.
I had to write my own depth buffer, vertex culling algorithm, and texture mapping algorithm. This rasterizer supports normal maps, diffuse maps, metal maps, and specular maps.
I also wrote two different loop implementations: one for triangle strips and one for triangle lists.

Here you can see the depth buffer visualization, the normal map in use, and the different calculations for the other textures.