Как лучше всего измерить частоту кадров моей программы OpenGL?
Частота кадров OpenGL
Ответы (4)
Измерьте прошедшее время и подсчитайте количество кадров. Разделите одно на другое, чтобы получить частоту кадров.
Когда прошедшее время достигнет одной секунды или больше, если вы хотите усреднить его за более длительный период времени, сбросьте оба счетчика и начните заново.
person
jcoder
schedule
02.09.2009
Если я использую переполнение и делаю этот вызов glutIdleFunc(oneFrame); Я предполагаю, что oneFrame будет вызываться каждый кадр, это правильно?
- person Mike2012; 03.09.2009
Я так думаю, но я не знаком с перенасыщением
- person jcoder; 03.09.2009
Установите таймер в начале основного цикла и проверьте, сколько времени потребуется, чтобы вернуться туда.
Под окнами вы бы сделали что-то вроде:
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.
}
person
Goz
schedule
02.09.2009
То, что я сказал, только с фактическим кодом, поэтому +1 (хотя это предполагает окна...)
- person jcoder; 03.09.2009
Не то чтобы он упомянул платформу или язык... так что пора гадать ;)
- person Goz; 03.09.2009
Если вы используете Windows, просто используйте Fraps.
person
seveland
schedule
22.09.2011