Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have searched the net for resources related to rendering a bloom effect using GLSL, but haven't found anything. Although the tutorial at Philip Rideout's website is a good one, it performs very poorly on my Nvidia GPU.

Can anyone guide me as to how should I approach this problem and build a fairly efficient implementation of a bloom effect?

share|improve this question
Ardor3d, an opensource java 3d engine, has a bloom shader implemented. Since it is opensource you can easily check that out ( But basically, its just copying the framebuffer, downscale,blur,additive blending.. – Pjotterke Oct 18 '11 at 14:39
What kind of GPU do you have? – Josh Petrie Oct 18 '11 at 15:03
Very important to let us know what GPU / video card you have. +! @JoshPetrie – Patrick Hughes Oct 18 '11 at 15:29
I have a Nvidia GeForce GT 230M graphic card on my laptop – snape Oct 18 '11 at 15:35
@snape: How large a gaussian kernel are you using, and what is the resolution of your largest blurred FBO? The easiest way to improve performance is to use a smaller kernel and a smaller FBO. (In my stuff, I do my blurring inside a 512x512 resolution FBO, no matter the display resolution) – Trevor Powell Oct 18 '11 at 20:52

As Trevor mentioned in his comment, your only option might be to reduce the size of your kernel or to perform further downsampling .

But did you thoroughly read the tutorial you've linked to? There's a tip about exploiting hardware filtering, that the author calls the "sneaky" version. It's probably the best trick you can use to optimize you bloom effect without affecting its quality.

share|improve this answer
Yes, I read the tutorial thoroughly. I finally improved it's performance by using offline rendering and also I hadn't enabled hardware support for graphics application earlier. – snape Apr 6 '12 at 16:14

I solved a very similar problem (blurring, but the bloom filter is bluring) with two passes.

In the first pass i blur in the X direction and in the second pass i blur in the Y direction.

I dunno from where i do have this trick but it lowers the time complexity from n² to 2n.

This works only for kernels which don't have any direction (so you can'T optimize a bokeh kernel this way).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.