我需要知道是否可以在多个绘制命令之间更改剪刀矩形。
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
在上面的伪代码中,我将在每个绘图命令集之间将剪刀矩形设置为屏幕上的不同坐标。每次剪刀的大小都会不同。
当前,似乎只有对
VkCmdSetScissor
的最后一次调用才最终被应用。我的应用程序需要在屏幕上设置数十种不同的小剪刀才能绘制GUI元素。当前没有办法知道每帧需要多少个剪刀,也没有想像的方法可以知道在管道创建期间需要多少个剪刀。
最佳答案
是的,这是可能的,上面的伪代码正是应该这样做。当然,您必须在管道上设置VK_DYNAMIC_STATE_SCISSOR
。
我的问题是我使用了一个VkCmdDraw
命令来绘制整个GUI。将各个GUI元素拆分为VkCmdDrawIndirectCommand
并将VkCmdSetScissor
放置在每个适当的VkCmdDrawIndirect
之间之后,一切开始正常工作。
关于c++ - 在绘制命令之间每帧设置任意数量的剪刀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58939887/