Xna 使用renderTarget更改图像的颜色

Xna 使用renderTarget更改图像的颜色,xna,monogame,rendertarget,Xna,Monogame,Rendertarget,我尝试在屏幕上用render target绘制图像。 我使用了以下代码: _renderTarget = new RenderTarget2D( this._graphicsDevice, this._graphicsDevice.PresentationParameters.BackBufferWidth, this._graphicsDevice.PresentationParameter

我尝试在屏幕上用render target绘制图像。 我使用了以下代码:

 _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);
但是,结果图像总是黑色的! 你能帮我改变一下这张图片的颜色吗。
谢谢。

从显示的代码中,
\u spriteBatch.Draw
仅将内容渲染到
\u renderTarget

接下来,需要将生成的
RenderTarget2D
渲染到屏幕上,以便可以看到它

您已经有了
\u graphicsDevice.SetRenderTarget(null)
。然后,您只需创建一个单独的
SpriteBatch.Draw
调用,并传入您的
\u renderTarget


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

请注意,您正在渲染该纹理(\u renderTarget),但该纹理实际上没有显示在屏幕上,因为它没有渲染到backbuffer。实际上,您是在一个纹理上绘制精灵,该纹理与backbuffer具有相同的属性。尝试将渲染目标设置为null,不要使用_rendertarget。你看到什么了吗?你到底想在这里做什么?渲染到屏幕还是渲染到纹理?如果要渲染到纹理,那么在纹理准备就绪后,要对其执行什么操作?如果你能回答这些问题,你可能会意识到你做错了什么。你解决问题了吗?有好几条评论,甚至有一个答案,而你什么也没说。。。