




















FPS是Frame per second的缩写,即每秒的帧数.这一术语广泛的应用于计算机图形学,视频采集,游戏等。
这里主要介绍一下视频游戏中的帧率,第一个First person shooter game的帧率只有大概6FPS,但是依然很成功。不过随着硬件设备,尤其是显卡性能的加强,现在游戏的帧率一般在30FPS~100FPS之间。由于每帧图像所消耗的时间不一样,造成帧率是在不断变化的,所以每个游戏都会设定一个最大的帧率,以保证平滑的切换。
下面就以一段QT中的代码介绍一下帧率的计算。
// Timing...
static QTime time;
static int frames = 0;
static bool started = false;if (!started || time.elapsed() > 1000) {
qreal fps = frames * 1000. / time.elapsed();
if (fps == 0)
m_current_fps = "counting fps...";
else
m_current_fps = QString::fromLatin1("%3 FPS").arg((int) qRound(fps));
time.start();
started
}
else {p.setOpacity(
1);由于一般实时的游戏都已一个定时器不断地刷新画面,所以每一帧的输出都是通过paintEvent来完成的。将上面这段代码放入paintEvent就可以统计出每秒的帧率。
那么怎么控制最大的帧率呢?
其实也很简单,就是通过设置定时器的interval来完成的,考虑到现在显示器的显示频率一般在60HZ,所以interval一般设置为1000/60ms 比较好,即60FPS是一个理论上最大的帧率。
posted on 2010-02-04 15:05 chinese_submarine 阅读(12123) 评论() 收藏 举报
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。