Home Forums GAMES104 现代游戏引擎:从入门到实践 关于小引擎中添加渲染pass的问题 Reply To: 关于小引擎中添加渲染pass的问题

#11507 Score: 0
Huan Di
Participant

我的作业新增的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, 5 months ago by Huan Di.