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?

Ardor3d, an opensource java 3d engine, has a bloom shader implemented. Since it is opensource you can easily check that out (www.ardor3d.com). But basically, its just copying the framebuffer, downscale,blur,additive blending..
–
PjotterkeOct 18 '11 at 14:39

@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 PowellOct 18 '11 at 20:52

2 Answers
2

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.

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.
–
snapeApr 6 '12 at 16:14