-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Renderpasses are core fundamentals for Vulkan or any computer graphics in general. One of the things that I am thinking about is how are multiple renderpasses executed.
I have seen fair examples for executing multiple renderpasses. They are relatively straight forward.
What I am wanting to look into more are other parameters involved extensively when doing render-passes, including flag and attachment configurations.
RenderPass Code Example (pseudo-code)
This code example is roughly how the renderpass would be executed, if we were to have multiple renderpass that focus in specific rendering operations that are expensive such as lighting, shadows, and other operations.
// create a final main renderpass
vk::renderpass geometry_pass = /*...*/;
vk::renderpass lighing_pass = /*...*/;
vk::renderpass shadow_pass = /*...*/;
// Executing these renderpass
// apply the geometry surface operations
geometry_pass.bind(...);
// apply lighting to normals for that specific surface
lighing_pass.bind(...);
// apply shadows using lighting to apply that onto the specific surface
shadow_pass.bind(...);
/* draw calls here afterwards to apply the renderpass attachment information */Subpasses
Considering renderpass can have other sub-operations that are sub-passes operated under a single renderpass. These are something I need to consider in how we can specify multiple subpasses.
API Design
TBD