openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」垂直和水平是CRT中两个基本的同步信号,水平同步信号决定了CRT画出一条横越屏幕线的时间,垂直同步信号决定了CRT从屏幕顶部画到底部,再返回原始位置的时间,而恰恰是垂直同步代表着CRT显示器的刷新率水平!垂直同步打开,那么在游戏中,或许强劲的显卡迅速的绘制完一屏的图像,但是没有垂直同步信号的到达,显卡无法绘制下一屏,只有等垂直同步信号到达,才可以绘制。这样fps自然要受到操作系统刷新率运行值的…

大家好,又见面了,我是你们的朋友全栈君。

垂直和水平是CRT中两个基本的同步信号,水平同步信号决定了CRT画出一条横越屏幕线的时间,垂直同步信号决定了CRT从屏幕顶部画到底部,再返回原始位置的时间,而恰恰是垂直同步代表着CRT显示器的刷新率水平!

垂直同步打开,那么在游戏中,或许强劲的显卡迅速的绘制完一屏的图像,但是没有垂直同步信号的到达,显卡无法绘制下一屏,只有等垂直同步信号到达,才可以绘制。这样fps自然要受到操作系统刷新率运行值的制约。

说到垂直同步,可能有些小伙伴还很陌生。因为这是显示器分出电竞方向之后新出现的技术,以前都是显示器围着显卡转,而垂直同步则是让显卡围着显示器转。

关闭垂直同步,那么游戏中作完一屏画面,显卡和显示器无需等待垂直同步信号,就可以开始下一屏图像的绘制,自然可以完全发挥显卡的实力。

正是因为垂直同步的存在,才能使得游戏进程和显示器刷新率同步,使得画面平滑,使得画面稳定。取消了垂直同步信号,固然可以换来更快的速度,但是在图像的连续性上,性能势必打折扣。这也正是很多朋友抱怨关闭垂直后发现画面不连续的理论原因!

对于那些高速运行的游戏,比如实况,FPS游戏,打开后能防止游戏画面高速移动时画面撕裂现象,当然打开后如果你的游戏画面FPS数能达到或超过你显示器的刷新率,这时你的游戏画面FPS数被限制为你显示器的刷新率。你会觉得原来移动时的游戏画面是如此舒服,如果达不到会出现不同程度的跳帧现象,FPS与刷新率差距越大跳帧越严重(为什么?)。关闭后除高速运动的游戏外其他游戏基本看不出画面撕裂现象。

 

 

 

 

相信很多喜欢玩游戏的人对于垂直同步这个选项非常熟悉,在很多游戏的画面设置里都有这个选项。那么垂直同步究竟有什么用途?我们到底要不要打开它呢?今天小编就针对这些问题为大家解答。

垂直同步又称场同步,我们平时所说的打开垂直同步就是指将该信号送入显卡的3D图形处理部分,从而让显卡在生成3D图形时受垂直同步信号的控制。如果想要了解垂直同步有什么用途,我们需要先来了解一下,在我们没有开启垂直同步的时候,我们所看到的游戏画面是如何显示的。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

首先,我们在电脑上看到的画面本质上是由一幅幅图片快速地连续显示而来的。具体过程是显卡画好一幅画面之后,这幅画面会被写入到一个“帧缓冲器”中,而这个“帧缓冲器”分为一个前缓冲和一个后缓冲,显示器负责显示前缓冲的画面,显卡就负责在后缓冲中画画。当显卡在后缓冲画完一幅画之后,前缓冲就会变成后缓冲,后缓冲变成前缓冲,就像火车头与火车尾一样交替的进行工作。这个就是我们在没有开启垂直同步时画面显示的一套流程。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

其次,帧率是用于测量显示帧数的量度,它的测量单位为每秒显示帧数(fps)或赫兹(hz)。目前市面上的显示器的刷新率大多数都是60hz,而60hz的意思就是这个显示器每秒钟会显示60幅画面,但如果显卡的画图的速度超过了显示器每秒钟显示画面的速度会怎么样呢?

假设显卡每秒钟可以画90幅画面,所以在这个流程中如果出现显示器正在显示前缓冲器的画面,但因显卡画图速度过快,它已经画完后缓冲器的画面了,然后开始画前缓冲器的画面,但我们的显示器还没有把之前的画面显示完整,就会出现显卡画了一幅新的画面,然后直接把前缓冲器之前的画面覆盖掉的情况,这时显示器只能接着显示显卡新画的画面,于是显示器上的一幅画面成了前后两幅画的结合,这就是画面撕裂。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

当我们玩游戏的时遇到了画面撕裂的情况,开启垂直同步就是解决这个问题的办法。打开垂直同步后,显卡的画图速度就会被限制称显示器显示画面的速度,显卡会等待显示器把每一幅画面都显示完整了之后,它才开始画下一幅画面,这样一来就避免了画面撕裂的情况。但开启垂直同步之后又会产生另外一个问题,那就是显卡等显示器把画面显示完整后才开始画下一幅画面,显卡就产生了空闲,这样就限制了显卡画图的速度。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

帧数被限制后,当我们玩一些游戏时会明显感觉到游戏有延迟,而这个时候我们就可以开启三重缓冲的选项。开启了这个选项之后,会在前文所说的“双重缓冲”基础上再增加一个后缓冲,这样一来显卡就不需要等待显示器把画面显示完整了再开始画下一幅,而是选择直接在另一个后缓冲画图,这样就缓解了开启垂直同步之后画面有延迟的情况。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

所以一般来讲,如果我们游戏画面没有撕裂的情况,就不用开始垂直同步,但如果有撕裂的情况,又不想画面有延迟,我们就可以打开三重缓冲选项。但是三重缓冲也并非完美无瑕。首先由于需要一个额外的帧缓冲区,因此它会占用更多的显存空间。其次,它的延迟虽然远远低于双重缓冲下的垂直同步,但相比不开垂直同步还是可能略高一点。

openGL之API学习(六十九)水平同步 垂直同步「建议收藏」

那么垂直同步和三重缓冲到底该不该开呢?理论上来说画面撕裂和画面延迟是无论如何都要付出一个的,但实际情况是很多优秀游戏已经做到了不管你开不开垂直同步,都不会产生太大延迟或者画面撕裂严重。如果是玩的非射击类游戏,并且游戏能跑到60帧以上时,我还是建议大家开启垂直同步的,毕竟开启垂直同步虽然会锁帧而且增加画面延迟,但大家眼里对画面撕裂的感知还是要比手上那十几毫秒的延迟强得多的,不过有些游戏在三重缓冲下的画面延迟会非常高,那种情况还是把它关了吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143643.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vue生命周期钩子函数(详解及使用场景)(什么是vue的生命周期)

    vue中生命周期钩子函数有哪些发布时间:2020-12-0713:07:03来源:亿速云阅读:94作者:小新这篇文章主要介绍vue中生命周期钩子函数有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue实例的生命周期钩子函数(8个)1、beforeCreate刚new了一个组件,无法访问到数据和真实的dom,基本上这个好像不能干啥2、createddata属性完成了…

  • windbg调试dump文件_dump是什么文件夹

    windbg调试dump文件_dump是什么文件夹使用WinDbg分析Windowsdump文件

  • bzoj 2276: [Poi2011]Temperature

    bzoj 2276: [Poi2011]Temperature

  • MQTTBox客户端工具(Windows版)

    MQTTBox是一个带有可视化的界面的MQTT的客户端工具.工具特性:创建连接到相同或不同MQTT代理的多个并发MQTT客户端TCP,SSL/TLS,Web套接字和安全的Web套接字支持创建具有多种连接设置的MQTT客户端-最后的遗留,keepAlive,连接超时等等用户名/密码认证连接,断开连接,重新连接MQTT客户端到代理的选项将消息从同一MQTT客户端发布到多个主题从同一MQTT客户端订阅多个主题支持单级(+)和多级(#)订阅主题单击即可复制,重新发布有效负载查看已发

  • linux网络随机ip发包工具,三款常用IP发包工具介绍

    linux网络随机ip发包工具,三款常用IP发包工具介绍1.简介在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的TCP/IP协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP包,也很难产生我们想要的错误的IP包,为此,要完成对产品的测试,我们必须自己来制造各种各样错误的IP包,本篇的目的就是介绍如何利用各种发包工具来制…

  • eureka本地集群配置eureka集群

    eureka本地集群配置eureka集群eureka本地集群配置eureka集群server:port:4000spring:application:name:eurkea-servereureka:server:enable-self-preservation:false#关闭自我保护(缺省为打开)eviction-interval-timer-in-ms:5000#扫描失效服务的间隔时间(缺省为60*1000ms)client:

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号