首页 > 技术文章 > 从程序员角度对帧速的解释

QQ122252656 2015-01-07 08:25 原文

帧速是计算机图形学中必须接触的概念,是衡量算法或显卡优劣的重要指标,强调的是计算能力。
官方定义的帧速:动态画面每秒钟展现的帧数,用于衡量视频信号传输的速度,单位为帧/秒(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;                      /**< 将帧数置零 */                   
    }
}

推荐阅读