如何在表面的一部分渲染vulkan帧缓冲区(VkImage)?当我在框架缓冲区中绘制时,vulkan用vkColorClear清除所有表面。
该表面有800x600,但我希望vulkan渲染300x200使用一个偏移量100x100,例如。
发布于 2022-02-17 20:03:46
在开始呈现传递时,提供VkRenderPassBeginInfo对象。在此对象中是renderArea矩形,它定义呈现传递将影响的每个附件图像的区域。此区域之外的任何附件像素都不受呈现传递操作的影响,包括清晰的load op和vkCmdClearAttachments。
请注意,renderArea受呈现区域粒度的限制,这是从vkGetRenderAreaGranularity查询的。
发布于 2022-02-17 20:03:06
您可以通过将VkGraphicsPipelineCreateInfo结构中的视图矩形和视图端口设置为要呈现的分区来子集窗口。您可以使用vkCmdSetViewport()在绘图时动态配置视图端口。
对于VkCmdClearAttachments(),您可以通过pRects参数设置清除区域(它忽略viewport)。
https://stackoverflow.com/questions/71163888
复制相似问题