Skip to content

gan74/Yave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dc34e20 · Mar 26, 2025
Mar 26, 2025
Mar 21, 2025
Mar 26, 2025
Mar 21, 2025
Mar 26, 2025
Mar 18, 2025
Mar 4, 2025
Mar 23, 2025
Feb 10, 2023
Jun 17, 2024
Mar 9, 2025
Mar 9, 2025
Mar 9, 2025
Aug 3, 2020
May 4, 2020
Aug 3, 2020

Repository files navigation

Yave

Yet another C++20 Vulkan engine.

Disclaimer

This is a pet/learning project, it's not meant to be a serious engine and should not be used for anything beside playing with Vulkan.

Currently only supports Windows

  • With GCC 14+ through MSYS2
  • With MSVC 19.28+

Serialization format is compiler dependent!

Current status Older UI: 1 2

Project structure

  • y: Core library with a bunch of utility functions and classes
  • yave: The engine itself It links only to y and spirv_reflect
  • editor: A scene editor build on top of yave
  • shaders: All the shaders for both the engine and the editor
  • external: Third party libraries

Building

You need:

  • CMake (3.25)
  • A C++20 compiler
  • Vulkan SDK
    • With Volk

Implemented features:

  • All basic Vulkan features
    • Buffers
    • Images
    • Arrays
    • Cubemaps and IBL probes
    • Descriptor sets
    • Basic pipelines
    • Compute shaders
    • Swapchain
    • Framebuffers
    • Resources lifetime management
    • Framegraph
  • Rendering pipeline
    • Tiled deferred shader
      • Physically based lighting
      • IBL
    • Shadows for spot and directional lights
    • Basic scenes
    • TAA
    • Bindless renderer with batching

Licence:

MIT