OpenGL 帧率
Posted
技术标签:
【中文标题】OpenGL 帧率【英文标题】:OpenGl Frame rate 【发布时间】:2009-09-02 21:56:43 【问题描述】:测量 OpenGL 程序的帧速率的最佳方法是什么?
【问题讨论】:
【参考方案1】:在你的主循环开始时设置一个计时器并测试返回那里需要多长时间。
在windows下你会做这样的事情:
double oldTime = 0.0.
while( !exit )
__int64 counter;
QueryPerformanceCounter( (LARGE_INTEGER*)&counter );
__int64 frequency;
QueryPerformanceFrequency( (LARGE_INTEGER*)&frequency );
double newTime = (double)counter / (double)frequency;
double frameRate = 1.0 / (newTime - oldTime);
oldTime = newTime;
// Rest of your game loop goes here.
【讨论】:
我所说的只是用实际代码所以+1(虽然它确实假设Windows......) 不是他提到的平台或语言......所以它的猜测时间;)【参考方案2】:测量经过的时间并计算帧数。 一个除以另一个给出帧速率。
当经过的时间达到一秒或更多时,如果您想在更长的时间段内对其进行平均,则重置两个计数并重新开始。
【讨论】:
如果我使用 glut 并且我调用了 glutIdleFunc(oneFrame);我假设每一帧都会调用 oneFrame 这是正确的吗? 我相信是这样,但我对 glut 不太熟悉【参考方案3】:SPF (Seconds Per Frame) 是一个提供更多信息的指标。
【讨论】:
【参考方案4】:如果您使用的是 Windows,请使用 Fraps。
http://www.fraps.com/
【讨论】:
以上是关于OpenGL 帧率的主要内容,如果未能解决你的问题,请参考以下文章