1

我一直在用 Visual C# 开发一个游戏(我知道这不是最好的平台),而且,正如预期的那样,它开始运行得相当缓慢。运行一些测试表明,主要的阻碍在于绘制图像。我被告知 Sprite Batching 是一个很好的解决方案。

问题是,我在精灵批处理中找不到任何不特定于 XNA 或 OpenGL 的东西。我对这个过程知之甚少,我希望获得一些信息,了解是否可以使用 Visual Studio 的 Visual C# 实现这样的事情,以及(如果可以)我可以去哪里了解更多信息。如果没有,是否有任何其他有用的方法可以加快进程?谢谢!

4

1 回答 1

0

它基本上归结为将调用批处理在一起以保存状态开关(纹理、填充率)和绘制调用(发送 50,000 次绘制调用不如发送单个绘制调用有效,令人惊讶的是)。在调用 a 的等价物时,您必须检查SpriteBatch.Draw(...)以下内容:

  • 批次的内部“最大尺寸”
  • 如果纹理切换,刷新你的缓冲区(即绘制你有的任何东西)
  • 如果SpriteBatch.End(...)已被调用(您已完成;刷新缓冲区并绘制)

如果您仍然遇到问题,请随时查看 MonoGame 的实现

编辑:发现了一个很棒的游戏开发问题

于 2013-11-19T19:30:15.797 回答