Read more about my project here
- 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
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.
- 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
- RenderDoc
- NSight
- PIX
https://registry.khronos.org/vulkan/
https://www.gameenginebook.com
https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition