Althea is a glTF-based rendering engine built in Vulkan. The goal is to create a flexible and performant rendering platform to support future graphics projects. The progress so far and some of my current projects using the engine are detailed below.
These are a few projects built using Althea.
Althea Demo: Restir DI
Stable Fluids is a 2D incompressible fluid simulation based on "Stable Fluids" by Jos Stam.
Althea Demo: GPU Particle Collisions
Pies for Althea is an Althea integration of Pies. Pies is a constraint- and particle-based, soft-body physics engine based on the paper "Projective Dynamics: Fusing Constraint Projections for Fast Simulation", Bouaziz et. al 2014.
An example GBuffer, the reflection buffer, the Gaussian-blurred glossy reflections, and the final render.
- Vulkan backend to initialize device, manage the swapchain, synchronize a double-buffered render-loop, etc.
- Abstractions and convenient builders for render passes, graphics / compute / RT pipelines, frame buffers, etc.
- Abstractions for old-school descriptor set allocation / binding.
- More modern, bindless heap available for easy registration of resources. Matching shader-side framework to dereference bindless handles safely.
- Resource wrappers and utilities for all sorts of buffers, images, samplers, acceleration structures, shader binding tables, render targets, etc. VMA integration to manage device allocations.
- Shader hot-reloading - shaderc used for GLSL to Spir-V compilation.
- Loading and rendering of gltfs - compatible with both bindless as well as conventional binding-based contexts. Cesium Native is used for parsing the glTFs.
- Integrate MikkTSpace for generating tangents when missing from the glTF.
- Deferred rendering framework. Screen-space reflections / ambient-occlusion
- Various PBR shader utilities for BRDF evaluations, random sampling, IBL pre-computation / sampling, etc.
- Screen-space reflection and screen-space ambient occlusion.
- Point-light shadow-cubemaps.
- Realtime path-tracing framework based on Restir - currently implements Restir DI.
- GPU-visible input system built on GLFW.
- Velocity feedback based camera controller.
- ImGui integration.
- Integrated clang-format.