有关垂直同步的理解和是否开启

来源:互联网 发布:画梁图软件 编辑:程序博客网 时间:2024/05/16 06:41
要想弄懂垂直同步是做什么的,首先要清楚几个东西,一个是显示器显示画面的过程,再有就是显示器刷新率与显卡渲染能力之间的关系。


先说显示器显示画面的过程:先左右,后上下。每一帧画面都是从左上角开始,往右一直到右上角,然后第二行左边开始到右边,然后第三行……直到整个画面显示完成。这个过程是需要时间的。


再来说显示器的刷新率:也就是显示器每秒钟显示的画面(帧)的数量,比如60Hz就是每秒显示60帧,这个值是显示器固有的,不能自由调节(有的显示器有几档可调)。


接下来是显卡渲染能力:在这里指的是显卡在每秒钟里面能渲染出多少帧的画面。这个值基本上就是游戏里显示出来的FPS值。根据游戏的画面设置,是一个浮动值。


然后把这几个东西合起来,看一看画面从显卡渲染出来到显示在屏幕上的这个过程。


首先显示器刷新率是固定的,假设是60Hz,那么这个显示器会每1/60秒就去缓冲区取当前的缓冲区内容,并把这部分内容显示在屏幕上。显示的方法在上面说了。


那么缓冲区的内容是怎么来的呢,是由显卡写进去的。显卡在每渲染完成一帧的时候,就把这一帧写入缓冲区。假设当前这一秒显卡共渲染出来200帧,则总共往缓冲区里写入了200次。


那么这里就存在一个问题,当显卡的渲染速度跟屏幕的刷新率不成倍数关系的时候(60Hz和200FPS),可能会出现问题。比如显示器显示完半个屏幕的时候,显卡往缓冲区里写入了下一帧的内容,这时候显示器取到的另外半个屏幕的内容就跟上半个屏幕不是同一帧了,这就会造成所谓的画面撕裂。


另外这里还存在一个性能浪费问题,即60Hz的显示器每秒只能显示60帧,但是显卡渲染了200帧,则有140帧被浪费掉了,并没有实际显示到屏幕上。


再另外这里还存在一个可能的问题,如果游戏中有某些关键信息出现的时间非常短只有一两帧,但是由于上面的原因,这一两帧被冲掉了,并没有显示到屏幕上,可能会导致游戏BUG。(以前有个游戏出过这种BUG,不过不多见)


这个时候垂直同步就派上用场了。开启垂直同步之后,显示器会在显示完一整个屏幕的内容之后,给显卡发一个同步信号,这个时候显卡才渲染下一帧,这样显卡实际渲染的帧数就不会超过显示器的刷新率,解决了以上的问题。


对于高配电脑(指显卡渲染速度大于显示器刷新率),开垂直同步有助于增加画面稳定性,同时降低功耗,实际帧率与显示器刷新率相同或者是刷新率的倍数。
对于低配电脑(指显卡渲染速度小于显示器刷新率),开启垂直同步后由于还要等待同步信号,加上垂直同步本身消耗,造成实际FPS降低。


所以结论很简单,首先不开垂直同步跑游戏,然后把FPS跟自己显示器的刷新率进行比较。
如果FPS高很多,那就果断开垂直同步,否则就果断不开。
原创粉丝点击