在绘制命令之间的每个帧中设置任意数量的剪刀

时间:2019-11-19 17:38:55

标签: c++ vulkan

我需要知道是否可以在多个绘制命令之间更改剪刀矩形。

VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor

在上面的伪代码中,我将剪刀矩形设置为每组绘图命令之间在屏幕上的不同坐标。每次剪刀的大小都会不同。

当前,似乎只有对VkCmdSetScissor的最后一次调用才最终被应用。

我的应用程序需要在屏幕上设置数十种不同的小剪刀才能绘制GUI元素。目前尚无办法知道每帧需要多少个剪刀,也没有想像的方法可以知道在管道创建过程中需要多少个剪刀。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,上面的psudocode正是应该这样做。当然,您必须在管道上设置<span id="time"></span>

我的问题是我正在使用单个VK_DYNAMIC_STATE_SCISSOR命令来绘制整个GUI。将各个GUI元素拆分为VkCmdDraw并将VkCmdDrawIndirectCommand放在每个适当的VkCmdSetScissor之间之后,一切开始正常工作。