Opengl 导致屏幕撕裂或口吃的最可靠的效果是什么?

Opengl 导致屏幕撕裂或口吃的最可靠的效果是什么?,opengl,doublebuffered,blit,double-buffering,vsync,Opengl,Doublebuffered,Blit,Double Buffering,Vsync,我正试图研究各种减少或消除的策略,例如各种vsync实现、手动帧速率定时、双缓冲等。我计划编写一篇教程或论文来解释我的发现 然而,首先,我需要创建一个简单的opengl程序来演示其效果,以便了解各种策略的工作情况。什么类型的动画和效果最有可能产生撕裂?我知道快速的运动经常会触发它,但我假设有某种方程式或经验法则,我可以使用 我试过用谷歌搜索,但我只能找到无数关于如何停止撕裂的线索,没有系统的方法来创建它。你可以在每帧将黑白图像切换到默认帧缓冲区之间进行切换。像这样在屏幕上黑白划动应该会使任何部分

我正试图研究各种减少或消除的策略,例如各种vsync实现、手动帧速率定时、双缓冲等。我计划编写一篇教程或论文来解释我的发现

然而,首先,我需要创建一个简单的opengl程序来演示其效果,以便了解各种策略的工作情况。什么类型的动画和效果最有可能产生撕裂?我知道快速的运动经常会触发它,但我假设有某种方程式或经验法则,我可以使用


我试过用谷歌搜索,但我只能找到无数关于如何停止撕裂的线索,没有系统的方法来创建它。

你可以在每帧将黑白图像切换到默认帧缓冲区之间进行切换。像这样在屏幕上黑白划动应该会使任何部分画面变得像以前一样明显。另外,请确保您在全屏模式下执行此操作,较新版本Windows中的DWM会隐式防止撕裂-如果您想在Windows 8上以12000 FPS的速度进行绘制而不在窗口模式下撕裂,因为它拥有前缓冲区。@AndonM.Coleman谢谢!我试试看。我实际上是在linux中开发的,但那里的情况类似。合成窗口管理器以性能和控制为代价防止撕裂,您必须全屏才能真正看到它。