c++ - 在绘制命令之间每帧设置任意数量的剪刀
问题描述
我需要知道是否可以在多个绘图命令之间更改剪刀矩形。
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
VkCmdDraw..
VkCmdDraw..
VkCmdSetScissor
在上面的伪代码中,我会将剪刀矩形设置为每组绘图命令之间屏幕上的不同坐标。剪刀每次都会有不同的尺寸。
目前,似乎只有最后一次调用VkCmdSetScissor
是最终被应用的调用。
我的应用程序需要在屏幕上设置几十个不同的小剪刀来绘制 GUI 元素。目前没有办法知道每帧需要多少剪刀,也没有任何可以想象的方法知道在管道创建过程中需要多少剪刀。
解决方案
是的,这是可能的,上面的伪代码正是应该这样做的。当然,你必须设置VK_DYNAMIC_STATE_SCISSOR
你的管道。
我的问题是我使用单个VkCmdDraw
命令来绘制整个 GUI。在将各个 GUI 元素拆分为每个适当的元素并在每个适当的元素之间VkCmdDrawIndirectCommand
放置一个之后,一切都开始正常工作。VkCmdSetScissor
VkCmdDrawIndirect
推荐阅读
- git - 如何删除 git 文件中显示的 ^M 字符
- jwt - 我应该在哪里刷新 SvelteKit 中的 JWT
- ios - 根据布局方向翻转 SwiftUI Shape
- laravel - Laravel Valet 站点仅适用于 www
- javascript - 如何发送包含对象数组的嵌套对象,包括FormData中的文件?
- java - 未调用 NotificationListenerService 中的 onListenerConnected
- python - 使用 NLTK 聊天反射运行命令
- javascript - 使用 AVL 树进行索引
- php - 除了 0=no 1=yes 之外,如何设置 tinyint 的样式/css/指定结果的外观?
- apache-spark - 输入大小在 Spark UI 中显示不同