在Vulkan API中创建单独的渲染过程

在Vulkan API中创建单独的渲染过程,vulkan,Vulkan,我们什么时候在vulkan中为同一场景创建单独的renderpass?若我们必须实现阴影贴图,难道我们不能创建2个子类和FBO,其中3个附件首先用于深度过程,其余2个用于正常场景渲染吗?我看到一些教程使用单独的renderpass进行阴影贴图,但我不明白为什么 不能从输入附件中任意采样。这意味着在片段着色器中,只能从与正在着色的片段对应的输入附件中获取采样值 如果要从其他位置采样,则不能将其用作同一渲染过程中的附件。因此,我们可以使用子过程的唯一情况是延迟着色?我们甚至不能将其用于后处理效果?只

我们什么时候在vulkan中为同一场景创建单独的renderpass?若我们必须实现阴影贴图,难道我们不能创建2个子类和FBO,其中3个附件首先用于深度过程,其余2个用于正常场景渲染吗?我看到一些教程使用单独的renderpass进行阴影贴图,但我不明白为什么

不能从输入附件中任意采样。这意味着在片段着色器中,只能从与正在着色的片段对应的输入附件中获取采样值


如果要从其他位置采样,则不能将其用作同一渲染过程中的附件。

因此,我们可以使用子过程的唯一情况是延迟着色?我们甚至不能将其用于后处理效果?只要后处理不从不同(片段)位置采样,您仍然可以使用子过程,但如果您需要从相邻(或任意)片段采样,则不可以,您不能使用子过程。但是除了延迟着色外,子过程还可以用于几个用例,例如,像OIT这样的多过程,读取深度以进行比较的过程,等等。