Spark is a custom 3D renderer built from scratch using Vulkan. I designed it as a robust testbed to explore high-quality, real-time rendering without constantly rebuilding core systems. Since starting development earlier this year, Spark has become an active platform for prototyping new features and deepening my understanding of efficient rendering architectures.

To ensure optimal performance and stability, I use tools such as RenderDoc, NVIDIA Nsight, and Tracy to analyze GPU workloads and debug rendering pipelines. The architecture integrates industry-standard libraries such as Dear ImGui, meshoptimizer, and NVIDIA DLSS, allowing me to focus on advanced implementation rather than reinventing foundational components.

Currently, Spark serves as the technical foundation for my dissertation project, where I am specifically exploring real-time raytraced global illumination techniques. This project demonstrates my ability to engineer complex graphics systems while leveraging professional profiling tools and established libraries to achieve high-fidelity results.

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 Approxima
te Anti-Aliasing)

Spark: A Vulkan-Based 3D Renderer

Lighting, Materials, and Shadows
RayTracing/Raster Hybrid

One of the primary goals of Spark is to synergize ray tracing and rasterization for optimal performance. To achieve natural softening without the high cost of fully ray-traced penumbras, the engine utilizes Hybrid Soft Shadows by mixing ray-traced hard shadows with Percentage Closer Filtering. Additionally, the pipeline implements Ray Traced reflections and Dynamic Diffuse Global Illumination to significantly expand visual fidelity while preserving real-time frame rates.

Spark utilizes an entirely deferred shading architecture to manage complex lighting environments efficiently. This approach decouples geometry processing from lighting calculations and enables performant screen space effects. For material rendering, the engine employs a Physically Based Rendering model based on the standard metallic-roughness workflow to ensure realistic surface interactions with light.

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.

Core Technology & Libraries