Вопрос

Каким был бы наилучший способ измерить частоту кадров моей программы OpenGL?

Это было полезно?

Решение

Измерьте затраченное время и подсчитайте количество кадров.Разделите одно на другое, чтобы получить частоту кадров.

Когда истекшее время достигнет одной секунды или больше, если вы хотите усреднить его за более длительный период времени, сбросьте оба счета и начните заново.

Другие советы

Установите таймер в начале вашего основного цикла и проверьте, сколько времени потребуется, чтобы вернуться туда.

Под 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.    
}

SPF (Секунды на кадр) это немного более информативный показатель.

Если вы используете Windows, просто используйте Fraps.

http://www.fraps.com/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top