As is often the case, the actual problem turned out to be pretty silly; one of my offscreen buffers was set to GL_NEAREST instead of GL_LINEAR during an important copy. Someone remind me again why I enjoy programming? :)
This still isn’t ready to go live yet; there are too many computers out there which can’t handle OpenGL Shader Model 2.0, so I don’t want to force this effect on everyone (Also, it’s still a good deal slower than I’d like). So I need to write detection code and hook it up into the preferences system and everything. But at least it’s in the pipeline.
But not this week; I start on my first experimental “Game in a Week” tomorrow, so all my spare time is going to go into that, rather than into improving the general game engine. I’ll post further details on the “Game in a Week” project tomorrow. Hold on tight, it’s going to be a bumpy ride. ;)