我正在使用两个计时器
Timer1.Interval = 1;
Timer2.Interval = 1000;
var
FPS: Integer = 0;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(FPS);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Caption := IntToStr(FPS) + 'FPS';
FPS := 0;
end;
我得到65 FPS。
计算FPS(每秒帧数)的最准确和最准确的方法是什么?
答案 0 :(得分:2)
您不在此计算FPS。此代码计算每秒1 ms周期Windows计时器的事件。请注意,对于Window计时器,1毫秒的周期太短,因为典型的Windows响应时间(不知道它的确切英文单词)是10-20毫秒(65个事件= ~15毫秒)。因此,在Windows中,您可以精确地测量时间间隔,但要保证事件触发的准确时间要困难得多。
要计算FPS,您必须在准确测量的时间内计算所需的事件(阅读有关QueryPerformanceCounter函数等)。