XNA Alpha Blending de faire partie d'une texture transparente

Ce que j'essaie de faire est d'utiliser le mélange alpha dans XNA pour faire partie d'une texture transparente. Ainsi, par exemple, je effacer l'écran pour un peu de couleur, permet de dire que le Bleu. Je dessine ensuite une texture qui est rouge. Enfin je dessine une texture qui est juste un dégradé radial de complètement transparente dans le centre de complètement noir au bord. Ce que je veux, c'est le Rouge de la texture établi plus tôt pour être transparent dans les mêmes endroits que le gradient radial de la texture. Donc, vous devriez être en mesure de voir le bleu de l'arrière du terrain par le biais de la texture red.

J'ai pensé que ce serait le travail.

GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin(SpriteBlendMode.None);
spriteBatch.Draw(bg, new Vector2(0, 0), Color.White);
spriteBatch.End();

spriteBatch.Begin(SpriteBlendMode.None);

GraphicsDevice.RenderState.AlphaBlendEnable = true;
GraphicsDevice.RenderState.AlphaSourceBlend = Blend.One;
GraphicsDevice.RenderState.AlphaDestinationBlend = Blend.Zero;
GraphicsDevice.RenderState.SourceBlend = Blend.Zero;
GraphicsDevice.RenderState.DestinationBlend = Blend.One;
GraphicsDevice.RenderState.BlendFunction = BlendFunction.Add;

spriteBatch.Draw(circle, new Vector2(0, 0), Color.White);
spriteBatch.End();

GraphicsDevice.RenderState.AlphaBlendEnable = false;

Mais il semble juste d'ignorer tous mes RenderState paramètres. J'ai aussi essayé le réglage de la SpriteBlendMode à AlphaBlend. Il mélange les textures, mais ce n'est pas l'effet que je veux.

Toute aide serait appréciée.

OriginalL'auteur DangerMouse | 2010-04-17