I created a rendering framework from scratch that can load multiple .obj models. The application supports the use of .mtl files to display a model's textures and makes use of custom fragment and vertex shader files.
I also implemented a skybox by following a tutorial from LearnOpenGL, re-factoring the code where needed.
Whilst completing this university assessment I learned about graphics pipelines, fragment and vertex shaders, and low-level programming.