🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Multi resolution bloom.

Started by
2 comments, last by LazyWaves 5 days, 12 hours ago

I was thinking about how in unreal bloom is done by down sampling in multiple times, applying different Gaussian blurs and then combining the buffers. Is this to save processing time for a big blur radius or does it have to do with having custom blur kernel? If this is about customizing the blur then why is it more realistic then just blurring at full resolution.

Advertisement

The reason bloom is done in that way is so that the bloom filter kernel has the right shape and reacts to image features of any size. If you just blurred once at full resolution, the kernel would have a Gaussian shape:

The problem with this is that when the bloom is excited by bright areas in the image, it will only be excited by image features that are at least as large as the Gaussian kernel size. This means that very bright small light sources won't look right because they won't have a bloom halo (or it may be too dim).

The solution is to add up Gaussian kernels of different sizes:

Source: Next Generation Post Processing In Call of Duty Advanced Warfare (2014)

This results in a filter kernel that has a sharp spike:

From UE4 GDC 2016 talk

This sharp spike allows the bloom to be excited by image features of any size, from single pixel to the maximum Gaussian kernel size. This wouldn't be possible with a single Gaussian kernel.

The reason why it's implemented as a progressive downsampling and then upsampling again is so that the blur kernel is always just a few pixels in size, therefore reducing the number of texture samples and memory bandwidth. It also makes it efficient to sum up the different blur kernel sizes when upsampling. You could implement the same sharp kernel using a single convolution with a large filter at full resolution, but it would be much more expensive since the kernel would cover more pixels.

Thanks a lot for your help. I remember seeing explanations of this but I couldn't remember what the papers were. Spend a hour trying the find HDR the Bungie way from forever ago.

Advertisement