在目标视口中绘制

时间:2013-01-31 17:49:33

标签: c# xna viewport

几天前,我问了一个关于“如何在不重新绘制所有内容的情况下在第二个视口中显示”的问题。其中一个答案是“你应该使用renderTarget2D并为spritebatch提供一个Rectangle源”,这个解决方案没有Matrix相机。

spriteBatch.Draw(
    TheRenderTarget2D, 
    TheViewportTarget.Bounds, 
    TheRectangleSourceFromTheRenderTarget2D, 
    Color.White);

这非常好,但是我失去了很多渲染质量(因为我的游戏变焦和其他一些东西)。

问题是:如何使用camera.transform()在第二个视口中绘制以保持质量,并进行缩放。

希望你能提供帮助。

1 个答案:

答案 0 :(得分:1)

就是这样:

    Graphics.Device = viewport1;
    spriteBatch.Begin(,,,,,Camera1.transformation);
    DrawScene();
    spriteBatch.End();

    Graphics.Device = viewport2;
    spriteBatch.Begin(,,,,,Camera2.transformation);
    DrawScene();
    spriteBatch.End();