我正在开展一个项目。所有2D都使用spriteBatch。
我有爆炸之类的东西使用不适用于图像其余部分的自定义效果。所以这是我到目前为止的流程:
1)清除背景
2)绘制所有爆炸精灵
3)捕获该图像并将我的效果实现到单独的RenderTarget2D
中4)绘制背景
5)绘制在步骤3中创建的RenderTarget2D
6)绘制其他所有内容
我遇到的问题是创建的RenderTarget2D在未绘制的区域中不透明。结果,未显示步骤4中绘制的背景。
我在调用SetRenderTarget(null)之后尝试了GraphicsDevice.Clear(Color.Transparent)。但是,我仍然得到那个紫色背景。
有什么想法吗?
我会发布代码,但是你们所有人都需要解析它们太多了。
答案 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