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