RenderTarget2D不保留透明背景

时间:2013-05-03 02:02:58

标签: c# xna-4.0

我正在开展一个项目。所有2D都使用spriteBatch。

我有爆炸之类的东西使用不适用于图像其余部分的自定义效果。所以这是我到目前为止的流程:

1)清除背景

2)绘制所有爆炸精灵

3)捕获该图像并将我的效果实现到单独的RenderTarget2D

4)绘制背景

5)绘制在步骤3中创建的RenderTarget2D

6)绘制其他所有内容

我遇到的问题是创建的RenderTarget2D在未绘制的区域中不透明。结果,未显示步骤4中绘制的背景。

我在调用SetRenderTarget(null)之后尝试了GraphicsDevice.Clear(Color.Transparent)。但是,我仍然得到那个紫色背景。

有什么想法吗?

我会发布代码,但是你们所有人都需要解析它们太多了。

1 个答案:

答案 0 :(得分:0)

如果你遵循这个流程它应该工作;

    GraphicsDevice.SetRenderTarget(renderTarget);
    GraphicsDevice.Clear(Color.Transparent);
    // Draw stuff to texture
    GraphicsDevice.SetRenderTarget(null);

    GraphicsDevice.Clear(BackgroundColor);  // Important to clear here
    // Draw background
    // Draw texture
    // Draw stuff