|
发表于 2011-1-16 20:12:00
|
显示全部楼层
Re: Re: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面
TV游戏: Re: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕裂的感觉?
2倍缓冲下的垂直同步,FPS只能是60或30或15。
但是
3倍缓冲下的垂直同步,FPS达到40帧是很正常的。这就是3倍缓冲的意义。
我觉得不谈什么3倍缓冲,游戏也可以运行在30~60之间的某个帧数。
我们假设屏幕刷新率是60Hz,那么每16.6(6)ms收到一个刷新信号
如果有一个游戏它每帧的耗时在16.6~16.7 ms之间分布,不妨假设的更简单一些,就按照16.6,16.6,16.7, 16.6,16.6,16.7,这样的规律重复好了,
那么在开启垂直同步的情况下,游戏第一帧耗时16.6<16.6(6),调用Present的时候阻塞等待刷新信号到16.6(6)翻转然后返回,实际这一帧的用时是16.6(6),第二帧同样16.6(6),第三帧,16.7>16.6(6),错过了一个刷新信号,因此阻塞直到下一个刷新信号,实际用时是16.6(6)*2 = 33.3(3)。
这3帧的总用时是66.6(6) ms,那么一秒钟可以有 1000 / 66.6(6) = 15 个这样的3帧,就是45帧。
也就是说在开启垂直同步的情况下上面描述的这个游戏会以45帧运行。
如果调整每帧耗时的概率分布也可以出现其他的帧数。 |
|