2

我想要做的是使用 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);

显然,这会创建一个黑色背景,上面有我的纹理。但是,当我实际将该纹理绘制到我的主场景上时,我不想要背景,只想要纹理(如果我不使用 clear,我会得到默认的紫色)。我该如何解决?

4

1 回答 1

2

使用透明清晰的颜色:

GraphicsDevice.Clear(Color.TransparentBlack);

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

于 2014-10-11T12:42:39.813 回答