OpenGL полноэкранный рендеринг - PullRequest
2 голосов
/ 13 декабря 2011

В настоящее время я пишу код для игры в openGL и дошел до стадии, когда я в режиме от первого лица, управляю «камерой» с помощью W & S и вращаюсь с помощью мыши.

По какой-то причине, когда я нахожусь в оконном режиме, скорость, с которой я двигаюсь и вращаюсь, кажется НАМНОГО выше, чем скорости, которые я получаю в полноэкранном режиме, но это не моя главная проблема. (* 1)

В результате вышесказанного я решил ограничить игру полноэкранным режимом.

Мой уровень - это куб, каждая сторона которого имеет свой RGB.цвет, и когда я очень быстро двигаю мышь, углы уровня становятся очень блочными, пока я не замедляюсь. (* 2)

Кто-нибудь понимал, что происходит по обоим вопросам (* 1, * 2).

Я пытался сделать снимок экрана для вас, ребята,но выглядит нормально на скриншоте.

1 Ответ

2 голосов
/ 13 декабря 2011

Измерьте время вашего кадра с помощью glutGet(GLUT_ELAPSED_TIME):

void displayCallback()
{
    int start = glutGet(GLUT_ELAPSED_TIME);
    drawFrame();
    glutSwapBuffers();
    int end = glutGet(GLUT_ELAPSED_TIME);
    cout << "Frame time: " << (end-start) << "ms" << endl;
}

Если они около 16-17 мс, скорее всего, у вас есть некоторые vsync. Управление vsync зависит от системы, как в методе доступа, так и в надежности: (

Ваша лучшая ставка - независимость от частоты кадров , поэтому вы делаете все правильно, независимо от того, насколько быстро / медленно вы бежите.

...