我的作业新增的pass就是FXAA,现在是这么解决的:
1. PAntiAliasingPass::setupDescriptorSetLayout 新增一个新的sampler
2. PAntiAliasingPass::updateAfterFramebufferRecreate把frame buffer的图片给它
3. 为了支持上一条,PMainCameraPass::setupAttachments需要去掉VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,加上VK_IMAGE_USAGE_SAMPLED_BIT,以避免一系列vulkan validation error
关于3:根据文档来看去掉VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT不影响性能,但可能影响debug。而加上VK_IMAGE_USAGE_SAMPLED_BIT有什么影响还没仔细调查,猜测可能对性能有影响。
比较理想的解决方法可能是增加1个(或2个?odd even)buffer专门来存这个sampler的图片,那需要改动更多的代码,就先没在作业中实现了。而且这样每个pass又多了新的buffer,对性能可能也是有影响的。
P.S.对Vulkan完全陌生,c++也是现学的,仅供参考。
-
This reply was modified 2 years, 6 months ago by Huan Di.