欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > 说说我对屏幕撕裂、垂直同步、Freesync和G-sync的理解

说说我对屏幕撕裂、垂直同步、Freesync和G-sync的理解

日期:2023-10-06 18:51

最近接触了图形相关的知识。感觉以前学习OpenGL的时候,不需要考虑帧缓冲区在显示器上是如何处理的。司机都为我做好了。现在接触了vulkan,发现自己对Swapchain的工作原理了解不多。我在网上查找资料时发现了垂直同步的知识点。以前玩游戏的时候经常看它。但我不明白这是什么意思(抱歉!我不是一个合格的游戏玩家>-<),觉得自己还是得搞清楚一下,于是整理了一下自己对垂直同步及相关概念的理解

开始正文!

CRT 是阴极射线管显示器。从传统的CRT显示器刷新显示器来看,其工作方式是从上到下从左到右连续读取特定内存缓冲区中的数据来刷新屏幕。在显示器上,渲染程序也不断更新内存缓冲区,实现动态画面的输出。

显示器会有一个刷新频率系数:以Hz为单位,通常是60Hz或144Hz,这是由显示器决定的。这是一个相对固定的值,不会有太大的波动。也许温度会影响这个频率。 (由显示器和硬件决定);渲染程序还会有一个刷新频率因素:以FPS(每秒帧数)为单位,因为这个刷新是由应用程序控制的,所以影响因素会有很多,比如CPU和GPU的影响。算法的影响,这些都会影响计算一张图片所需的时间,从而影响频率(应用程序和CPU、GPU,主要是程序,其次是硬件)

那么当两个频率不一致时,很可能会出现几个问题:

1。画面撕裂

什么是画面撕裂?屏幕撕裂是指显示器显示一张图片时,中间出现一条或多条明显的“分界线”。这一般是由于每秒的帧数高于刷新率,可能显示器单位时间内显示一张图片,程序已经计算出了第二帧。当显示器刷新第一帧的一半时,即屏幕中间,剩余的图像已被应用程序替换。对于两个框架来说,没有办法。第一帧的剩余一半已被丢弃。显示器只能将第二帧的下半部分和第一帧的上半部分一起显示,这样就会出现明显的分离。边界线,这是画面撕裂

FPS 与刷新率同步

2。跳帧

原理和屏幕撕裂一样。屏幕撕裂仅在显示过程中丢弃某一帧的一部分。跳帧意味着确切的帧被完全丢弃

3。输出延迟

以上两个问题都是因为FPS高于刷新率,所以输出延迟几乎等于FPS低于刷新率。刷新一次屏幕后,显示器发现第二帧图像还没有计算出来,只好继续显示。第一帧的内容导致了延迟。因为第二次可能会刷新到一半,第二帧图像就来了,又造成了屏幕撕裂。

输出延迟是一个非常麻烦的问题。说明你的CPU和GPU达不到标准,或者是渲染程序算法太复杂。有一种特殊情况可以避免 FPS 过低导致的屏幕撕裂,即当 FPS 为刷新率除数时,可以向上取整。这可能就是显示器选择 60Hz 或 144Hz 刷新率的原因,因为它们有很多除数。 60 共有 11 个约数,144 共有 12 个约数
60Hz:30Hz、20Hz、15Hz、12Hz、10Hz、6-1Hz
144Hz:72Hz、48Hz、36Hz、24Hz、18Hz、1 6赫兹、12Hz、8Hz、6Hz、4Hz、2-1Hz

会出现这些问题是因为两个频率不一致,所以需要一些手段让两个频率一致或者同步,这样才不会出现性能浪费和屏幕撕裂等令人头疼的问题。用过的。问题

垂直同步、Freesync、G-Sync,共有三种同步方式(sync理解为同步)

其中,垂直同步是较早的技术。当时没有办法用应用程序来控制显示器的刷新频率,所以这个同步就是控制应用程序的帧输出频率与显示器相同。 ,垂直同步相对于其他两种技术的优势在于它的通用性很强。如果不支持调节频率,就不存在显示器不能使用的情况,并且不受设备限制。

使用垂直同步其实就是在FPS高于刷新率的情况下降低FPS。当FPS低于刷新率时,它就失去了意义。当频率不一致时仍然会出现相关问题,因此当FPS低于更改刷新率时不建议打开垂直同步。开启其实效果不大。

Freesynce 和 g-SYNC 的升级版本。经过一段时间的同步,出现了允许的调整。具有刷新率的显示器在FPS高于刷新率时几乎与垂直同步相同,但当FPS低于刷新率时,可以调整刷新率以适应FPS ,并且不一定要调整到相同的FPS,同样,只要调整到FPS的倍数,就可以避免屏幕撕裂。原因上面提到了
Freesync是AMD的技术,比G-Sync出现得更早
G-Sync是Nvidia的技术,G-Sync不是免费的,支持G-Sync的显示器会比G-Sync贵支持 Freesync 的显示器。如果你是nvidia的忠实粉丝,那么你当然会选择G-Sync,对吧? (只有小孩子才做选择,我全都要,手工太可笑了)
后两者在实现细节上肯定不一样,但原理是一样的

总结一下,这些问题都是由FPS和刷新率的差异造成的。解决方案是同步两个频率。这样不仅可以避免过度渲染和冗余图像的浪费,还能保证舒适流畅的画面,相比垂直同步相对老旧的技术,AMD的Freesync和Nvidia的G-Sync对垂直同步进行了优化。本来,他们只能降低FPS来保持同步。现在它们可以同时调整。显示器的刷新率可以解决这些画面问题

我再说一遍,Freesync和G-Sync技术调整刷新率的范围不是从1到最大刷新率,而是有规定的范围

网上参考的资料很多,这里就不一一列举了^-^

最后祝大家工作顺利

关灯