C++ Vulkan Renderer

Overview

After a thorough reflection on the progress made during my first engine project, and an equally honest assessment of its shortcomings, I started on a complete redesign. The original engine was built purely as a learning exercise and was never intended for public release which led to my reliance on static environment variables and manual dependency installation. This had a high entry barrier for building the project, meaning it'd be harder to show off my work and what I had learned. Recognizing this I chose to start fresh.

My new engine, Sun, has not only surpassed the scope of its predecessor, but has done so in considerably less time. Drawing on lessons from following vkguide, I approached this iteration with greater confidence in my ability to architect systems in a way that suits the engine's goals.

Notable features implemented in this iteration include a bindless resource setup, a scene graph, frustum culling, support for point, spot, and directional lights, glTF/glB asset loading, PBR materials, asynchronous mesh uploading, transparency with draw call sorting, and a fully custom async compute particle system.

Sun has been validated on Windows 11 using Vulkan 1.3.268. Dependencies are managed via CMake FetchContent, which should make the build process straightforward for most configurations, though compatibility across all environments cannot be guaranteed at this stage.

GitHub Link (Sun main Branch)

← Back to Home ← Back to Home