【问题标题】:Getting rid of black background when using a render target使用渲染目标时摆脱黑色背景
【发布时间】:2014-12-06 12:28:08
【问题描述】:

我想要做的是使用 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,我会得到默认的紫色)。我该如何解决这个问题?

【问题讨论】:

    标签: c# xna rendertarget


    【解决方案1】:

    使用透明清晰的颜色:

    GraphicsDevice.Clear(Color.TransparentBlack);
    

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

    【讨论】:

    • 呵呵,就这么简单。我以为我不得不摆弄 BlendMode。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2014-01-04
    相关资源
    最近更新 更多