Как рассчитать FPS в OpenGL? - PullRequest
       0

Как рассчитать FPS в OpenGL?

7 голосов
/ 12 апреля 2011
void CalculateFrameRate()
{    
    static float framesPerSecond    = 0.0f;       // This will store our fps
    static float lastTime   = 0.0f;       // This will hold the time from the last frame
    float currentTime = GetTickCount() * 0.001f;    
    ++framesPerSecond;
    if( currentTime - lastTime > 1.0f )
    {
        lastTime = currentTime;
        if(SHOW_FPS == 1) fprintf(stderr, "\nCurrent Frames Per Second: %d\n\n", (int)framesPerSecond);
        framesPerSecond = 0;
    }
}

Должен ли я вызывать эту функцию в void play(void) или void display(void)?

Или это не имеет никакого значения?

Ответы [ 2 ]

6 голосов
/ 12 апреля 2011

Вы должны поместить его в цикл отображения. Вот статья, которая объясняет некоторые тонкости игровых циклов, которые вы должны прочитать.

1 голос
/ 12 апреля 2011

Если у вас есть какая-либо подпрограмма синхронизации, я предлагаю вам сделать вызов сразу после этого, то есть до больших вычислений. В противном случае расчеты синхронизации могут быть шаткими и давать разные значения для каждого цикла ... и примечание: лучше иметь постоянный FPS, чем колеблющийся FPS, просто чтобы максимизировать его. Колебание, даже настолько тонкое, заставляет зрителя / игрока осознать, что это все игра, и погружение в игру потеряно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...