Demos
Simple OpenGL and Vulkan graphics demos in C++
Install / Use
/learn @lexfn/DemosREADME
About
Graphics demos I made for playing around and learning. The code is (hopefully) clean and self-documented, most dependencies are included or downloaded automatically for easier building.
There are no complex abstractions aka "engine", however a small library of shared code is still used. The goal is to keep things easy to understand while taking away some of the boilerplate.
The demos have been tested on Windows. On macOS the OpenGL demos might still work, but have not been tested properly. Vulkan demos work only on Windows.
Check also https://github.com/0xc0dec/demo-rs - an alternative experiment in Rust.
Building and running
Windows
- Install Microsoft Visual Studio, make sure the C++ compiler is included in the installation. The project was last tested with MSVS 2022.
- Install Vulkan SDK. Make sure the
VULKAN_SDKenvironment variable is set. cd build.cmake -A x64 ...- Build the
ALL BUILDtarget in MSVS. - Run demos from the project root, e.g.:
./build/bin/<Debug|Release>/<executable>.
macOS
cd build.cmake ...make- Run demos from the project root, e.g.:
./build/bin/<executable>.
Controls
Some demos use first person camera. Use WASDQE keys to move around and hold right mouse button to rotate.
Demos
ImGui [VK/GL]
Basic ImGui integration example.

Transform [GL]
Object transform hierarchies and (first person) camera via reusable Transform and Camera classes and a helper spectator function.

Skybox [GL]
Skybox rendering on a single quad mesh using a bit of shader magic.

TrueType [GL]
TrueType font rendering using stb_truetype library.

To be continued?...
Dependencies
- stb_truetype
- stb_image
- SDL
- GLEW
- glm
- ImGui
- Vulkan
- OpenGL
