我目前正在开发一款使用 OpenTK 进行渲染的游戏;C#、.Net 4.0、OpenGL 2。
以 1280x1024 分辨率运行最大化(不是全屏,而是占用所有可用的屏幕空间),我看到平均大约 400 FPS。在 1680x1050 分辨率下,我看到平均大约 315 FPS。尽管帧速率很高,但我还是遇到了断断续续的口吃。
基本上,大约整整 3 秒,渲染会明显卡顿,然后在大约 0.5 到 1 秒内完全平滑。这个循环永远重复。
根据口吃,我的 FPS 计数器上没有显示帧率下降。我通过计算帧数来计算帧速率,直到达到所需的更新频率,然后使用每秒的滴答数、更新频率中的滴答数以及之前的帧数来计算帧速率算了。使用这种方法,我每隔一秒只会看到一次更新,但我从未见过帧速率下降到远低于我预期的水平。
如果我将游戏窗口拖到第二个显示器上,这个问题会显着加剧。
在 Release 版本中运行应用程序并没有解决问题。
我使用 redgate 的 ANTS 对应用程序进行了性能分析。这指出了我已经解决的一些问题。
这里有什么建议吗?