2014-10-11 55 views
1

我想要做的是使用spritesheet创建混合地形,将其保存为纹理,然后将其传递到着色器以获取其他效果。但是,我有渲染目标的一些问题:使用渲染目标时摆脱黑色背景

RenderTarget2D someNewTexture = new RenderTarget2D(GraphicsDevice, 256, 256); 

GraphicsDevice.SetRenderTarget(someNewTexture); 
GraphicsDevice.Clear(Color.Black); 

spriteBatch.Begin(); 
{ 
    // draw some stuff 
} 
spriteBatch.End(); 

GraphicsDevice.SetRenderTarget(null); 

显然,这创造了一个黑色的背景与我在它上面的纹理。但是,当我真的将该纹理绘制到我的主场景上时,我不想要背景,只需要纹理(如果我不使用清晰,则使用默认的紫色)。我该如何解决?

回答

2

使用透明清澈的颜色:

GraphicsDevice.Clear(Color.TransparentBlack); 

如果您正确处理混合,将导致透明像素不被绘制。

+0

呃,就这么简单。我以为我不得不摆弄BlendMode。 – 2014-10-11 12:44:46

+1

它显然已经正确设置 – thumbmunkeys 2014-10-11 12:46:00