VSync 和 多缓冲

1.只有一个Buff(缓冲区)模式
VSync 和 多缓冲

 

缺点是经常会闪烁

 

2.double buffering(双缓冲)
VSync 和 多缓冲

 

双缓冲背后的想法是,计算机只绘制到一个缓冲区(称为“后”缓冲区)并将另一个缓冲区(称为“前”缓冲区)发送到屏幕。计算机画完后,程序会做一个叫做“交换”的程序,这个交换不会移动任何东西:交换只改变两个缓冲区的名称:前缓冲区变成后缓冲区,后缓冲区变成前缓冲区。

缓冲区交换后,软件可以开始绘制新的后缓冲区,计算机将新的前缓冲区发送到监视器,直到下一次缓冲区交换发生。

 

在这种形式的双缓冲中,交换可以随时发生。这意味着当计算机向监视器发送数据时,可以进行交换。发生这种情况时,屏幕的其余部分将根据新的前缓冲区包含的内容绘制。如果新的前缓冲区与旧的前缓冲区有足够的不同,则可以看到称为“tearing(撕裂)”的视觉伪影。这种类型的问题经常出现在高帧率的FPS游戏中,当它以尽可能快的速度绕过一个角落时。由于运动速度快,每一帧都是非常不同的,当交换发生在绘图过程中,差异很大,可能会分散注意力。

 

最常见的解决tearing(撕裂)问题的方法是等待交换缓冲区,直到监视器为另一个图像做好准备。监视器在完全绘制发送给它的内容并且下一个垂直刷新周期即将开始后准备就绪。

 

将缓冲区交换与垂直刷新同步称为vsync。

Synchronizing buffer swaps with the Vertical refresh is called vsync.

 

 

虽然启用vsync确实可以修复tearing(撕裂), 即使游戏不以每秒60帧的速度运行,这也会影响性能,因为仍然会有人为延迟来影响同步。在每帧只需稍长于16.67毫秒(1/60秒)的情况下,性能几乎可以降低一半。在这种情况下,帧速率将下降到每秒30帧,尽管游戏的运行速度应该略低于每秒60帧。然而,消除撕裂和帧速率的一致性确实有助于增加平滑度,没有vsync的双缓冲无法提供这种平滑度。

 

 

我们的

双缓冲选项是在没有vsync的情况下tearing(撕裂)等可能的视觉问题和

可能对性能产生负面影响并在启用vsync的情况下增加输入延迟的人工延迟

之间进行选择。但不用担心,有一个选择,结合了两个世界的最好,没有牺牲质量或实际表现。这个选项是三重缓冲。

 

TripleBuffering Why We Love It

https://www.anandtech.com/show/2794/1

What are Double Buffering, vsync and Triple Buffering?

https://www.anandtech.com/show/2794/2

 

 

 

 

如果您的GPU推动的FPS超过刷新率,那么我认为V-sync最好打开

 

这将在屏幕完成绘制最后一个图形之前停止从图形卡到达的下一帧-因此,您最终会看到显示的第1帧和第2帧的某些帧(显示为撕裂)。

 

vsync需要3个缓冲区才能正常工作(没有hic-ups),因此它将占用更多的视频内存。

 

 

如果使用正确,VSync可以帮助解决问题并防止图形处理器发红。如果使用不当,可能会不必要地损害您的FPS,并导致输入滞后而无益。现在您知道了VSync的功能以及何时启用它。

 

 

 

 

理解 VSync

https://blog.****.net/zhaizu/article/details/51882768

 

https://www.maketecheasier.com/what-is-vsync/