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 を「常にオン」に設定しようとしました。また、WinApi の代わりに GLFW を使用してウィンドウを作成しようとしました。フルスクリーンモードとサイズ変更可能モードの両方でウィンドウを作成しようとしました。
とはいえ、改善は見られませんでした。