I am supposed to use bilateral filter to denoise my image rendered with Vulkan. I wonder how I should implement the method. Should I add the rendered image to another frag shader as a texture and denoise the image there before drawing it on the screen? or are there simpler methods? Should I do it through CPU after rendering instead of GPU?
Bilateral filter can be implemented as a fragment shader, once you have the full rendered image.
The first option should be much faster than downloading the rendered frame to main memory and performing the calculations in CPU.