Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Как подсчитать FPS?   Найти похожие ветки 

 
VolanD666   (2005-11-07 06:27) [0]

Люди, кто знает, как правильно подсчитать FPS, если я использую GetTickCount()? Пожалуйста, с комментариями :-)


 
Фео   (2005-11-07 10:26) [1]

http://www.sulaco.co.za/


 
n85sergey ©   (2005-11-07 11:06) [2]

я так делал
procedure TForm1.OnIdle(Sender: TObject;var Done: boolean);
begin
 if GetTickCount() - LastTime >= 1000 then
 begin
  SetWindowText(Handle,pChar("Fps : "+IntToStr(Fps)));
  LastTime := GetTickCount();
  Fps := 0;
 end;
 Render();
 SwapBuffers(DC);
 Inc(Fps);
Done := false;
end;


 
Фео   (2005-11-07 11:47) [3]

c ООП мона и обычным таймером считать...


 
VolanD666   (2005-11-07 14:29) [4]

Есть код типа:
   Inc(frames);
   ThisTickCount := GetTickCount;
   if ThisTickCount-LastTickCount > 1000/80 then
   begin
     SFPS := "fps= " + Format("%6.2f",
                              [frames * 1000 / (ThisTickCount - LastTickCount)]);
     Draw();
     LastTickCount := GetTickCount;
   end;

Только я его все никак понять не могу...


 
MBo ©   (2005-11-07 15:08) [5]

Логика простая - требуется подсчитать скорость, т.е. количество некоторых событий за 1 секунду.
Если за t секунд прошло n кадров, то FPS=n/t
Поскольку с помощью GetTickCount временной промежуток измеряется в миллисекундах, то  t =/1000
Таким образом,   FPS=n*1000/ (T2-T1)


 
VolanD666   (2005-11-08 14:13) [6]

Упсс.. Маленькая поправочка:
Inc(frames);
ThisTickCount := GetTickCount;
if ThisTickCount-LastTickCount > 1000/80 then
begin
SFPS := "fps= " + Format("%6.2f",
                                 [frames * 1000 / (ThisTickCount - LastTickCount)]);
Draw();
LastTickCount := GetTickCount;
frames:=0;
end;


По идее frames считает количество процедур при которых отрисовка не происходила...А зачем?


 
VolanD666   (2005-11-10 16:47) [7]

MBo :-)



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
15-1148898228
vidiv
2006-05-29 14:23
2006.06.25
"http://www.microsoft.com/rus/getthefacts/topics/ipi.mspx"...


2-1149584453
ttt_111
2006-06-06 13:00
2006.06.25
Написание HELP


6-1140176269
MegaVolt
2006-02-17 14:37
2006.06.25
Как обработать исключения которые генерит TIdFTP?


2-1149319299
Рашид
2006-06-03 11:21
2006.06.25
не получается работа со строкой


15-1148988135
vigo_
2006-05-30 15:22
2006.06.25
Функция перевода рус. сивола в лат.?