游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3244|回复: 6

弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕

[复制链接]

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2011-1-11 14:08:00 | 显示全部楼层 |阅读模式
把游戏的FPS限制到50帧.这个时候画面有很明显的水波纹的感觉.我看有些游戏的FPS也是40~50帧左右,就没有画面撕裂或者水波纹的感觉,不知道是怎么做到的?

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-11 18:25:00 | 显示全部楼层

Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕

禁用,则撕裂。
启用,则完整。
君欲禁用且求完整,恐怕,难。

所谓“FPS也有40~50帧左右,就没有画面撕裂的感觉”,可能是
开启“垂直同步 + 三倍缓冲”的功劳。

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
 楼主| 发表于 2011-1-11 20:14:00 | 显示全部楼层

Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕

开启垂直同步FPS怎么可能40~50呢?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2011-1-11 23:49:00 | 显示全部楼层

Re: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没

LoveDelphi: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕裂的感觉?

开启垂直同步FPS怎么可能40~50呢?


可能啊,开启垂直同步以后,fps和垂直同步刷新率是<=的关系

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-12 00:40:00 | 显示全部楼层

Re: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没

LoveDelphi: Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕裂的感觉?

开启垂直同步FPS怎么可能40~50呢?

2倍缓冲下的垂直同步,FPS只能是60或30或15。
但是
3倍缓冲下的垂直同步,FPS达到40帧是很正常的。这就是3倍缓冲的意义。

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-13 18:40:00 | 显示全部楼层

Re:弱弱的问一句,禁用垂直同步时如何保证游戏画面没有撕

2

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 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帧运行。
如果调整每帧耗时的概率分布也可以出现其他的帧数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-6 11:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表