Indirect rendering in Vulkan
Indirect rendering is the process of issuing drawing commands to the graphics API, where most of the parameters to those commands come from GPU buffers. It is a part of many modern GPU usage paradigms and exists in all contemporary rendering APIs in some form. For example, we can do indirect rendering with Vulkan using the vkCmdDraw*Indirect*()
family of functions. Instead of dealing with low-level Vulkan here, let’s get more technical and learn how to combine indirect rendering in Vulkan with the mesh data format we introduced in the Organizing mesh data storage recipe.
Getting ready
In the earlier recipes, we covered building a mesh preprocessing pipeline and converting 3D meshes from transmission formats such as .gltf2
into our run-time mesh data format. To wrap up this chapter, let’s demonstrate how to render this data. To delve into something new, let’s explore how to achieve this using the indirect rendering technique...