Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 01:34   #1
k3rn3l
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 16
По умолчанию Непонятки с FPS

Имеется процедура подсчета FPS CalculateFrameRate(), но работает неправильно, все время выдает результат в районе 64-65 fps, хотя должен выдавать где-то 3-4к кадров, (вертикальную синхронизацию не включал).
Процедура вызывается в процедуре рендеринга FormPaint.
Скорей всего 64-65 это просто количество вызовов процедуры рендеринга, тогда

Вопрос: как грамотно реализовать подсчет FPS реальной производительности видеокарты?

Код:

procedure CalculateFrameRate();
var currentTime:real;
begin
    currentTime := timeGetTime() * 0.001;
    inc(framesPerSecond);
    if(currentTime - lastTime > 1.0)
      then
        begin
            lastTime := currentTime;
            FPS:=framesPerSecond;
            framesPerSecond := 0;
            Form1.Caption:='FPS = ' + IntToStr(FPS);
        end;
end;

{--------------------}

procedure TForm1.FormPaint(Sender: TObject);
begin

CalculateFrameRate();

{
//рендеринг

.....

}
end;
k3rn3l вне форума Ответить с цитированием
Старый 30.01.2011, 09:04   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
хотя должен выдавать где-то 3-4к кадров
Это ещё почему?
_-Re@l-_ вне форума Ответить с цитированием
Старый 30.01.2011, 10:53   #3
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Удалите это сообщение

Последний раз редактировалось anyx; 30.01.2011 в 18:00.
anyx вне форума Ответить с цитированием
Старый 30.01.2011, 13:40   #4
k3rn3l
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Это ещё почему?
3d сцена простая(там один поворачивающийся куб в пространстве)
k3rn3l вне форума Ответить с цитированием
Старый 30.01.2011, 14:05   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
3d сцена простая(там один поворачивающийся куб в пространстве)
Как вы себе представляете отрисовку 3000 фреймов в секунду?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 30.01.2011, 14:15   #6
k3rn3l
Пользователь
 
Регистрация: 09.01.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Как вы себе представляете отрисовку 3000 фреймов в секунду?
Я не имел ввиду отрисовку кадров на монитор, а хотел узнать сколько раз в секунду моя видюха способна обработать 3d сцену (процедуру formPaint). Ясен пень, что отрисовка выше частоты обновления экрана не будет
k3rn3l вне форума Ответить с цитированием
Старый 30.01.2011, 14:54   #7
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Вывод числа fps нужно делать отдельно, лучше отправить в точный таймер с интервалом 1000 мс. В самой процедуре рендера только независимый счетчик.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 30.01.2011, 16:12   #8
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Как вы себе представляете отрисовку 3000 фреймов в секунду?
Помните мою разработку? Тема "3D-шутер" в этом разделе. Так у моего друга на компе (Core 2 Duo) 3500 FPS. А сцена там посложнее куба, с текстурами!

По поводу алгоритма подсчёта FPS - посмотрите мой исходник в теме "3D-шутер" (http://programmersforum.ru/showthrea...t=83393&page=5). Смотрите класс TInput в модуле UInput, в процедуре FormIdle. Там в поле класса FFPS каждую секунду заносится кол-во FPS.
anyx вне форума Ответить с цитированием
Старый 30.01.2011, 16:16   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Так у моего друга на компе (Core 2 Duo) 3500 FPS
1)Этого не может быть.
2)Уровень FPS не зависит от процессора.
3)От процессора зависит скорость просчёта сцены.
4)Уровень FPS зависит от монитора.
5)Уровень FPS зависит от видеокарты.
6)Если видеокарта очень слабая, то никакой процессор(даже Core i7) не поможет.
7)Если видеокарта очень сильная,то она может компенсировать слабый процессор.
_-Re@l-_ вне форума Ответить с цитированием
Старый 30.01.2011, 16:43   #10
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Пункт 4 лишний, ...если так категорично мыслить, если вдруг лучевая трубка с ее обновлением 100 Гц, то это слабое звено в системе Core 2 Duo 3GHz + GeForce 8600 GT? ...ничего подобного, как выдавал 200-400 fps на сложных игровых сценах, так и выдает. А если ЖК? ...он не моргает.

FPS - показатель того, сколько раз в секунду система успевает обработать и вывести на экран сцену. Если я искусственно введу стробирование в монитор на уровне 5 Гц, это не будет означать, что в данный момент 5 fps.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL проблема с подсчетом FPS AS10 Мультимедиа в Delphi 4 15.09.2009 21:17
Лимиты FPS? VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 28 07.09.2009 21:49
Как улучшить fps ? minatavr84 Компьютерное железо 2 26.03.2009 23:59
FPS Creator SaiLight Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 12.01.2009 09:57
Почему кп показывает низкий fps??? Samec_92 Компьютерное железо 11 18.12.2008 20:38