[XNA问题,绘制许多不同批次时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[XNA问题,绘制许多不同批次时相关的知识,希望对你有一定的参考价值。
我在4个方向上都有2D游戏,并且在FPS(或GPU)方面遇到问题,因为我必须绘制很多纹理。我已经阅读了很多有关优化性能的技术,但是我不知道该怎么办。
主要问题是,在某些情况下,我大约有200个生物,在这里我不仅要画他的身体(它是一个精灵),还要在他的身上画一些咒语和其他动画。因此,我认为那是开始产生冲突的原因,因为我绘制每个生物的循环必须更改每个生物的纹理,即body> animation1> animation2> animation3,并且在60 fps时约200次(生物)。将fps降低至40-50。有什么建议吗?
外观如下:
答案
问题可能是-正如您已经建议的-不同纹理之间的不断切换。这比绘制具有相同纹理的相同数量的精灵要慢得多。
要更改此设置,请考虑将所有纹理放入一个大纹理中。然后,您总是绘制该纹理。这显然看起来很不对劲,因此您还必须告诉XNA您要绘制纹理的哪一部分。为此,可以使用可以传递给SpriteBatch.Draw(...)的SourceRectangle参数。这样,您始终可以渲染相同的纹理,但在屏幕上仍可以具有不同的图像。
另请参阅this answer about texture atlasses了解更多详细信息。
以上是关于[XNA问题,绘制许多不同批次时的主要内容,如果未能解决你的问题,请参考以下文章