I’m working on a multi platform, arcade, freeware OpenGL game. We want our game to run on old computers too. That’s the reason I decided not to use shaders and extensions. I’d like to add a HDR-like glow effect to our 2D-engine. I tried those two approaches:
Render everything. Copy back-buffer to texture (using glCopyTexSubImage2D). Add said texture multiple times to the screen.
Render everything at 25% resolution. Copy back-buffer to texture (using glCopyTexSubImage2D). Re-render everything at screen resolution. Add the texture multiple times to the screen.
Approach 1 won’t run fast enough on fill-rate-limited integrated cards (like Intel GMA 965, …) at resolutions 1024x768 and upwards.
Approach 2 doesn’t look as good and our engine has to render everything twice.
Is there a faster way that will work on old cards? The computers I tested on (some Notebooks and old computers) spent most of their time in the glCopyTexSubImage2D.
On a related note:
I wanted to bias/scale the texture to change the appearance of the glow. glPixelTransfer is non-accelerated on most HW. Is there another way to increase the contrast of the texture? Scaling *3 and biasing -2 gave nice results but is slow as heck.
I draw the texture multiple times to blur it. Is there a better/faster way to blur without using shaders?
Thanks for any tipps.