У меня есть некоторый код, который выглядит следующим образом:
GraphicsDevice.SetRenderTarget(0, myRenderTarget);
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
myEffect.Begin();
myEffectCurrentTechnique.Passes[0].Begin();
spriteBatch.Draw(aRegularTexture, Vector2.Zero, Color.White);
spriteBatch.End();
myEffect.CurrentTechnique.Passes[0].End();
myEffect.End();
GraphicsDevice.SetRenderTarget(0, backBuffer);
Texture2D bloomTexture = myRenderTarget.GetTexture();
...
GraphicsDevice.SetRenderTarget(0, myRenderTarget);
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
spriteBatch.Draw(aRegularTexture, Vector2.Zero, Color.White);
spriteBatch.End();
GraphicsDevice.SetRenderTarget(0, backBuffer);
aRegularTexture = myRenderTarget.GetTexture();
//SHOULD be doing nothing, since I'm just rendering said texture into a render target and pulling it back out
(примечание: это урезано до минимального кода воспроизведения, не совсем то, что я на самом деле использую)
Если я рендерингaRegularTexture на экран перед вторым блоком кода, он выглядит нормально и нетронутым.Но если я отрисовываю его после второго блока кода, он устанавливается на содержимое aModifiedTexture, хотя я никогда не делаю ничего, что могло бы привести к этому.Зачем?(С использованием XNA 3.1)