Spark is a personal, 3D renderer built from scratch using Vulkan. It's designed to act as a test bed for me (or anyone else) to real-time and high-quality rendering. Instead of constantly rebuilding core systems, Spark allows for rapid prototyping and implementation of new features.
Core Technical Features
To enhance realism with minimal performance overhead, Spark integrates several efficient screen-space techniques:
Screen-Space Reflections (SSR)
Screen-Space Ambient Occlusion (SSAO)
Screen-Space Global Illumination (SSGI)
FXAA (Fast Approximate Anti-Aliasing)
Spark: A Vulkan-Based 3D Renderer
I've been developing Spark since the beginning of this year, and it has become an active project that helps me deepen my understanding of Vulkan, real-time ray tracing, and efficient rendering architectures. To support this, I regularly use tools like RenderDoc and NVIDIA Nsight and Tracy to analyze GPU workloads, debug rendering pipelines, and tracking down performance bottlenecks.
When developing spark I set out with the aim of integrating industry standard libraries such as imgui ,Mesh optimiser, Nvidia NRD and many more, with that I avoid reinventing the wheel and allows for a much more streamlined development.
This is a project I am very proud of and is being used as a base for my dissertation Project.








Lighting, Materials, and Shadows
RayTracing/Raster Hybrid
One of the main goals of this renderer is to combine ray tracing and rasterization in ways that remain performant.
Hybrid Soft Shadows: To produce natural softening without the heavy cost of fully ray traced penumbras, Spark mixes ray traced hard shadows with Percentage Closer Filtering (PCF).
Beyond shadows, I am also exploring additional ray tracing techniques to integrate into the pipeline. These include reflections and global illumination. with the aim of expanding visual fidelity while preserving real-time performance.
Spark utilizes an entirely deferred shading system which allows for performant complex screen space effects like, lighting.
Materials are built on a Physically Based Rendering (PBR) model using a metallic-roughness workflow. Key lighting models used are Cook–Torrance specular and Oren–Nayar diffuse
Screen-Space Effects
Spark's high-performance architecture blends industry-standard libraries with custom-built systems to maximize both runtime performance and development speed.
Vulkan Memory Allocator (VMA): Integrates the VMA library for robust and efficient GPU memory management, which optimizes memory allocation and reduces operational overhead.
glTF 2.0 Asset Pipeline: Natively loads assets using the glTF 2.0 format, the modern standard for PBR models and scenes. This ensures a streamlined workflow and accurate content representation.
Dear ImGui Integration: Features a real-time user interface powered by Dear ImGui for live debugging, allowing for visualization of render buffers and dynamic tweaking of rendering parameters.
Proprietary Vulkan Wrapper: Built on a custom abstraction layer that simplifies Vulkan's complexity. This wrapper manages boilerplate for common tasks, accelerating development and allowing focus on high-level features.
Custom Asset Caching: Implements a caching system that keeps loaded assets in memory. This prevents redundant file access and significantly reduces scene load times by reusing shared resources.