Minimal C++ algorithmic art renderer using Vulkan. Made for personal art projects.
This project is a next iteration of my previous generative art engine..
What I learned from developing it:
- Managing many git submodules is hell.
- Vulkan-hpp and VMA-hpp aren't as useful as I thought.
- I actually would like swapchain resizing.
- I didn't experience much extra usefulness from the layer above Vulkan.
- Presenter framework was nice, but unnecessary. Splitting into modules is nice though.
Firstly, install the required system dependencies:
sudo apt-get install -y libspdlog-dev libglfw3-dev glslang-tools libglm-dev
Secondly, install the Vulkan SDK and set the path environment variables:
export VULKAN_SDK=/path/to/vulkan/sdk
# Required for Mac/MoltenVK
export VK_ICD_FILENAMES=/path/to/vulkan/sdk/etc/vulkan/icd.d
Then build BURN:
git clone https://github.com/angelocarly/BURN.git
git submodule update --init --recursive
cd BURN && mkdir build && cd build
cmake ..
make
- spdlog (unused) - Fast header only logging library.
- glfw (unused) - Cross platform window and input library.
- glm (unused) - OpenGL Math Library, wonderful to use imo.
- Vulkan SDK (unused) - Low level graphics API.
- VulkanMemoryAllocator (unused) - Easy to integrate Vulkan memory allocator.
- Dear Imgui (unused) - Lightweight, feature full gui library.
- stbi (unused) - PNG library
- ImGuiFileDialog (unused) - File dialog written for Dear Imgui