2Pascal-新时代的Pascal

标题: [分享] 计算 FPS 范例 [打印本页]

作者: OneChen    时间: 2015-6-18 09:40
标题: [分享] 计算 FPS 范例
[mw_shl_code=delphi,true]var
    FTimerService: IFMXTimerService;
    FFrameCount: Integer;
    FFPS, FRenderTime, FBeginTime, FEndTime: Extended;

procedure TForm1.FormCreate(Sender: TObject);
begin
     if FTimerService = nil then
        if not TPlatformServices.Current.SupportsPlatformService(IFMXTimerService, FTimerService) then
           raise EUnsupportedPlatformService.Create('IFMXTimerService');
end;

procedure TForm1.BeginScene;
begin
     if FTimerService <> nil then
        FBeginTime := FTimerService.GetTick;
end;

procedure TForm1.EndScene;
begin
     if FTimerService <> nil then
     begin
          FEndTime    := FTimerService.GetTick;
          FRenderTime := FRenderTime + (FEndTime - FBeginTime);
          FFrameCount := FFrameCount + 1;

          if (FFrameCount > 10) and (FRenderTime > 0) then
          begin
               FFPS        := FFrameCount / FRenderTime;
               FRenderTime := 0;
               FFrameCount := 0;
          end;
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     TThread.CreateAnonymousThread(
     procedure
     var i: Integer;
     begin
          try
                 for i:=0 to 100 do
                 begin
                      BeginScene;

                      TThread.Synchronize(TThread.CurrentThread,
                      procedure
                      begin
                           
//----------------------------------------
// 显示代码写在这里
//----------------------------------------

                           Label1.Text := FFPS.ToString;
                      end);

                     EndScene;
                 end;
          finally
          end;
     end).Start;
end;[/mw_shl_code]

作者: ljflch    时间: 2015-6-18 09:42
标记备用
作者: wang_80919    时间: 2015-6-18 09:46
已收藏

FPS(每秒传输帧数(Frames Per Second))编辑
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数 愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”。我们在装机选购显卡和显示器的时候,都会注意到“刷新率”。一般我们设置缺省刷新率都在75Hz(即75帧/秒)以上。例如:75Hz的刷新率刷也就是指屏幕一秒内只扫描75次,即75帧/秒。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁,不连贯,对图像显示效果和视觉感观产生不好的影响。
电影以每秒24张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24张静止画面。有关动画播放速度的单位是fps,其中的f就是英文单词Frame(画面、帧),p就是Per(每),s就是Second(秒)。用中文表达就是多少帧每秒,或每秒多少帧。电影是24fps,通常简称为24帧。
作者: wang_80919    时间: 2015-6-18 09:46
已收藏

FPS(每秒传输帧数(Frames Per Second))编辑
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数 愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”。我们在装机选购显卡和显示器的时候,都会注意到“刷新率”。一般我们设置缺省刷新率都在75Hz(即75帧/秒)以上。例如:75Hz的刷新率刷也就是指屏幕一秒内只扫描75次,即75帧/秒。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁,不连贯,对图像显示效果和视觉感观产生不好的影响。
电影以每秒24张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24张静止画面。有关动画播放速度的单位是fps,其中的f就是英文单词Frame(画面、帧),p就是Per(每),s就是Second(秒)。用中文表达就是多少帧每秒,或每秒多少帧。电影是24fps,通常简称为24帧。




欢迎光临 2Pascal-新时代的Pascal (http://2pascal.com/) Powered by Discuz! X3