게임의 일부 레이저에서 블룸 효과를 구현하려고하지만 일부 문제가 발생했습니다. 먼저 나는 모든에 꽃을 적용과 같이 : 잘 작동하지만, 당연히, 그것은 끔찍한 모습XNA MonoGame, 블룸을 사용한 트러블 렌더링
protected override void Draw(GameTime gameTime)
{
batch.Begin(SpriteSortMode.Texture, BlendState.Additive);
bloom.BeginDraw();
stateManager.Draw(gameTime, batch);
batch.End();
base.Draw(gameTime);
}
, 그래서 두 개의 드로우 호출, 꽃 하나, 그리고없이 하나에 모든 것을 분리해서, 나는 시도 이 :
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);
}
그러나 이제 모든 것이 완전히 검은 색입니다. 왜 이런 일이 일어나는 지와 내가이 문제에 정말로 어떻게 접근해야하는지에 관해 올바른 방향으로 나를 지적 할 수 있습니까?
먼저 코드에 GraphicsDevice.Clear()를 호출 할 필요가 없습니다. 둘째, 내가 게시 한 모든 코드는 xna.Framework.Game을 확장하는 XNA의 기본 기본 클래스에서 가져온 것입니다. stateManager.Draw()는 현재 상태를보고 거기에서 Draw 메서드를 호출하고 매개 변수를 전달합니다. 거기에서 그냥 배치입니다 .Draw (Texture2D, ...) [Tuts + XNA 튜토리얼] [Tuts + XNA 튜토리얼] [1] 답변을 주셔서 감사합니다! – Istarnion
그리고 블렌드 모드에 대해, 당신은 절대적으로 옳습니다. 레이저는 다른 스프라이트의 경우 불투명 또는 AlphaBlend 중 하나의 AlphaBlend입니다. 나는 필사적으로 노력하고 있었고 모든 조합을 시도했다 ... – Istarnion
위 링크와 실수를 저질렀다. 여기있다 : http://gamedevelopment.tutsplus.com/tutorials/make-a-neon-vector-shooter-in-xna- 블룸 & 블랙홀 - gamedev-9877 – Istarnion