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帧以上时,我还是建议大家开启垂直同步的,毕竟开启垂直同步虽然会锁帧而且增加画面延迟,但大家眼里对画面撕裂的感知还是要比手上那十几毫秒的延迟强得多的,不过有些游戏在三重缓冲下的画面延迟会非常高,那种情况还是把它关了吧。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux的rwx权限,linux权限管理:rwx

    linux的rwx权限,linux权限管理:rwx标签:rwx权限管理简介:r,w,x对文件及目录进行权限管理,从而达到文件及目录管理。1、rwx对于文件而言:r:可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x:可执行,exacutable,可以命令提示符下当作命令提交给内核运行;2、rwx对于目录而言:r:可以对此目录执行ls以列出内部的所有文件;w:可以在此目录创建文件;x:可以使用cd切换进此目录,也可以使用…

    2022年6月10日
    60
  • django mysqlclient_MySQL无法安装

    django mysqlclient_MySQL无法安装mac系统安装mysqlclient时,会报错OSError:mysql_confignotfound解决办法在项目路径下输入以下内容PATH="$PATH":/usr

    2022年7月31日
    1
  • 架设私有的Git服务器[通俗易懂]

    架设私有的Git服务器[通俗易懂]Git是一个版本控制系统,现如今正在被全世界大量开发者使用。许多公司喜欢使用基于Git版本控制的GitHub代码托管。根据报道,GitHub是现如今全世界最大的代码托管网站。GitHub宣称已经有920万用户和2180万个仓库。许多大型公司现如今也将代码迁移到GitHub上。甚至于谷歌,一家搜索引擎公司,也正将代码迁移到GitHub上。GitHub能提供极佳的服务,但却有一些限制,尤其是你是单人或是一名coding爱好者。GitHub其中之一的限制就是其中免费的服务没有提

    2022年9月26日
    0
  • 数据挖掘十大经典算法个人总结

    数据挖掘十大经典算法个人总结数据挖掘十大经典算法个人总结这两年对数据挖掘相关知识研究运用的已经很多了,最近看了关于数据挖掘十大经典算法的文章。想对其进行一个总结,强化下自己对这些算法的理解。1.C4.5C4.5是基于ID3算法改进的决策树算法。相对于ID3,其伪代码:它具有的特点:1)用信息增益率来选择属性信息增益会偏向选择取值多的属性,而信息增益率除以H(v)来削弱

    2022年5月5日
    83
  • 2022idea激活码【2021.10最新】

    (2022idea激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3YVYA7ZZGQ-eyJsaWNlb…

    2022年3月30日
    95
  • HMM超详细讲解+代码[通俗易懂]

    HMM超详细讲解+代码[通俗易懂]写在前面本文目标Why-什么场景下需要HMM模型What-HMM模型的相关概念定义HMM模型的5元组HMM中的3个经典问题How-HMM模型中的3个经典问题评估评估描述评估理论推导评估实际算法前向计算python前向算法代码预测预测描述维特比算法python维特比算法代码学习EM算法实例理解baum-welch算法的思路python代码baum-w

    2022年10月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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