0
我注意到,當我使一個簡單的原始的,就像一個旋轉的立方體,和我增加0.1角每次通過傳統的同時(!做)循環,結果我得到當垂直同步開啓時與開啓時相比(在我的nVidia控制面板中更改)在速度方面有很大不同。的OpenGL垂直同步是渲染速度更快
例如,我使用以下代碼:
while (!done)
{
PeekMessage(&msg, hWnd, NULL, NULL, PM_REMOVE);
if (msg.message == WM_QUIT)
{
done = true;
}
else
{
angle += 0.1;
if (angle >= 360.0)
{
angle = 0.0;
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -5.0f);
glPushMatrix();
glRotatef(angle, 1.0f, 0.0f, 0.0f);
glRotatef(angle, 0.0f, 1.0f, 0.0f);
glColor3f(1.0f, 0.0f, 0.0f);
glutSolidCube(2.0f);
glPopMatrix();
glFlush();
SwapBuffers(hDC);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
當垂直同步被強制關斷,這個立方體旋轉時,很多垂直同步被強制運行速度比。現在,在遊戲中,當啓用垂直同步時,FPS鎖定到60 fps,並且在禁用時可隨意跳到與顯示器相同的高度。這可能與它有關。
我可以很容易地通過增加或減少我的角度看,每個通解決這個問題,有沒有辦法讓我的立方體旋轉以同樣的方式,儘管VSYNC是打開或關閉?