This is a Vulkan renderer.
- Render graph for auto barrier placement
- Fully Bindless/Indirect rendering
- PBR
- Image Based Lighting
- Cascaded Shadow Maps
- glTF loading with KTX2 compressed texture support
- Skeletal animations with GPU compute skinning, animation blending coming soon (theoretically)
- HDR
- Tonemapping
- MoltenVK compatible, ie using every Vulkan 1.3 extension possible while requiring 1.2 (MoltenVK makes me :( since indirect rendering still loops draw commands on the CPU in their implementation)
cmake --preset Release
cmake --build build/Release
./bin/Release/vkrender2- I didn't make an effort to really make this user friendly yet (either going to with this renderer, or make a new one (VkRender3??))
- WASD to move around
- R to ascend, F to descend
- Esc to enter/exit movement mode
- GLM
- GLFW
- ImGui
- Vulkan
- Volk
- Vulkan Memory Allocator
- Glslang
- Tracy
- KTX
- BS Thread Pool
- VkBootstrap
- stb_image
- fastgltf
- MikkTSpace
- Culling
- Render graph
- Meshlets (with or without actual mesh shaders)
- Bloom
- Anti-aliasing
- Global illumination (somehow idk we'll get there)
- Point/spot lights
- https://developer.nvidia.com/blog/vulkan-dos-donts/
- https://gpuopen-librariesandsdks.github.io/VulkanMemoryAllocator/html/usage_patterns.html
- https://tellusim.com/mesh-shader-emulation/
- https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples#upload-data-from-the-cpu-to-a-vertex-buffer
- extra pbr: http://www.codinglabs.net/article_physically_based_rendering.aspx
- csm example: https://github.com/walbourn/directx-sdk-samples/blob/main/CascadedShadowMaps11/RenderCascadeScene.hlsl

