This is my final project submission for the CSU44052 Computer Graphics module. This was implemented in modern OpenGL, using C++. I've only added the code to keep things tidy in case someone down the line finds it useful.
GLFW: Window management, input and context handling, global time.
GLAD: Function pointers.
SFML: Music, audio.
STB: Image loading.
ImGui: User interface.
GLM: Mathematical operations.
Victor Gordon's OpenGL tutorials: Model Loading, Mesh, Skybox, Blinn-Phong, VAO, EBO, Texturing, Camera Controller: https://www.youtube.com/watch?v=XpBGwZNyUh0&list=PLPaoO-vpZnumdcb4tZc4x5Q-v7CkrQ6M-&index=1&t=0s
ImGui Tutorial: https://www.youtube.com/watch?v=VRwhNKoxUtk
Idea to add world curvature came from watching this video: https://www.youtube.com/watch?v=Uc8FEI5bg3w