2011-12-12 210 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,所以你做正確的事情,不管有多快/慢你正在運行。