demos icon indicating copy to clipboard operation
demos copied to clipboard

Simple OpenGL and Vulkan graphics demos in C++

About

Graphics demos made for playing around and learning. The code is (hopefully) clean and self-documented, most dependencies are included 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.

All demos are intended to run on Windows and have not been tested on other systems.

Building and running

  • Install Vulkan SDK. Make sure the VULKAN_SDK environment variable is set.
  • cd build.
  • cmake -G "Visual Studio 16 2019" -A x64 .. (or run a build script from the folder, e.g. gen-msvc-2019-x64.cmd).
  • Build using the generated IDE files.
  • Run executables from build/bin/<Debug|Release>/.

Controls

Some demos use first person camera. Use W-S-A-D-Q-E keys to move and hold right mouse button to rotate.

Demos

Dear ImGui [VK/GL]

Basic Dear ImGui integration example.

Image

Transform [GL]

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

Image

Skybox [GL]

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

Image

TrueType [GL]

TrueType font rendering using stb_truetype library.

Image

To be continued...

Dependencies

  • stb_truetype
  • stb_image
  • SDL
  • GLEW
  • glm
  • Dear ImGui
  • Vulkan
  • OpenGL