Shader goodness: Bloom!
In the last post I talked about lighting, this time it’s shaders and more specifically bloom. I must say I like the effect when it’s used subtly as a mood enhancement and dislike it in it’s quite common burn-your-eyes-out -form..
For the platformer game I’m planning to use the effect for a nice and quiet dreamlike feel, although I’m still not sure what kind of game it will be (except that it’s a 4-way scrolling platformer!).. And as I often do, I find myself getting carried away doing all sorts of graphical effects (lighting, shaders) when I don’t even have the basic game mechanics in place! Can’t help it though, I must have some eye candy going on to keep myself motivated in a project. *shrugs*
So I coded a quick & dirty shader support to the engine, and today I’ve been trying to get the bloom working. And now it does.
I’m still not done with it, needs some tweaking – and that’s somewhat impossible right now since I have no final assets for the game yet! Everything you see in those screens is temporary and/or random. For anyone interested, here’s some technical details on the subject.
I based the implementation on the GLSL bloom shaders from Funguloids, which in turn are modified from Ogre sample shaders. I’m still a beginner with the shader programming as I may have mentioned, so having anything to work from was invaluable. I tweaked the shaders to get the subtle look I was aiming for.
I’m using two small render textures (which are FBOs, no support for Pbuffers yet – and I think I’ll have to do those at some point, as my laptop doesn’t support FBOs), 128×128 in dimension and one bigger 512×512 RT. I render the scene normally to the bigger RT. The blurring is then done in two passes: first the scene RT gets rendered to 128×128 RT #1 using a horizontal blur shader (it also does some luminance stuff to have the bright parts more bright and dim parts more dim). Then RT #1 gets rendered to RT #2, this time with a vertical blur shader. Finally the RT #2 contents are blended additively over a normal 1:1 render of the scene. It needs quite a lot of tweaking, but I think it looks quite nice now.
In another news, my thesis is now almost complete! ^^
The Ubuntu Funguloids package is no longer available on GetDeb. The game looks really fun. Can you repost? Thanks
I’ve been looking everywhere for help on shaders programming and eventually bloom effects on my lwjgl / slick2d game. Can you post the source to this??
Unfortunately no; the project’s been dead for quite some time now and the code is not really in a state that I would want to publish..