我正在尝试对游戏中的某些激光实现绽放效果,但我遇到了一些问题。首先,我将绽放应用于所有内容,如下所示:
protected override void Draw(GameTime gameTime)
{
batch.Begin(SpriteSortMode.Texture, BlendState.Additive);
bloom.BeginDraw();
stateManager.Draw(gameTime, batch);
batch.End();
base.Draw(gameTime);
}
这工作得很好,但是当然,它看起来很糟糕,所以把它分成两个draw call,一个有bloom,一个没有,我试过这个:
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);
}
然而,现在一切都完全变黑了。谁能指出我为什么会发生这种情况以及我“真的”应该如何解决这个问题?