是我,维生素P。
一文看懂技术原理,深入浅出,简化模型多图预警。
所有图均为古早配方亲手制作,如果大家觉得有帮助记得点一个赞 。
先说结论: GSYNC 与 FreeSync 的技术原理,是控制 VBlank 时间,实现可变的刷新率,来适配变化的游戏渲染速率(帧数),用较小的延迟代价,解决画面撕裂问题。
想要了解游戏显示器中的 GSYNC 与 FreeSync 技术,我们得先要有一点点的前置背景知识。
为了更好地简单解释很多概念,我们先来做一些好玩的简化模型,首先我们来造一个显示器。
显示器刷新画面
首先,显示器是一个有很多很多像素点排列组合的而成的面板。我们这里假设有一个特别特别简陋的黑白显示器,只有 4*4 一共16个像素,每个像素点只能展现黑色或者白色。
理想情况下,假如显卡和显示器配合的特别好,恰好每0.1秒 RTAK 3090 就运算完成渲染出来一个画面。那么,每次渲染出图的速率,和显示画面的速率,恰好达成一致,那么就可以有一个完美的画面呈现效果了。
画面撕裂
但是,实际上我们的游戏画面,不可能显卡运算渲染是如此稳定的。
打游戏的时候,如果打开帧数软件,你就会发现,在一些画面比较简单的场景下,帧数会很高,意思就是说,这种简单画面显卡很快就渲染出来了,所以1秒能渲染的帧数会很高。
但如果说散热不好或者是遇到一些特别复杂的光线画面,这个时候帧数就会降低,也就是说,显卡渲染的时间要更长了,所以1秒能出的画面就少了。
比如说,我们的显卡不太稳定,在渲染某个画面的时候,突然运算变快了,不用0.1秒,只需要0.05秒,就完全渲染完了,那么会发生什么事情呢?
要知道,显示器显示画面的逻辑,是读取缓冲区数据,和显卡没有直接关系。
所以,在显示器进行逐行扫描到一半的过程的时候,缓冲器数据进行了交换,那么后续继续扫描就会把下一个画面的像素给扫上来。
也就是说,在这个0.1秒逐行扫描的过程中,有接近一半的扫描是在把画面3的像素刷出来,后面一半多的扫描,是在把画面4的像素刷出来。
明明这个自走蛇只有3个格子长度,画面却出现了4个格子。
一部分是画面3,一部分是画面4,画面2的刷新过程刷出了两个画面的部分。
在一个画面刷新的过程中,这个画面就被撕裂成了两个帧画面的部分进行组合。
还有另外一种情况,那就是渲染时间稍微慢了,是0.15秒,也会刚好撞上刷新到一半的情况。
只要是显卡的画面生成速率和显示器的画面刷新速率不一致,就会可能出现画面撕裂。
这,就是,画面撕裂。
V-Sync 垂直同步
既然问题是在于显卡渲染速率,比显示器的读取速率快了,导致显示器读了一半就开始读下一个画面。那么,让显卡渲染不要那么快,不要直接生成画面塞进去,让显卡等一等,等画面出来完了,再生成下一个画面,这不就能解决画面撕裂了吗?
确实可以,相当于让显卡等一等,但是显卡的渲染速率不是一个稳定的值呀,万一显卡等完之后,渲染又变慢了,会发生什么事情呢?
假如说,显卡渲染完画面3之后就开始等,等到显示器真正把画面3刷新完了,然后再开始生成画面4,但好巧不巧,显卡累了,这次渲染花了0.2秒,于是显示器等呀等,等了好久终于才等来了画面4.
就像上图的这个流程,显示器有2帧都是保持在画面3没有刷新,这就相当于导致了游戏画面的停顿,也就是感觉卡了。
很显然,为了保证体验,显卡的运算是最好不要等待停顿的,而是一直来输出画面比好,这样能保证画面尽可能的减少延迟。
既然是说在逐行扫描的过程中有新画面插入,那么可不可以反过来,不让显卡等显示器出画面,而是反过来,让显示器等显卡下一个画面呢?
AMD 的 FreeSync 与 NVIDIA 的 G-SYNC
当然是可以的。
这就是游戏显示器中的 GSYNC 与 FreeSync 技术, 这个技术的核心就是在于对 Vertical Blank 时间的巧妙使用。
最开始时候,我们提到过,显示器进行逐行扫描刷新画面之后,会有一个从右下角复位到左上角第一个像素位置的 Vertical Blank 时间,实际上这个时间是非常短的,但是我们可以用一些技术手段,去控制这个时间。
那么之前我们显示器逐行扫描4行+VBlank 时间是 0.1秒,现在通过一些技术可以调整VBlank 时间,那么也就可以改变显示器的刷新时间间隔,让它可以做到等显卡画面。
还是用之前渲染用了0.15秒例子来看下。
之前画面撕裂,是因为显示器渲染完画面3之后,又继续开始刷新,在刷新一半的时候有新画面进来。
那么我们可以通过增加 VBlank 时间,让显示器刷新完画面3之后,等一等,等到新画面来了,再开始下一次刷新。
这种做法虽然也会有一点点延迟,但是会比垂直同步那种一来一回让显卡等显示器的做法更好,没有画面撕裂并且较低的卡顿延迟更容易接受。
所以,这就是 GSYNC 与 FreeSync 的技术原理,是控制 VBlank 时间,实现可变的刷新率,来适配变化的游戏渲染速率(帧数),用较小的延迟代价,解决画面撕裂问题。
技术原理相同,但是实现的技术方案有所不同。
G-SYNC 方案来自 NVIDIA,是10年前的一项革命性显示技术(2013年)。
具体又分为三类:
G-SYNC Compatible: 普通可变刷新率的软件兼容方案
G-SYNC: 使用 NVIDIA 专用芯片的硬件方案。
G-SYNC Ultimate: G-SYNC + HDR
比较常见多的是G-SYNC Compatible,它和AMD的 Freesync 其实就一回事,都是符合视频电子标准协会VESA Adaptive-Sync 标准的。不过标注 G-SYNC兼容的显示器,是归NVIDIA来做测试认证罢了。
G-SYNC 方案,相比于G-SYNC Compatible多了独立的硬件芯片,这就导致成本肯定增加,而且在多数场景下,有稳定性,帧数可变范围,性能等优势,但是带来的直接用户感知不是特别强,所以这类产品目前市场不是特别多,或者说价格来说没有特别大优势。
G-SYNC Ultimate,那就是加钱加到够强,因为实现HDR的时候,信号会附带额外的更多信息来处理高对比内容,所以这时候专用芯片倒是排上了用处,可以同时处理HDR信号和G-SYNC控制信号,基本上是万元高端显示器上才会有的了。
与之对应的 FreeSync 技术,则是出自 AMD。
具体又分为三类:
FreeSync : 普通可变刷新率的软件兼容方案
FreeSync Premium : FHD不低于120Hz,增加低帧数补偿。
FreeSync Premium Pro: FreeSync Premium + HDR
AMD 的 FreeSync 技术是开源的,所以说只需要在软件层面加入对应驱动代码就可以支持,G-Sync 的相关显示器则是需要交钱去拿给NVIDIA做相关的全套测试,测试通过之后获取认证授权。
没有获得G-SYNC Compatible认证的 FreeSync 显示器都可以手动开启 G-Sync,只是不保证体验。
总结
G-SYNC 与 FreeSync 的技术原理,是控制 VBlank 时间,实现可变的刷新率,来适配变化的游戏渲染速率(帧数),用较小的延迟代价,解决画面撕裂问题。
G-SYNC 分三类:
- G-SYNC Compatible: 普通可变刷新率的软件兼容方案
- G-SYNC: 使用 NVIDIA 专用芯片的硬件方案。
- G-SYNC Ultimate: G-SYNC + HDR
FreeSync 分三类:
- FreeSync : 普通可变刷新率的软件兼容方案
- FreeSync Premium : FHD不低于120Hz,增加低帧数补偿。
- FreeSync Premium Pro: FreeSync Premium + HDR
FreeSync 显示器都可以手动开启 G-Sync,但 G-SYNC Compatible 有相关测试认证授权可能表现会好一点。
最后,感谢各位看到这里,一文看懂技术原理,深入浅出的简化模型多图,希望能帮助大家理解。
如果大家觉得有帮助,可以点点赞,充个电,欢迎评论区讨论。
是我,维生素P
#免责声明#
①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!