Vulkan Rendering Engine

Advanced Rendering Final Project

A high-performance rendering engine implementing modern graphics techniques with Vulkan API

Forward vs Deferred Rendering
PBR Materials
Shadow Mapping
VR Rendering
ECS Editor
Lighting System
Lighting System

About The Project

The Vulkan Rendering Engine represents my most advanced work in graphics programming to date, developed as the final project for my Advanced Rendering course. This engine implements modern rendering techniques using the low-level Vulkan API, providing both high performance and visual fidelity.

Built from the ground up in C++ with Vulkan, this engine features multiple rendering paths, an Entity-Component-System architecture, and a job system for efficient parallel processing. The project demonstrates my ability to work with complex graphics APIs and implement cutting-edge rendering techniques.

This engine was designed to be both a technical showcase and a practical foundation for future projects, with particular attention paid to performance optimization and extensibility.

Features

  • Dual Render Paths: Forward and Deferred rendering pipelines
  • ECS Architecture: Entity-Component-System for efficient game object management
  • Job System: Multithreaded task scheduling for optimal CPU utilization
  • PBR Materials: Physically Based Rendering with metallic-roughness workflow
  • Advanced Shadows: Shadow Mapping with Cascade Shadow Maps for directional lights
  • VR Support: Specialized rendering path for virtual reality
  • Dynamic Lighting: Point, Spot and Directional lights with proper attenuation
  • Vulkan Optimizations: Pipeline caching, descriptor sets management
  • Debug Tools: Real-time rendering statistics and debug visualization

Project Information

  • Category: Academic Project
  • Project Date: 2025
  • Languages: C++, GLSL
  • Graphics API: Vulkan
  • Focus Area: Low-level rendering optimization

Technical Highlights

Vulkan Implementation

Developed a complete Vulkan rendering pipeline from scratch, including proper resource management, synchronization, and pipeline state optimization. Implemented descriptor set management strategies to minimize API overhead and maximize performance.

Lighting System

Implemented a comprehensive lighting system supporting all light types with proper PBR integration. The system efficiently manages light culling and shading in both forward and deferred rendering paths, with special attention to performance in complex scenes.

ECS Architecture

Designed an Entity-Component-System architecture that cleanly separates data, behavior, and rendering. The system allows for efficient processing of game objects and optimal cache utilization, with specialized systems for rendering, and gameplay logic.

Job System

Created a multithreaded job system that efficiently distributes work across available CPU cores. The system includes dependencies management, work stealing, and specialized queues for different types of tasks (rendering, physics, etc.).

Technologies Used

Vulkan C++20 GLSL ECS PBR Multithreading Shadow Mapping VR Rendering

Learning Outcomes

Developing this Vulkan engine was an intensive deep dive into modern graphics programming and low-level API optimization. The project gave me hands-on experience with advanced rendering techniques, parallel programming patterns, and performance optimization strategies that are crucial for high-end graphics applications.

Working directly with Vulkan provided invaluable insights into the inner workings of graphics pipelines and the performance considerations of modern rendering engines. The experience has significantly enhanced my ability to analyze and optimize rendering performance in complex scenes.

The architecture decisions made during this project, particularly around the ECS system and job system, have informed my approach to engine design in subsequent projects, emphasizing scalability and performance.