Xna 使用renderTarget更改图像的颜色
我尝试在屏幕上用render target绘制图像。 我使用了以下代码:Xna 使用renderTarget更改图像的颜色,xna,monogame,rendertarget,Xna,Monogame,Rendertarget,我尝试在屏幕上用render target绘制图像。 我使用了以下代码: _renderTarget = new RenderTarget2D( this._graphicsDevice, this._graphicsDevice.PresentationParameters.BackBufferWidth, this._graphicsDevice.PresentationParameter
_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。你看到什么了吗?你到底想在这里做什么?渲染到屏幕还是渲染到纹理?如果要渲染到纹理,那么在纹理准备就绪后,要对其执行什么操作?如果你能回答这些问题,你可能会意识到你做错了什么。你解决问题了吗?有好几条评论,甚至有一个答案,而你什么也没说。。。