画面撕裂的情况是为常见的不稳定因素,也是容易解决的。画面撕裂出现的原因是当显卡在显示器的一个显示周期中输出了多次画面信息后,显示器为了紧跟显卡输出的新信息,在一个显示周期中混搭显示出了不同的画面,这终就造成了画面撕裂。
举例来说,在显示器的一个显示周期中的前半段,显示器接收到显卡输出的一个画面信息并更新了一半内容在屏幕上(假设第一幅显示的内容是“0”)。而与此同时,显示器又接到显卡新输出的一个画面(假设第二幅显示的内容是“1”),于是,显示器会机械地将“1”的内容更新在剩下的一半屏幕上。由于游戏的运动性,前后两幅画面肯定存在差异,因此上下两个半幅画面是不统一的,这就是撕裂现象。
这种现象往往出现在快速激烈的画面转换中,比如FPS游戏激烈交火时。在这类游戏中,高帧数状态玩家仔细观察竖向的物体并快速移动鼠标,就能看到大量的撕裂现象出现。而画面撕裂会影响到玩家的判断甚至造成失误,如明显地影响“瞄准”操作,进而导致玩家成绩不佳。倘若换用低性能显卡降低帧数,又有可能出现显卡计算性能不足,出现画面输出速度过慢,导致游戏真正的卡顿,这同样不能被玩家接受。
画面延迟会造成游戏中一些不可知情况的发生,比如玩家刚好看到红屏提醒,回过神来就已经Game Over。
出现卡顿和延迟的原因依旧是显卡输出帧和显示器显示帧数无法匹配。
与撕裂时一个刷新周期显示2、3张画面残图相反,当显示器2、3个刷新周期都只显示一个画面时,就会出现卡顿。这通常是由显卡性能局限,难以在显示器刷新周期到来前交出渲染好的画面导致。这使得显示器只能提供上一帧的内容(停留在上一帧),直到显卡输出下一个渲染好的画面,再在新的刷新周期更换显示内容。比如人物从左向右以比较平滑的方式转向,但是其中某两个画面重复,造成了时间上的微小不连贯,这个时候玩家眼中看到的就是卡顿。
上述描述反应的是显卡性能不足的情况下存在的卡顿。那么当显卡输出的画面帧数远高于显示器的刷新帧数时呢?在这种情况下,显示器能在第一个刷新周期中,正确输出显卡渲染的第一帧画面。而此后,在下个显示器刷新周期到来前显卡连续输出了N帧画面,由于时间间隔太近,都会被显示器忽略。到显卡输出第N+1帧时,显示器才取得这个画面并刷新在屏幕上。那么从第1帧到第N+1帧中间的N帧画面都丢失了,反映在玩家眼中也就是画面显示的延迟,跟卡顿的效果看起来极为相似。显卡性能差出现卡顿还情有可原,显卡性能强还卡顿,这让玩家情何以堪?
需要说明的是,撕裂、尤其是卡顿、延迟,存在明显的人群敏感差异性。有些玩家很容易感受到卡顿,但是有些玩家却表示同样场景非常流畅,除了可能存在的生理机能差异外,游戏训练的程度以及对游戏操控的熟练度差异,都能影响终的感知。为了减少干扰,以上讨论针对的是比较单纯的环境,体验者没有经过特别训练,也并非特殊体质等特殊情况。
其实游戏画面的稳定性问题,早在CRT时代就开始受到业内专家的关注。因此推出了垂直同步技术来予以修正。只不过垂直同步的运行原理太过粗暴,它将显卡输出的画面帧数锁定在60帧/秒和30帧/秒这两个固定数值上。之所以选择这两个数值,是因为它们能与绝大多数显示器刷新帧率相匹配。简单来说,当显卡给出游戏画面的速度高于60帧/秒时,垂直同步会强制显卡每秒只输出60张画面,恰好对应显示器60Hz的刷新率。当显卡给出游戏画面的速度低于60帧/秒时,垂直同步会强制显卡每秒只输出30张,使得显示器可以在每两个显示周期中稳定显示一帧画面。这种方式其实是要求显卡向显示器妥协,显得比较被动,也经常浪费显卡性能。
垂直同步初步考虑到了60帧/秒以上的高帧数带来的画面不稳定现象,但是对60帧/秒以下的较高帧数考虑却不周到。现在的游戏场景多变,同一显示系统面对不同游戏场景的渲染压力差距明显,这导致帧数的波动幅度很大。当帧数在60帧/秒左右反复波动时,垂直同步也会在60Hz和30Hz之间反复切换,导致的结果就是更明显的画面不稳定。这将对游戏体验的舒适性带来灾难性打击,严重时甚至会造成玩家眩晕直至呕吐。因此,传统的垂直同步在很多玩家眼中是卡顿的代名词。除了某些优化得当或者轻负载游戏上有些作用外,多数时候会帮倒忙。因此,绝大多数玩家并没有使用垂直同步的习惯。
为了使得垂直同步更为合理,NVIDIA推出过自适应垂直同步,它的主要作用在于仅提供60帧/秒这一个固定值。当显卡输出帧数高于60帧/秒时,画面被锁定60Hz频率显示;显卡输出低于60帧/秒时,就按照实际画面输出频率显示。
传统的垂直同步会在60帧和30帧之间反复切换,导致画面卡顿、难以接受。
NVIDIA的自适应垂直同步虽然解决了垂直同步60帧以下卡顿的问题,但是无法解决低帧数时的卡顿、延迟等问题。
很显然,无论是自适应垂直同步,还是垂直同步,都是一种尽量改变帧数以适应显示器的技术,它们都是对显示器固定刷新率的一种妥协。实际应用中对画面有一定的改善,但并不能从根本上解决问题,还会在很多时候浪费显卡性能。为了真正有效解决不稳定问题,更好的办法无疑是让显示器刷新率转变为动态值。
当显示器刷新率能动态变化后,显示器就可以和显卡形成恰当的匹配。显卡输出帧数为45帧/秒,显示器也能以同样的45Hz速度刷新画面;当显卡输出为144帧时,显示器也变为144Hz的高刷新率。这样一来,由显卡和显示器无法匹配刷新率而带来的撕裂和卡顿等问题将会得到彻底解决。
要完成频率同步,又需要硬件系统具备哪些条件呢?
首先,显示器应该尽量提高刷新率上限,好是能达到甚至超过120Hz。这样才能尽可能地配合高性能显卡,发挥出高帧率带来的流畅优势。
其次,显示器必须支持DisplayPort接口,因为DisplayPort接口继承了可以控制V-Blank信号的设计,可借此打破显示器的固定刷新频率,做到动态刷新。V-Blank信号原本是CRT时代的控制信号。在CRT时代,阴极射线从显示屏左上角开始刷新,刷新至右下角后一个点阵后完成一帧图像的输出。此时阴极射线需要返回左上角准备下一帧刷新,这个返回的时间,就叫做V-Blank垂直空白。在液晶显示器时代,显示器基本都采用静态刷新,不再需要V-Blank信号,但是这个信号作为向下兼容的技术,依旧被DisplayPort保留了下来,并被重新定义为频率调控信号。
第三,GPU必须能够控制V-Blank信号。GPU通过控制V-Blank信号,将当前自己的刷新频率告知显示器,让控制显示器依次确定两个显示周期之间等待的时间长度,从而动态地刷新画面。
很显然,无论以何种方式实现,NVIDIA G-Sync和AMD Free Sync这两个系统都具备了这三个必要条件。至于这两者究竟孰优孰劣,且看接下来的对比解析。