XNA 4.0 SetRenderTarget结果为全紫色屏幕

本文关键字:紫色 屏幕 结果 SetRenderTarget XNA | 更新日期: 2023-09-27 18:24:23

我目前正在为我的个人项目制作一个带有XNA的2D侧滚动游戏。我现在的目标是玩着色器。但事实上,我被SetRenderTarget(RenderTarget2D)方法卡住了,我不明白为什么我一调用它,游戏就会变成全紫色屏幕。

我到处找,我仍然不明白问题出在哪里,但我认为这可能是由于我开始使用spritebatch的方式。

public void Draw(GraphicsDevice graphics, SpriteBatch spriteBatch, RenderTarget2D mainScene)
    {
        graphics.SetRenderTarget(mainScene);
        graphics.Clear(Color.Black);
        spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, _camera.GetViewMatrix(Parallax));
        foreach(Sprite sprite in Sprites)
            sprite.Draw(spriteBatch);
        spriteBatch.End();
        graphics.SetRenderTarget(null);            
    }

有什么想法吗?提前感谢:)

XNA 4.0 SetRenderTarget结果为全紫色屏幕

您绘制的是RenderTarget,而不是BackBuffer。在BackBuffer中不绘制任何内容时,它默认为紫色。在RenderTarget设置为null时绘制以绘制到BackBuffer,该BackBuffer指示您在屏幕上看到的内容。RenderTarget用于在屏幕外绘制内容。