/Zephyr

Zephyr is my personal take on a Vulkan-based renderer

Primary LanguageC++

Zephyr

This is my personal take on a vulkan renderer. The whole point of this project is to familiar myself with vulkan and trying out different rendering techniques on it.

This project is by no mean production ready. Code structures are pretty messy, there are a lot of raw pointers floating around, and there is no shader management.

Current Feature

  • Component-based system(A partial take on ECS, without contiguous memory management)
  • Graph-based rendering pipeline that supports both graphics and compute pipeline, with resource aliasing and auto synchronization(Based on the framegraph talk by Frostbite)
  • Graphics API abstraction layer(currently only vulkan available)
  • Full forward and deferred shading with metallic-roughness pbr workflow
  • 4 level cascaded shadow mapping with smooth transitioning in between cascades
  • Directional light and point light support
  • IBL support(SH for diffuse and split-sum approximation for specular)
  • Compute based post-processing stack, including:
    • hdr and bloom
    • aces tonemapping
    • fxaa

Here are some screenshots

  • IBL IBL Material Screenshot 2023 01 02 - 14 27 58 68 PBR Model Screenshot 2023 01 02 - 15 26 43 54
  • Anisotropy anisotropy
  • HDR && Bloom Bloom Screenshot 2023 01 06 - 14 11 44 02
  • Cascaded Shadow Mapping Cascaded Shadow Screenshot 2023 01 02 - 15 49 56 54 Cascaded Shadow Debug Screenshot 2023 01 02 - 15 51 38 59