我目前正在开发一款游戏,使用OpenTK进行渲染;C#,.Net 4.0,OpenGL 2。
在1280x1024分辨率的最大化窗口下,平均帧率约为400 FPS。在1680x1050分辨率下,平均帧率约为315 FPS。尽管帧率很高,但我仍然遇到间歇性的卡顿问题。
基本上,在约3秒钟的时间内,渲染会明显地卡顿,然后在约0.5到1秒钟内完全平滑。这个循环会一直重复。
根据卡顿情况,我的FPS计数器中没有显示出帧率下降。我通过计算帧数直到达到所需的更新频率,然后使用每秒钟的滴答数、更新频率的滴答数和计数的帧数来计算帧速率。使用这种方法,我只能在每半秒钟看到一次更新,但我从未见过帧率远低于我预期的水平。
如果将游戏窗口拖动到我的第二个显示器上,则问题会显著恶化。
在发布版本中运行应用程序并没有解决问题。
我使用了Redgate的ANTS对应用程序进行了性能分析。这指出了一些问题,我已经解决了。
这里有什么建议吗?