New Vulkan Example: Indirect Drawing - Sascha Willems
Có thể bạn quan tâm
- Vulkan Posts Tutorials Examples CapsViewer glTF PBR
- About
- Posts
- Creations
- Archive
- Search
I have added another example to my open source C++ Vulkan examples. The new one is about indirect drawing (including multi draw if supported). Contrary to their non-direct counterparts, the indirect drawing commands in Vulkan take their draw calls from a buffer that is ideally stored in device local memory. So instead of running single draw commands that get their index base, index count and instancing numbers passed by the host upon getting called, the indirect commands are backed by a buffer that stores an arbitrary number of draw commands.
The example renders a huge number of plants with different geometries only using one single draw call. All plants geometries are stored in one buffer, and each indirect draw command uses different index offsets and also does instancing.

This technique is the based for several GPU-based functions that have traditionally been handled by the CPU. As the draw commands are stored in a buffer that the GPU has access too, it’s now possible to have a compute shader manipulate the draw commands that are issued so the GPU can take on tasks like culling or draw command generation in general.
vulkan vulkan-examples- ← Previous Post
- Next Post →
Từ khóa » Vulkan Indirect
-
Draw Indirect - Vulkan Guide
-
Vulkan/indirectdraw.cpp At Master - GitHub
-
VkCmdDrawIndirect(3) - Khronos Registry
-
Vkguide: Intro To Draw Indirect : R/vulkan - Reddit
-
Indirect Rendering In Vulkan | 3D Graphics Rendering Cookbook
-
New: Vulkan Device Generated Commands | NVIDIA Technical Blog
-
Vulkan Memory Barrier For Indirect Compute Shader Dispatch
-
Mesa's Radeon Vulkan Driver Lands Indirect Ray-Tracing Support
-
Jeff Vulkan - Head Of Indirect Procurement - LGC - LinkedIn
-
(Vulkan) GPU Rendering And Multi-Draw Indirect | Geeks3D NewZ
-
How To Use Fence For Indirect Draw… | Apple Developer Forums
-
Vulkan API Headers | Qt WebEngine 5.15.10