Fastest way to blur a texture?

I am rendering dynamic shadows by rendering the object to an FBO and creating a texture which gets projected onto nearby geometry. The engine is limited to re-drawing one shadow each frame, so the technique is fast and looks good.

I figure I can use a pixel shader to blur the texture when it is drawn, but I was wondering what the fastest method of blurring the texture would be, without using shaders? The shadow only gets updated when the object moves, so the blur will only be done once.

I’m thinking I should get the texture pixels, blur them myself, then feed them back to OpenGL. Any other ideas?

Try the last sample here, “High Dynamic Range Rendering”, there is a blur :

You would have to render this blur to texture.

You could try rendering the texture multiple times, shifting the texcoords slightly each time and blending them.

You could also mod the projection matrix slightly as you render the texture each time.

NOTE: These suggestions assume you are not shadowmapping, but just projecting the textures, i.e. not doing depth compares.

That would probably look pretty good, especially is I used 4 texture units, and made the darkness of the shadow 25% the desired value.