I'm trying to implement a bloom effect on some lasers in a game, but I'm stumbling into some problems. First I applied the bloom to everything, like so:
protected override void Draw(GameTime gameTime)
{
batch.Begin(SpriteSortMode.Texture, BlendState.Additive);
bloom.BeginDraw();
stateManager.Draw(gameTime, batch);
batch.End();
base.Draw(gameTime);
}
That worked fine, but ofcourse, it looked horrible, so to seperate it all into two draw calls, one with bloom, and one without, I tried this:
protected override void Draw(GameTime gameTime)
{
bloom.BeginDraw();
GraphicsDevice.Clear(Color.Black);
batch.Begin(SpriteSortMode.Texture, BlendState.Additive);
stateManager.DrawBloomed(gameTime, batch);
batch.End();
base.Draw(gameTime);
batch.Begin(SpriteSortMode.Deferred, BlendState.Additive);
stateManager.Draw(gameTime, batch);
batch.End();
base.Draw(gameTime);
}
However, now everything's totally black. Could anyone point me in the right direction as to why this is happening and how I 'really' should approach this issue?