Форум: "Игры";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизКак подсчитать 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c