使用 vkCmdBeginRenderPass 清除所有图层(Vulkan,分层渲染)
Clear all Layers with vkCmdBeginRenderPass (Vulkan, Layered rendering)
我有一个带有一种颜色附件的帧缓冲区,它是一个具有 6 层的立方体贴图。我尝试将分层渲染与几何着色器一起使用。将一个简单的三角形渲染到所有层都可行。但我不确定如何使用 vkCmdBeginRenderPass
清除所有图层。
vkCmdBeginRenderPass
支持 pClearValues
和 clearValueCount
但我不能指定层数。所以只清除了第一层。将 clearValueCount 设置为 6 并给出 6 个清除值也无济于事。
我看到vkCmdClearAttachments
似乎允许指定图层。
vkCmdClearAttachments
是唯一的方法吗,还是我错过了什么?尽管渲染似乎渲染到所有层,但 vkCmdBeginRenderPass
只清除第一层可能是有原因的吗?
clearValueCount 指的是要清除的附件数量(关于它们的 clearOp),而不是帧缓冲区的层数。
帧缓冲区的渲染过程开始时要清除的层数(如果 clearOp 设置为清除)是通过其 imageView 子资源的 layerCount 指定的。
我有一个带有一种颜色附件的帧缓冲区,它是一个具有 6 层的立方体贴图。我尝试将分层渲染与几何着色器一起使用。将一个简单的三角形渲染到所有层都可行。但我不确定如何使用 vkCmdBeginRenderPass
清除所有图层。
vkCmdBeginRenderPass
支持 pClearValues
和 clearValueCount
但我不能指定层数。所以只清除了第一层。将 clearValueCount 设置为 6 并给出 6 个清除值也无济于事。
我看到vkCmdClearAttachments
似乎允许指定图层。
vkCmdClearAttachments
是唯一的方法吗,还是我错过了什么?尽管渲染似乎渲染到所有层,但 vkCmdBeginRenderPass
只清除第一层可能是有原因的吗?
clearValueCount 指的是要清除的附件数量(关于它们的 clearOp),而不是帧缓冲区的层数。
帧缓冲区的渲染过程开始时要清除的层数(如果 clearOp 设置为清除)是通过其 imageView 子资源的 layerCount 指定的。