Thousand sprite 绘制性能不佳

Thousand sprite draws poor performance

我正在写一个应用程序,我遇到了低帧率,我发现几乎所有 CPU 时间都被 spriteBatch.draw() 方法(大约一千次调用)消耗了。所以我创建了简单的绘图应用程序

public void render() {
    spriteBatch.begin();
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    for (int i = 0; i < 2000; i++) {
        spriteBatch.draw(tex, 0, 0);
    }
    spriteBatch.end();
}

应用程序运行 18fps 当我增加 window 大小时,它几乎填满了整个屏幕 fps 下降到 7!,当 window 大小变化很小时,它以 60fps 运行,在全屏上我得到 20FPS(1600x900) - 比最大化更好window 我只使用一个纹理(512、512 - png),spriteBatch 上的 maxRenderCalls 是 2,polygonSpriteBatch 上是 5 - 两个相同的 FPS 禁用混合 -> 无变化,相同的 FPS

  1. 2k 的精灵在桌面上将 fps 降低到 20 以下是否正常? - ( Core i5-3210M 处理器(2.50GHz 1600MHz 3MB), NVIDIA® GeForce® GT630M)

  2. 改变windows大小影响性能正常吗?

我会尽量自己回答(欢迎post更好的回答)

正常。

性能问题的主要原因是大小。 绘图大小真的很重要,当我以十分之一的大小绘制它时,即使有 50 000 个精灵,我也能得到 30fps!

使用 PolygonSpriteBatch 时,即使启用了混合,我也可以获得更多 (48fps)!

也经常启用和禁用出血(我每帧做了 1000 多次),确实会对性能产生负面影响。