Vulkan Renderer

Overview

After a long reflection on how much I had learned from my first attempt at making an engine, followed by a short reflection on how terrible of a setup it was, I started on a new project. The last engine was purely made to learn, I honestly had never intended to make it public at first, so it was set up to build using static environment variables and manual installations of its dependencies. This meant it had an incredibly high barrier of entry to building, which I decided was overall Not Great. So I restarted and have surpassed* how far I got in the other engine in a much shorter timeframe. I've learned a lot from following vkguide, but on this attempt have had much more confidence in my ability to abstract in my own way and set up the engine in a way I like.

Some interesting things I've implemented:

  • Bindless Setup
  • Scene Graph
  • Frustum Culling
  • Point, Spot, Directional Lights
  • glTF/glB loading
  • PBR Materials
  • Asynchronous Mesh Uploading
  • Transparency and Draw Sorting

I've tested this on my own Windows 11 machine on Vulkan 1.3.268. It uses CMake FetchContent to download most of the dependencies so it should work fine. No promises for other setups right now.

GitHub Link (Sun main Branch)

← Back to Home