我在 Windows 10 上使用 OpenGL 时遇到屏幕撕裂问题。。我正在做一个光线行进演示(仅在片段着色器中渲染 2 个三角形和光线行进和着色地形)。使用 GTX 860M 进行渲染,该应用程序在保持 60 FPS(至少在较低分辨率下)没有问题。但是存在屏幕撕裂(并且以下视频以特别低的分辨率渲染以确保这与片段着色器代码的复杂性无关): YouTube 上的屏幕撕裂视频。
我试过的:
我正在使用推荐的设置创建 OpenGL 上下文。我尝试使用 (wglSwapIntervalEXT(1)) 手动打开 VSync,尽管这应该是默认行为。我曾尝试在 SwapBuffers 调用之前放置 glFinish,即:
while (isRunning)
{
ProcessMessages(window, &context);
App::Update(&context);
glFinish();
SwapBuffers(windowHandle);
}
我尝试在 Nvidia 控制面板中将 VSync 设置为“始终开启”。我也尝试过使用 GLFW 而不是 WinApi 创建窗口。我尝试在全屏和可调整大小模式下创建窗口。
虽然我没有看到任何改善。