Real-Time 3D Rendering Engine

Vulkan Renderer

A high-performance 3D rendering engine built directly on the Vulkan graphics API — drawing everything from simple geometry to fully procedural, ray-traced visual effects in real time.

Procedurally generated, ray-traced volumetric clouds rendered in real time
Role
Solo Developer
Language
C++23
Graphics API
Vulkan
Build
CMake

By the Numbers

25M+
particles rendered simultaneouslyacross all systems
5M+
particles per system
C++23
modern language standard
1
draw call per procedural plantno pre-loaded models

Project Overview

Vulkan Renderer is a high-performance 3D rendering engine powered by the Vulkan graphics API. Working this close to the metal keeps overhead minimal and framerates high — whether it's drawing simple geometry or composing complex, real-time visual effects, the renderer has the flexibility and raw performance to push them.

Built With

Language
  • C++23
Graphics
  • Vulkan
  • GLSL Shaders
  • Ray Tracing
  • Compute Shaders
Techniques
  • Particle Systems
  • Cube Mapping
  • Vertex Manipulation
  • Procedural Generation
  • Mouse Picking
  • Texture Generation
Tooling
  • CMake

Key Features

  1. 3D Model Rendering

  2. Dynamic Lighting

  3. Mouse Picking

  4. Particle Systems

  5. Cube Mapping

  6. Vertex Manipulation

  7. Texture Generation

  8. Ray Tracing

Dense smoke particle systems pushing the boundaries with 5+ million particles per system — over 25 million particles rendered simultaneously, all in real time.

Particle engine benchmark

Technical Highlights

  1. Memory Management

    Consistent use of smart pointers and RAII patterns ensures efficient memory use and no leaks.

  2. Modern C++

    Built with modern C++ features up to C++23 for cleaner, more efficient code.

  3. Graphics Programming

    Multiple rendering pipelines and shader techniques work together to create interesting, performant visual effects.

Demonstration

  • Fully procedurally generated ray-traced volumetric clouds—computed and rendered in real-time.
  • Two procedurally generated ferns with individual leaf physics, rendered in real time using a single draw call per plant — no pre-loaded models required.
Dense smoke particle systems pushing the boundaries with 5+ million particles per system — over 25 million particles rendered simultaneously, all in real time.

Use Cases

Vulkan Renderer is intended for:

  • Powering my 3D game/physics engine, ECS3D, or other engines — it drops into any project that builds with CMake.
  • Prototyping and experimenting with novel rendering techniques in a well-structured, low-level environment.
  • Creating real-time simulations with compute shaders that tap directly into the raw power of the GPU.

Future Development

  1. Advanced Lighting

    Global illumination and shadow mapping improvements.

  2. Ray Tracing

    In progress — reflections and other lighting improvements.

  3. Atmospherics

    Volumetric fog and sky rendering.

  4. Water Rendering

    Reflective and refractive surfaces with wave simulation.

Learning Outcomes

  1. Advanced C++ & software architecture

  2. Low-level graphics programming with Vulkan

  3. Performance optimization & memory management

  4. Cross-platform development & build systems

Explore the source

Vulkan Renderer is open source and built with CMake — dig into the implementation.

View on GitHub