Shipped this project!
I built a 3d graphics engine in C++ that runs entirely on the CPU. I implemented .obj loading to load models with textures, Phong lighting, and a moveable camera. I learnt a lot about graphics, rasterisation and how video games work! I also got to practice some linear algebra which I learnt at school. This was quite challenging as I haven’t created a project this large before so I needed to manage the project carefully by using OOP design and making functions modular so that it would be easy to add features as I went through the project. I’m really proud of the .obj loading. For the first half of the project I only had spinning cubed being rendered but once I implemented .obj loading I could suddenly load different models into my graphics engine which was very rewarding. Implementing the lighting was slightly difficult as the maths involving the direction vectors, light vectors, normals, etc was fiddly and having one small mistake would mean the rendering would look very weird. But overall I’m happy with how this project went and I would love to work on it in the future as there’s so much more stuff that could be added.