Skip to content

chFleschutz/aegis-engine

Repository files navigation

Aegis Engine

Language Platform License

C++ render engine developed with Vulkan to explore low level graphics programming

Screenshot 2025-03-20 095757

Note

My original Master's Thesis version is archived in the thesis branch or at the thesis tag.

Features

  • Physically Based Rendering (PBR) - Realistic lighting and materials
  • GLTF & OBJ Loading - Loading of custom 3D models
  • Immediate Mode Editor UI - Editor tools using Dear ImGui and ImGuizmo
  • Entity Component System (ECS) - Efficient object management using EnTT
  • Framegraph - Multipass rendering with automatic renderpass sorting
  • Deferred Rendering - Improved lighting performance
  • HDR Rendering and Tone Mapping - Enables wider color range for more visible details
  • Physically Based Bloom - Realistic glow effect around bright areas created using convolution
  • Screen Space Ambient Occlusion (SSAO) - Enhanced depth perception
  • Mesh Shaders Pipeline - Modern geometry rendering
  • GPU Driven Rendering - Minimize CPU rendering overhead

Prerequisites

Before building ensure you have the following installed:

  • Vulkan SDK - Download and install the latest version (at least version 1.3).
  • CMake - Used for building the project. Either install it manually or use an IDE with built-in CMake support (like Visual Studio)

Note: The engine currently only targets Windows.

Getting Started

Follow these steps to get started:

  1. Clone the repository and its submodules:

    git clone --recurse-submodules https://github.com/chFleschutz/aegis-engine.git
  2. Open the folder in a CMake supported IDE (e.g. Visual Studio) or generate project files using CMake.

  3. Build and Run one of the example projects.

Modules and External Libraries

This project is structured into several independent modules:

The engine relies on the following external libraries:

Screenshots

Lumberyard Bistro Scene:

bistro

Crytek Sponza Attrium Scene with Editor UI:

Screenshot 2025-03-20 100442

Instancing Stress-Test of 1 Million Objects:

lpo

About

Vulkan Render Engine written in modern C++

Topics

Resources

License

Stars

Watchers

Forks

Contributors