FPS概念的理解

来源:互联网 发布:红叶预算软件 编辑:程序博客网 时间:2024/04/28 20:56
最近才明白FPS的作用,以及为什么需要FPS的概念,真是笨得可以了!

之前虽然知道FPS就是每秒游戏刷新的次数,可能由于早期游戏的设计思想,
一直想不明白为什么同一个游戏FPS不一样,但是出来的效果却一样!
因为如果FPS不一样的话,那么调用游戏主循环的次数不就不一样了吗.
既然运算的次数不一样,那么运算的结果为什么会一样呢?

大多数的游戏通常有个叫游戏循环的东东.
而在这里面:
float pass_time = GetCurrentTime() - GetOldTime()
GetInput
UpdateGame(float pass_time)
DrawGame()
Flip ()


原来关键在于,游戏中的主循环,它用的是游戏中的统一时间.
也就是说在UpdateGame中 运行一次UpdateGame(10.0f),
与循环10次运行UpdateGame(1.0f) 其效果应该是一样地。
理论上来说,机器是没法确保这点。因此,这点就必须由程序员来确保罗!

而这种简单的道理之所以转不过来应该是在我潜意识中认为浮点数不可靠,
以及我游戏中的时间都是一帧为单位而不是以一个时间为单位的关系。
但是,这点担心并不无根据,因为精度方面的问题.假设我用1.0f表示为秒,游戏运行不了多少
时间这点精度就会不够用。因此总时间我应该设为double,而其中的pass_time应该是在0.0f ~ 1.0f
这个范围内的值的话,精度就可以接收了。


再套用众所周知的事情,机器性能越好,一般来说游戏的FPS就越高。
fps越高,画面就越流畅。就很容易理解了。
 
原创粉丝点击