我试图在运行时更改RenderTargets,因此我可以在运行时绘制一些元素,对其进行操作,然后最终将纹理绘制到屏幕上。问题是,如果我在运行时更改RenderTarget,屏幕会变成紫色。这是我在Draw中获得的代码:

        RenderTarget2D tempTarget = new RenderTarget2D(GraphicsDevice, 128, 128, 1,
            GraphicsDevice.DisplayMode.Format, GraphicsDevice.PresentationParameters.MultiSampleType,
            GraphicsDevice.PresentationParameters.MultiSampleQuality, RenderTargetUsage.PreserveContents);

        GraphicsDevice.SetRenderTarget(0, tempTarget);
        GraphicsDevice.Clear(ClearOptions.Target, Color.SpringGreen, 0, 0);
        GraphicsDevice.SetRenderTarget(0, null);

我如何创建RenderTarget似乎无关紧要,如果我在运行时进行渲染(并且确实需要在运行时创建内存中纹理并使用SpriteBatch对其进行绘制),则会产生一个完全紫色的屏幕。我该怎么做才能解决此问题?

最佳答案

看起来最好的选择是在Draw以外的其他地方创建RenderTarget,在Update期间对其进行绘制,保存生成的纹理(并根据需要进行操作),然后在Draw期间绘制该纹理。

关于c# - 在紫色屏幕上更改RenderTarget结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3270507/

10-11 01:48