RenderTarget2D不保留透明背景

本文关键字:背景 透明 保留 RenderTarget2D | 更新日期: 2023-09-27 18:12:00

我正在做一个项目。所有2D使用spriteBatch。

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

清除背景

2)绘制所有的爆炸精灵

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

画我的背景

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

6)画其他的

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

我已经尝试过GraphicsDevice.Clear(Color.Transparent)在任何调用SetRenderTarget(null)之后。然而,我仍然得到紫色的背景。

任何想法?

我想把代码贴出来,但是有太多东西需要你们去解析

RenderTarget2D不保留透明背景

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

    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