玩家一定对游戏设置中的“V-SYNC”选项很熟悉,但很少有人知道这个功能的具体功能,“永不开启垂直同步”的谣言也在游戏的温柔高跟鞋中广泛流传。为什么呢?
1.澄清“垂直同步”的概念,首先需要知道两个术语:“刷新率”和“缓冲区”。
显示器刷新一帧画面时,并不是一次刷新全部画面,而是从上至下逐行绘制。这个过程太快了,人眼很难察觉。这一过程被称为“逐行扫描”,是目前显示设备最重要的成像方式。当然,早期的显示设备使用隔行扫描,但今天已经很少了。
“逐行扫描”后,监视器上会显示完整的图像。那么我们经常在显示器或电视上看到的参数——“xxHz”是什么意思呢?
以刷新率为60Hz的显示器为例。“60Hz”意味着它的屏幕每秒会刷新60次。正如我们所知道的漫画,无数的静态图片会被快速连续地播放。因为人眼有“视觉暂留”,所以也表现出动态效果。就是这样,我们在监视器上看到的画面出现在我们眼前。
显卡渲染完一张图片后,会将这张图片存储在视频内存中的特定位置,也就是“缓冲区”,存储后显卡会渲染下一张图片。
如果显卡每秒能产生120张图片呢?很明显,每1/120秒,缓冲区中就会存储一张图片,下一个1/120秒,新的图片就会替换上一张,这个过程就是我们玩家熟悉的“帧数”概念。
现在,问题来了。如果显卡每秒能产生120张图片(120帧),而显示器每秒只能读取60张图片(60Hz),会发生什么情况?
2.现在显卡的缓冲分为两种:前缓冲和后缓冲。显卡只会将绘制的图像写入后缓冲区,而只会将前缓冲区的图像发送到显示器。
当写入后缓冲区中的“新鲜”图像时,程序不会将后缓冲区的图像传输到前缓冲区,而是交换缓冲区。——,前缓冲区和后缓冲区的名称颠倒,即前缓冲区变成后缓冲区,后缓冲区变成前缓冲区。这样,刚刚在后台缓冲区中绘制的图像可以成功传输到监视器。经过这样的折腾,程序可以在不影响显卡的情况下,将后缓冲区的图像写入,将前缓冲区的图像传输给显示器,然后进行下一次“缓冲区交换”。
这个过程是显卡设置中常见的“双缓冲”。
然而,双缓冲有一个问题。两个缓冲区可以随时交换,所以会出现这种情况:前缓冲区的图片一有一半传送到监视器,两个缓冲区就交换,后缓冲区的图片(也就是下一帧图片)稍后再传送。结果,显示器上的图片变成了前后帧的组合,这就是图片撕裂的原因。
这个问题在高帧率的情况下尤为明显,因为帧率越高,前后缓冲区的交换就越频繁,这种撕裂感自然让人讨厌,尤其是玩游戏的时候。那么有什么解决办法吗?
这就是“垂直同步”的功能。当垂直同步选项打开时,当显示器尚未完成一帧的刷新时,不允许交换两个缓冲器。只有当显示器刷新一帧画面时,才能交换缓冲区,从而消除了“数据传输时交换缓冲区”的可能,自然解决了画面撕裂的问题。
但这是万无一失的吗?不完全是。
新问题是我们讨厌的:拖延。
3.当帧速率远高于显示器的刷新率时,为了
将显示器的刷新时间和显卡向缓冲区写入画面的时间保持同步,必然就需要人为地增加延迟,来延后“过快生成的画面“向显示器的输出,这显然会造成一定程度上的影像传输和操作反馈的延迟。延迟对于需要快速反应的竞技类游戏来说几乎是致命的,这也是为什么很多玩家建议关闭垂直同步的原因所在了。
既然不开垂直同步会画面撕裂,开了又会有延迟,那画质和性能就不能兼得吗?
当然,显示技术的发展不会漠视这个问题的存在,当前主打电竞的显示器配备的“G-Sync” 和“ FreeSync”技术正是为了解决这个问题而存在的,两项技术都属于“显示器动态刷新”技术,目的是让显示器可以动态调整自己的刷新率,使其和显卡输出画面的帧率完全同步,这样不仅可以解决画面撕裂的同时不出现操作延迟,还可以在帧率低于60帧的情况下同样提供垂直同步的效果,消除画面撕裂。
但这种显示器普遍价格较高,而且涉及设备的更换,当前已经有了更简单的解决方案——“三重缓冲”,它在双重缓冲的基础上再加入了一个帧缓冲区,组成了一个前缓冲区,两个后缓冲区的规格。程序来回向两个后缓冲区写入图像,每次显示器刷新时,前缓冲区就和最近完成写入的那个后缓冲区交换。
这样即便有一个缓冲区被禁止交换,另外两个缓冲区还是可以来回写入图像,于是就不需要人为增加画面延迟了。
但“三重缓冲”依旧存在问题,那就是需要额外占据显存,对配置不那么高的玩家而言,显然也存在额外成本。而更重要的一个问题是,游戏是否支持“三重缓冲”,完全取决于游戏厂商,游戏厂商们是否愿意花费不菲的人力和资金去解决问题,那就不是我们能决定的了。
4、说了那么多,建议就是,对于自己电脑的配置有足够自信的玩家,还是建议打开“垂直同步”和“三重缓冲”,这对消除画面撕裂和延迟都是很有帮助的。但如果你的配置不够到位,或是发现打开之后存在严重延迟,那么就果断关掉吧,想解决问题还是需要升级设备了。