不知道这个618有多少人买了新的路由器PlashSpeed5? 既然国行的PlayStation5和XboxSeriesXS都已经确认那个没有问题了,加上相对合理的价格和预约一般就能买的体验,相信不少人在打算或购买过本世代的主机了。相比于前代,PlayStation5和XboxSeriesXS有更好的画面、更流畅的体验;还带来了动态延迟输入(DLI)、自动低延迟模式(ALLM)、高帧率(HFR)等能进一步改善游戏效果的新特性。但在众多新特性中,可变帧率(VRR)带来的影响最为基础也最为直观。 所以当身边的ta问起新换的路由器好在哪里的时候,你该怎么跟ta解释呢?游戏画面撕裂卡顿是怎么一回事 不知道大家日常游戏过程里有没有遇到如下图的情况?这就是我和游戏玩家口中的画面撕裂,无论是撕裂和卡顿都对游戏时的体验并不友好,但撕裂和卡顿造成的原因却完全不一样。 游戏画面撕裂(图源:Nivdia) 但想要理解撕裂和卡顿是怎么发生的还需要从最开始进行解释。 小时候常玩的动画集 我们都知道人眼有视觉暂留的特性,所以当很多张画面超过一定速度从人眼前滑过,我们就会就会认为画面中的内容是运动的,而每张画面则会被叫做帧。而显示器也是同理,它通过每隔一段时间刷新一次画面,让我们认为屏幕上的元素也都是运动的;日常生活中最常见的60Hz的显示器一秒钟会刷新60张画面,144Hz的显示器一秒钟则会刷新144张画面。显示器是如何呈现画面的 日常生活中很多人看的动画都是由画家画出,而游戏画面则是由显卡绘制每帧画面,显卡把每帧画面交给显示器,显示器就会从上到下一行一行地把这一帧画面绘制出来,这种一行一行的绘制方式我们成为逐行扫描。也就是说显示器显示画面并不是一下就能呈现一个画面的,仍需要很短的时间进行绘制,只不过因为视觉暂留的特性我们无法分辨而已。 画面在显示器上呈现也需要时间(图源:啃芝士BV16x411e7bp) 当显卡绘制完成画面以后,需要把交给显存,显示器再从显存中拿到画面才能显示,如果显存中的画面发生了改变,显示器显示的内容也会跟着发生改变。 正常显示画面的方式(图源:啃芝士BV16x411e7bp) 为了保证显示器能在显示过程中正常显示画面,不至于因为新画面导致撕裂,显存会划分为前缓冲区和后缓冲区。显示器只接受前缓冲区的画面,显卡计算完成新画面了以后写入到后缓冲区中;当显示器想要显示下一帧画面时前后缓冲区的名称发生对调,原来的前缓冲区成了后缓冲区,原来的后缓冲区成了前缓冲区,刚刚绘制在后缓冲区的图像就能顺利地传给显示器了。这时显卡可以往新的后缓冲区中写入新画面,而不会影响到显示器正在显示的画面。为什么发生了卡顿和撕裂 但即使是有了缓冲器依然不能解决游戏中画面出现撕裂的问题,这主要是因为显示器采用了固定刷新率,而游戏中显卡渲染每一帧所需要的时间是在不断波动的。 造成卡顿的主要原因 比如当遇到大面积的反射场景、光线复杂的环境或者物品爆炸等复杂的场景,显卡总是需要花费更多的时间才能渲染一帧,这时只能在一秒内只能输出48帧,那么你大概率就能察觉到画面已经发生了卡顿(注意不是撕裂)。这是因为显示器从前缓存读取画面并呈现出来以后,后缓冲区如果没渲染完的话,显示器会等待一个时间再去问前缓冲区索要画面。这时,你往往需要多等一段时间,显示器呈现的帧间隔就不均匀了,刚好人眼对不均匀的帧间隔很敏感,你就能很明显感知到画面发生了卡顿。 造成画面撕裂的主要原因(图源:啃芝士BV16x411e7bp) 而较为简单的场景可以在一秒内则能输出90帧,这时显示器还在逐行呈现前缓存时,后缓冲区这边显卡已经渲染完毕了,前后缓冲区已经再次发生了翻转,这样显示器渲染到一半的画面剩下的就会变成另一个画面了,这时显示器会把新的画面给渲染出来,这就是撕裂。画面撕裂不仅仅影响体验,破坏沉浸感,甚至还会导致眼睛疲劳和头痛。 归根结底还是显示器固定的刷新时间导致了卡顿和撕裂。要如何解决卡顿和撕裂传统解决方案垂直同步 垂直缓存技术原理 在以前就有一项技术能减少卡顿和撕裂带来不适影响,也就是垂直同步。在简单环境下,如果示器还在显示前缓冲,这时显卡画好了后缓冲,垂直同步会禁止显卡进行绘图,直到显示器把前缓冲的画面显示完整,交换前后缓冲区的名字以后,显卡就会继续渲染了。如果你是60Hz的显示器,打开垂直同步以后画面就会锁在60帧了,144Hz打开垂直同步以后画面就会锁在144帧。 帧率陡然降低的地方(红色)会有明显卡顿(图源:Nvidia) 但垂直同步并不能解决卡顿的问题。在复杂场景下,当帧速率降至低于该60帧时,垂直同步会将帧速率锁定在最接近的水平,例如每秒45或30帧,随着性能的提升,帧速率会回到60,但是遇到性能瓶颈又会回落到较低的帧率,循环往复,让卡顿的感知反而会更加。 垂直同步还会造成鼠标延迟。如果你移动了1cm瞄准点,电脑收到这个消息把移动1cm瞄准点的坐标输出给显卡,显卡把对应的画面输出给显示器,所有的流程都不会推后,延迟仅有电路延迟。而开启垂直同步以后,你移动瞄准点的时机刚好在显示器还没显示完前缓冲的阶段里,那么你移动瞄准点的指令会和显卡一起等着,直到显卡重新开始渲染;这无疑会增加延迟,表现在游戏中就是鼠标出现了粘滞感,所以大部分的射击游戏和MOBA类游戏都不是很推荐打开垂直同步。更好的解决方案可变帧率 既然垂直同步会增加鼠标延迟,且不能根治卡顿,那么我们不妨换个思路,无论是卡顿还是撕裂实际上都是因为显卡输出的帧数是波动的,那么我们不妨让显示器也跟着波动刷新不就好了? 没错,Nvidia的GSync和AMD的FreeSync解决卡顿和撕裂的思路就是利用的这个,虽然他们背后的技术实现并不太一样,但是大体还是利用到了显示器刷新率的变频技术。而在HDMI2。1版本中也正式引入了这个技术,并且命名为可变帧率(VRR),新的PlayStation5和XboxSeriesXS也都支持这一项技术。 可变帧率技能保证画面不撕裂也能保证画面不卡顿 显卡输出帧高于显示器刷新率时,可变帧率会暂时不交换前后缓冲区,并用新生成的帧及时放入后缓冲区中覆盖旧帧,保证画面不发生撕裂地情况的同时,尽可能保证延迟和一般情况一致。 可变帧率保证画面不撕裂 而当显卡输出帧低于显示器刷新率时,可变帧率会及时告诉显示器下一次刷新需要等待的实际时间,以及时降低显示器的刷新频率,让用户无法察觉画面出现了掉帧。 可变帧率保证画面不卡顿可变帧率的目前支持得怎么样 龙争虎斗多年的PC平台上的可变帧率 在PC上,无论是Nvida的GSync,AMD的FreeSync都是可变帧率的一种。在过去Nvidia有更严格的验证标注,显示器需要有特殊的模块才能得到GSync标识,显示器价格普遍较高;而FreeSync则是一个相对开放的标准,显示器厂家只要选用支持FreeSync的面板就可以支持FreeSync了,相对而言价格较低。当然在近两年,Nvidia也兼容了FreeSync这个开放标准,当Nvidia显卡连接到经过Nvidia认证的FreeSync显示器上时,Nvidia会启用GSYNCCOMPATIBLE模式,同样能获得既无撕裂也无卡顿的画面。 部分FreeSync显示器也能打开GSYNCCOMPATIBLE模式了 但在电视上既不需要FreeSync认证也不需要GSync认证就可以支持游戏机的可变帧率,这是HDMI2。1规格的一部分,并开始出现在大部分带有HDMI2。1接口的电视机上。值得一提的是,有些HDMI2。0的电视机也会支持可变帧率,具体还是要看商品的技术规格。 HDMI2。1可变帧率 玩梗归玩梗,最后需要提醒大家的是,虽然PS5和XboxSeriesXS都已经宣布了HDMI2。1的可变帧率支持,但PlayStation也有画饼不填坑的先例。相比之下XboxSeriesXS以及XboxOneXS还支持FreeSync的可变帧率,这样即使你没有一台支持HDMI2。1的电视机,也依然可能可以通过FreeSync感受可变帧率的魅力。 XboxOneX(图片来自官网)