【问题标题】:XNA problem when draw many different batches绘制许多不同批次时的 XNA 问题
【发布时间】:2019-11-28 11:31:48
【问题描述】:

我有一个 4 个方向的 2D 游戏,我遇到了 FPS(或 GPU)问题,因为我必须绘制很多纹理。 我已经阅读了很多关于优化性能的技术,但我不知道我还能做什么。

主要问题是在某些情况下我有大约 200 个生物,我必须在其中绘制他的身体(它是单个精灵),但还要在他的身体上绘制法术和其他动画。
所以,我认为那是它开始产生冲突的时候,因为我绘制每个生物的循环必须更改每个生物的纹理,即 body>animation1>animation2>animation3 大约 200 次(生物)次60 帧/秒。这将fps降低到大约40-50。 有什么建议吗?

这是它的外观:

【问题讨论】:

    标签: xna 2d


    【解决方案1】:

    问题可能是 - 正如您已经建议的那样 - 不同纹理之间的不断切换。这比使用相同纹理绘制相同数量的精灵要慢得多。

    要改变这一点,请考虑将所有纹理放入一个大纹理中。然后你总是画那个纹理。这显然看起来很错误,因此您还必须告诉 XNA 您要绘制纹理的哪个部分。为此,您可以使用可以传递给 SpriteBatch.Draw(...) 的 SourceRectangle 参数。这样,您始终可以渲染相同的纹理,但仍然可以在屏幕上显示不同的图像。

    有关更多详细信息,另请参阅this answer about texture atlasses

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多