I wanted to learn more about computer graphics, so I'm writing a 3D software renderer in C. So far I have a solid implementation of triangle rasterization, perspective projection, depth buffer, clipping, texture mapping, diffuse lighting, and gamma correction. Currently struggling with shadow mapping, which is the last feature I'll add to the renderer before moving on to procedural generation of meshes and textures.
Once I'm done with this project I'm planning on making a series of YouTube videos going into the code and the algorithms.
I got this itch too when I came across tinyrenderer [1] and worked through the early lessons through shading, but didn't quite finish the texture mapping yet [2]. It was fun to work in pure C from first principles, even side-questing to write a simple TGA file reader and writer.
I'd be very interested to see your tutorial when it's done!
[1] https://haqr.eu/tinyrenderer
[2] https://github.com/tkocmathla/tinyrenderer
tinyrenderer looks impressive! The tutorials look good too. I might have to borrow some ideas from them.
No idea when I'll get around to making the videos, but if you want to follow my channel it's at https://www.youtube.com/@fast_erik