A Vulkan framework for computer visualistics simplifying building applications
Git LFS is used for bigger resource files like meshes and textures. So you need to install Git LFS
and use git lfs install
after cloning.
More information about Git LFS here.
Git submodules are used for libraries. To download the submodules either clone using
git clone --recurse-submodules
or after git clone
use git submodule init
and
git submodule update
.
Detailed build process:
Most dependencies are used via submodules but for example Vulkan needs to be installed correctly depending on your platform. So please setup your environment properly.
Name of dependency | Used as submodule |
---|---|
Vulkan | ❌ |
Vulkan-Headers | ✅ |
Vulkan-Hpp | ✅ |
GLFW | ✅ |
SPIRV-CROSS | ✅ |
VulkanMemoryAllocator-Hpp | ✅ |
The following modules are provided in this repository and they build automatically together with the framework if used. You can configure/adjust the build using CMake if necessary.
- Algorithm
- Asset-Loader
- Camera
- Effects
- Geometry
- GUI
- Material
- Meshlet
- Scene
- Shader-Compiler
- Tone-Mapping
- Upscaling
The following projects are provided in this repository and can be build with their own CMake targets:
- bindless_textures
- fire_works
- first_mesh
- first_scene
- first_triangle
- head_demo
- indirect_dispatch
- indirect_draw
- mesh_shader
- mpm
- particle_simulation
- path_tracer
- ray_tracer
- rt_ambient_occlusion
- sph
- voxelization
See this guide to setup your IDE for most forward development.
A pre-built documentation can be found here:
https://userpages.uni-koblenz.de/~vkcv/doc/
But it is recommended to build the documentation with Doxygen locally to get the most recent changes. There is also an optional CMake target to build the documentation via Doxygen.