Anni(stands for "annihilation") is a graphics engine implemented using vulkan graphics api and c++ 20.
There are several externl librarys on which Anni relys:
vulkan-hpp: CPP binding of vulkan.
fastgltf : For fast parallel loading of gltf model files.
glfw : Windows system integration.
glm : A commonly used math library.
imgui : For GUI used in the engine.
ktx : For loading ktx images.
std_image: For loading stb images.
vma : GPU memory allocation.
Engine-level features under development:
RenderGraphV1:
1.Automatic resources lifetime management.
2.Automatic resources barriers and semaphores insertion.
3.Automatic descriptor set layouts generation and descriptors allocation.
4.Multi-frame inflight syncronization.
5.Multi-queue execution scheduling(make full use of available queues) enables async load and async compute.
RenderGraphV2:
1.Resources creation decriptor automatic generation(from common image view formats gathered from all image usages specific to render passes).
2.Remove format field of AttachUsage and TexUsage, it can be infered from image view formats by finding the common one.
Graphics-level features under development:
1.MSAA Defered Rendering.
2.Physically based rendering.
TODO: when model is being imported into RG, better naming scheme is needed.