使用vkCmdBeginRenderPass清除所有图层(Vulkan,分层渲染)

时间:2017-10-25 15:02:30

标签: graphics vulkan

我有一个带有一个颜色附件的帧缓冲区,它是一个有6层的立方体贴图。我尝试使用几何着色器进行分层渲染。将简单三角形渲染到所有图层都可以。但我不确定如何使用vkCmdBeginRenderPass清除所有图层。

vkCmdBeginRenderPass支持pClearValuesclearValueCount,但我无法指定图层数。因此只清除第一层。将clearValueCount设置为6并给出6个清除值也没有帮助。

我看到vkCmdClearAttachments似乎允许指定图层。

vkCmdClearAttachments是唯一的方式,还是我错过了什么?有没有理由vkCmdBeginRenderPass只清除第一层,尽管渲染似乎呈现给所有图层?

1 个答案:

答案 0 :(得分:1)

clearValueCount指的是要清除的附件数量(关于它们的clearOp),而不是帧缓冲区的层数。

帧缓冲区在renderpass开始时清除的层数(如果clearOp设置为clear)是通过它的imageView的子资源的layerCount指定的。