/Blaze

An attempt at a fully featured Vulkan 3D engine.

Primary LanguageC++MIT LicenseMIT

Blaze

Version 1.1

A WIP rendering engine in Vulkan 1.1 using C++17 Made by Anish Bhobe

Damaged Helmet glTF

Features (Current and Planned)

  • Forward Rendering
  • glTF 2.0 Support
    • Load Vertex Data
    • Load Material Data
    • Load Animation Data
    • Load Camera
    • Load Lights
    • Support Specular Materials
  • PBR
  • IBL
  • Shadows v1
    • Omnidirectional Cubemap Shadows
    • Directional Shadows
    • Cascaded Shadows
    • PCF
  • Smooth Descriptor Creation Pipeline
  • Deferred Rendering
  • Post Process Stack
  • Ambient Occlusion
    • SSAO
    • HBAO
    • VXAO/SDFAO
  • Reflection
    • ScreenSpace Reflection
    • Cubemap Reflection
  • Forward+ Rendering
  • Global Illumination
    • Precomputed Radiance Transfer
    • Voxel Cone Tracing
  • Shadows v2
    • Spot Lights
    • Area Lights
    • Omnidirectional Dual Paraboloid Shadows
    • Perspective Shadow Mapping
  • Animation
  • Particle Effect

Dependencies:

Most Recent Work: Cascaded Shadow Maps implemented.

Cascades in Sponza

Deferred Shading Implemented.

Blaze now has a deferred renderer with spherical volumes.
The unoptimized GBuffer is:
Position - R16G16B16A16 SFLOAT (3 channel position + alpha linear distance)
Albedo - R8G8B8A8 UNORM (3 channel color + alpha unused)
Normal - R16G16B16A16 SFLOAT (3 channel world space normals + alpha unused)
Physical Desc - R8G8B8A8 UNORM (R: Occlusion, G: Metallic, B: Roughness, A: Unused)
Emission - R8G8B8A8 SFLOAT (3 channel emission + alpha unused)

Added SSAO

SSAO has been added with 64 samples in a hemisphere, and 5x5 blur at half resolution. Next up to reduce the sample requirement by using low discrepancy samples.

Performance hit ~6ms at 1920x1080 full resolution SSAO.

Full resolution SSAO in Sponza

Next up: Forward+/Clustered Forward renderer