The program is an OpenGL engine based on the articles by Joey de Vries in https://learnopengl.com/ under the terms of the CC BY-NC 4.0.
It is used for my personal experimentations on computer graphics, shaders and rendering.
- Data-driven scenes from JSON files
- Scene cycling via
assets/scenes/scene_config.json - Object behaviors (None, Oscillate, Spin, Fly)
- Scripted camera routes with keyframes (position + lookAt)
- Material/shader selection per object
- Runtime asset sync to
build/assets
- CMake (3.10+)
- C++17 compiler
- OpenGL
- GLFW3
- GLM
- FreeType
- nlohmann/json
mkdir build
cd build
cmake ..
cmake --build ../build/OpenGLEngineW/A/S/D: move camera on horizontal planeQ/E: move camera down/up- Mouse: look around
- Mouse wheel: zoom
C: toggle scripted/manual camera mode (when keyframes exist)ESC: quit
- Scene registry and cycle:
assets/scenes/scene_config.json - Scene files:
assets/scenes/basic.scene.json,assets/scenes/alternate.scene.json - Shaders:
assets/shaders/ - Meshes:
assets/meshes/
- The executable loads scene JSON, shader files, and mesh files at runtime.
- Build copies assets into
build/assetsautomatically (copy_assetstarget). - Because runtime file IO is used, the executable currently expects assets to be present next to the build output.