A personal graphics engine for experimenting with OpenGL/DirectX/OpenVR.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



This repo contains a personal graphics engine and projects built using the engine. The purpose of this engine is to serve as a sandbox while I learn graphics techniques. It's absolutely not intended for any sort of production use.

It originally started as a purely OpenGL engine while I followed this website's guides. As I took a DirectX course at my university, I added in DirectX 11 as an optional graphics API.


There are three main projects in their respective subdirectories.

Engine is the core engine, compiled to a library.

Experiments is a set of scenes (think Unity scenes) which are essentially mini-projects. Scenes are chosen during runtime by passing in the scene name as the launch argument, or typing it into standard input.

Some scenes have a VR variant (designated by the -vr suffix). These scenes rely on an OpenVR-supported headset being connected.

CaVR is a simple proof-of-concept VR game I'm developing with the engine. In it, a small spaceship attached to one of the VR controllers has to navigate an infinite and ever-shrinking cave while collecting fuel cells and avoiding collision with the walls.

Getting started

The first thing you need to do is checkout the submodules:

$ git submodule update --init



Open the DrewGraphics.sln project, then build and run.

There are four configurations:

Configuration Description
D_GL OpenGL Debug
R_GL OpenGL Release
D_DX DirectX 11 Debug
R_DX DirectX 11 Release


To build using CMake, create a new folder (e.g. build), go into that folder, run cmake on the project directory, then make the resulting makefile. Do this from the top-most directory. For example:

$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./Experiments/Experiments