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.
- 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