使用renderTarget更改图像的颜色

时间:2014-03-12 17:04:55

标签: xna monogame rendertarget

我尝试使用渲染目标在屏幕上绘制图像。 我用了这段代码:

 _renderTarget = new RenderTarget2D(
                 this._graphicsDevice,
                 this._graphicsDevice.PresentationParameters.BackBufferWidth,
                 this._graphicsDevice.PresentationParameters.BackBufferHeight,
                 false,
                 this._graphicsDevice.PresentationParameters.BackBufferFormat,
                 DepthFormat.None, 0, RenderTargetUsage.PreserveContents);

  _graphicsDevice.SetRenderTarget(_renderTarget);
                _spriteBatch.Begin();

   _spriteBatch.Draw(texture, drawPoint, null, Color.Red, 0.0f
                , new Vector2(texture.Width / 2, texture.Height / 2), 0.5f, SpriteEffects.None, 0                         .0f);
                _spriteBatch.End();
      _graphicsDevice.SetRenderTarget(null);

但是,结果图像总是黑色的! 你能帮我改变一下这张图片的颜色吗? 感谢。

1 个答案:

答案 0 :(得分:0)

根据显示的代码,_spriteBatch.Draw仅将内容呈现为_renderTarget

接下来,您需要将生成的RenderTarget2D呈现给您的屏幕,以便您可以看到它。

您已经有_graphicsDevice.SetRenderTarget(null)了。然后,您只需要在SpriteBatch.Draw中进行单独的_renderTarget来电。

您可以这样做,因为RenderTarget2D扩展了Texture2D。