2011-12-12 211 views
2

我目前正在编写一个openGL游戏,并且我已经进入了一个阶段,我在第一人称模式下用W & S控制“摄像头”,并用鼠标旋转。OpenGL全屏渲染

由于某些原因,当我处于窗口模式时,我在移动和旋转时的速度似乎比在全屏时获得的速度快得多,但这不是我的主要问题。 (* 1)

由于上述原因,我决定将游戏限制为全屏。

我的水平是一个立方体,每边都是不同的RGB颜色,当我快速移动我的鼠标时,水平的转角变得很块,直到我放慢速度。 (* 1)(* 2)

任何人都知道这些问题(* 1,* 2)是怎么回事。

我试图为你们截图,但在截图中看起来很正常。

+0

什么样的帧速率你是否在全屏或窗口? – ryanshow

+0

你是否限制你的fps? – LeleDumbo

+0

你使用GLUT还是像win32一样的操作系统API? – Darkenor

回答

2

措施的框架次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-17ms你最有可能有一些垂直同步。管理VSYNC取决于系统,无论是在访问方法和可靠性:(

你最好的赌注是frame-rate independence,所以你做正确的事情,不管有多快/慢你正在运行。