Skip to content

2401lucas/BluVulkanRenderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BluRenderer - A Vulkan Renderer (WIP)

Read more about my project here

image

Current Features

  • Forward Rendering
  • Physically Based Rendering
  • Dynamic Lights (Directional, Point & Spot)
  • Static & Dynamic Models
  • glTF/glb Model Loading
  • Image Based Lighting
  • ImGUI Demo Interface
  • FXAA from Nvidia White Paper
  • Fast Approximate Anti-Aliasing (FXAA)
  • Tonemapping HDR->SDR
  • Debug Shader Views
  • Fragment Shader SSAO

Current WIP: Render Graph(Frame Graph)

At a high level a Render Graph is given each pass and their inputs/outputs which are used to generate frame specific resources, including automatically aliasing memory and generating barriers. This fixes a lot of design problems I encountered while working on this project. I was not a fan of having to micro manage every resource manually, and eventually adding features became a real chore to implement in code. This system allows for much easier resource management and greatly improved debugging potential. It abstracts most, if not all direct graphics API out of the main renderer class. This makes it a lot easier to support other graphics API and leaves the main renderer class to be focused on the overall architecture, making it much more digestable to understand. I also didn't like needing to manually create every resource and ended up with huge shaders with tons of debug cases, and having to ensure debug output was not modified by any following render pass. With my implementation of a RenderGraph, a new RenderGraph can be baked in realtime with a whole new core pipeline. This allows for debug specific pipelines, or switching between rendering techniques on the fly.

Future Feature

  • Multi-threaded Command Buffer Recording
  • Clearer Descriptor Set Creation
  • Model class Refactor for GPU Instancing
  • Compute Culling (Frustrum & Occlusion)
  • HBAO+
  • Temporal Anti-Aliasing (TAA)
  • Texture Streaming
  • Forward Plus Rendering
  • Animations
  • Compute Shader SSAO
  • GPU Particle Simulation & Lighting
  • Compute Post Processing
  • Global Illumination
  • Bloom
  • God Rays
  • Gizmos
  • Scene Hierarchy view
  • Command Pool Refactor TODO: INSERT LINK TO BLOGPOST
  • Atmospheric Scattering
  • Light/Reflection Probes
  • Rebake IBL with Static models Realtime
  • Screen Space Reflections
  • SMAA
  • Compact Light GPU info

Resources

Tech

  • RenderDoc
  • NSight
  • PIX

Books & Documentation

https://registry.khronos.org/vulkan/

https://vulkan-tutorial.com

https://www.gameenginebook.com

https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition

https://www.realtimerendering.com/

https://learnopengl.com

http://iquilezles.org/articles

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published