帧速是计算机图形学中必须接触的概念,是衡量算法或显卡优劣的重要指标,强调的是计算能力。
官方定义的帧速:动态画面每秒钟展现的帧数,用于衡量视频信号传输的速度,单位为帧/秒(fps)。
程序员角度就是下面的代码,大体意思就是一秒钟内执行了多少次大循环,这里的CaculateFrameRate()
方法更像是一个哨兵,每渲染一次,就调用一次这样的代码。
/** 计算帧速 */
void CameraRove::CaculateFrameRate()
{
static float framesPerSecond = 0.0f; /**< 保存显示帧数 */
static float lastTime = 0.0f; /**< 记录上次时间 */
float currentTime = GetTickCount() * 0.001f; /**< 获得当前时间 */
++framesPerSecond; /**< 显示帧数递增1 */
/** 如果时间差大于1.0秒 */
if(currentTime - lastTime > 1.0f ) //超过一秒就归零,此刻的帧速就是framesPerSecond的值
{
lastTime = currentTime; /**< 保存当前时间 */
m_Fps = framesPerSecond; /**< 当前帧数传给m_Fps */
framesPerSecond = 0; /**< 将帧数置零 */
}
}