Bloom in 3d?

Hi folks.

I spent a huge amount of time a couple of years ago trying to get a 2d bloom effect working for a particular project, I couldn’t achieve what I needed, it was too expensive.

Having moved to the 3d world things are a bit different and I’m hoping I’ll be able to achieve what I’m after.

How do I apply a glow or bloom to a 3d model? I’m guessing this will be done with textures? I’m stuck with Blender and fbx files, these are the only type I can import. While blender has loads of settings not all of them read properly in Monogame, or at least the pipeline converter.

The other part to this, for a glow effect there really needs to be a medium for the light to bounce off, do I need a fog around an item?

Anyone have a quick example? Or a tutorial link?

Many thanks.

Bloom is just a post effect. Render things that should be bloomed to a render target, blur it, then additively blend it on top of your game scene. It’s exactly how it works in 2D.

Then you’re getting into volumetric lighting. That’s on a whole other level. If you Google for it you’ll find a bunch of resources. There’s a lot of ways to do it, generally there’s a trade-off between quality and performance impact. You’ll need to figure out where you want to be, or offer different options. But volumetric lighting isn’t easy :slight_smile:

That sort of 2d bloom (which also works in 3d) is a mere approximation, and therefore may not actually reflect (no pun intended) the exact environmental conditions in a scientifically accurate way. Normally, that irks me because I want everything to be perfect and make sense, but then I have to remind myself that, at some point, everything we’re rendering is merely an approximation, and that’s okay.

Depends what kind of bloom you mean, portion of bloom is imperfection of lens, be it organic or mechanical, that kind is very well simulated by postporcessing. If you mean effect that is caused by atmospherical scattering then you are looking for volumetric lights. Good starting point is lord of the fallens and killzone presentations, but world of warning: You are up for somehowishly difficulty and performance costly road.

I based my approach on:

And then did few changes and when for went culling using dynamic light geometry rendered into offscreen RTs and changing phasing function. There is also interesting approach used in new Fallouts, which is going for treating volumetric rays as geometry and using epipolar sampling. You should be able to find some decent presentation on this topic as well, however I somehow never liked results all that much and every time I seen them applied it was in engine tied to some heavy rendering artifacts and glitches.

Many, many moons ago, I created a blog post for XNA regarding Crepuscular (God) rays. I am sure I did a post on general post processing too, ill try and find that as it had a bloom example in it too.

In the mean time, here is my old God Ray post, hope you find it of some use.

1 Like

Ohh, found it, I did a talk on post processing for the XNA-UK User Group, put my presentation and source code up too :slight_smile:

Hope it helps :slight_smile:

1 Like