如何解决将两种颜色附件混合到最终图像中
如果我有多个颜色附件,据说我可以将它们混合在一起以呈现最终图像。
我了解如何配置固定混合功能:
VkPipelineColorBlendAttachmentState
VkPipelineColorBlendStateCreateInfo
问题是,如果我说 VK_BLEND_FACTOR_ZERO
和 VK_BLEND_FACTOR_ONE
,哪个颜色附件是源,哪个目的地?如果我有 3 个附件(2 个颜色 + 1 个深度模板),我可以在哪里指定它们:
{ colorAttachment1,colorAttachment2,depthImage }
比如说,我想将 colorAttachment2
与 colorAttachment1
混合,因为只有 colorAttachment1
是可呈现的,而另一个则不是,它只是一个“内部”图像。
解决方法
没有“混合颜色附件”这样的东西。附件中的当前值与为特定片段生成的片段颜色之间发生混合。
如果您有两个附加帧缓冲区的图像,并且您想在它们之间进行混合,您需要做的是渲染一个全屏四边形,这样您就可以从 FS 中的一个附件中读取并写入(使用混合)到另一个。您必须从其中一个附件中读取作为输入附件,因此您需要将此渲染命令放入新的子通道中。
如果您要写入第三张图像(这并不理想,因为您的图像比您需要的多),那么您可以只读取两张图像,在着色器中使用常规数学进行混合,然后写给第三个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。