三重缓冲帧数显示的问题?
的有关信息介绍如下:
真正的三重缓冲,必须能够丢弃过期的帧数据,比如Fastsync。这种模式,就是你说的显卡可以不停地作画。因为有两个后缓冲区可以写入数据,且允许后缓冲区的数据在未被显示的情况下直接被覆盖并写入新一帧的数据。
但是大部分DX游戏中的“三重缓冲”选项,其实只是在二级缓冲的基础上增加一个缓冲区而已。和上面的“真三重缓冲”相比,本质的区别是这个模式不能丢弃未显示的帧。后缓冲的两个完成的帧必须排队依次被送到显示器输出。如果你的机器性能强,缓冲区很快会被填满,这时显卡就才会停止渲染。你的FPS当然就不会超过刷新率。然而不主动限帧而“被迫限帧”,是VSYNC带来巨大延迟的主要原因!!!
基于某一次输入数据的一帧被生成后,不能马上传递到前缓冲区并送到显示器输出。如此,最终这些早早就被生成但不能第一时间送到显示器的帧数据被显示出来的时候必然意味这巨大的延迟。除了两个后缓冲的数据外,还有预渲染队列里的数据,一般默认预渲染帧数为3。一些游戏提供调节选项可以减少到1。最差的情况,你会有2(帧缓冲)+10(预渲染队列)帧的可怕延迟。某些为了避免这个问题,垂直同步必须和限帧配合使用,尽量缩小缓存队列。限帧器就是控制单位时间内的生成的帧数,更细化一点讲就是在显卡生成一帧后刻意加入一段停顿时间。这样,通过推迟对一次输入信息的读入,可以减少从一帧被生成到传递到前缓冲区的时间,增加了每一帧的“新鲜度”,从而降低输入延迟。但是,这是个无奈之举,比较彻底的方法需要游戏开发者加入自动且动态的限帧。
然而,绝大多数人根本不懂这个原理,更不知道这个方法,只会无脑抱怨垂直同步延迟巨大



