使用OpenGL进行屏幕撕裂

时间:2016-05-15 10:09:08

标签: winapi opengl window vsync

我在Windows 10上遇到使用OpenGL的屏幕撕裂问题。我正在做一个光线行进演示(在片段着色器中只渲染2个三角形和光线行进和着色地形)。使用GTX 860M进行渲染,该应用程序没有停留在60 FPS(至少在较低分辨率下)的问题。然而,屏幕撕裂(并且以下视频以特别低的分辨率呈现,以确保这与片段着色器代码的复杂性无关): Screen tearing video at YouTube.

我尝试过的事情:

我正在使用recommended settings创建OpenGL上下文。 我尝试使用(wglSwapIntervalEXT(1))手动打开VSync,尽管这应该是默认行为。 我试过在SwapBuffers调用之前放置glFinish,即:

while (isRunning)
{
    ProcessMessages(window, &context);
    App::Update(&context);
    glFinish();
    SwapBuffers(windowHandle);
}

我已尝试将VSync设置为"始终开启"在Nvidia控制面板中。我也尝试使用GLFW而不是WinApi创建窗口。我尝试在全屏模式和可调整大小模式下创建窗口。

虽然我没有看到任何进步。

0 个答案:

没有答案