Real-time OpenGL renderer in C++: shadow mapping, skybox, post-processing filters, and an editor with mouse picking and a scene hierarchy