Level Renderer

3d Vulkan Graphics Engine

A picture of the Heist game.

A 3d rendering engine written from scratch in Vulkan. Written in C++ and HLSL, the project was focused on graphics programming and some advanced renderer features, such as collision and instancing.

Level data was read from a text file and includes hot-swapping levels opening a windows dialog. Levels were designed in blender and parsed into text files using a python script. These different files can be loaded at run-time to switch levels to different scenes upon request.

Instancing was possible by writing the objects into a map from the standard library. Collisions were implemented using a bounding volume hierarchy tree, to save on computational cost. Instead of checking collision with everything, only check collisions near the camera.