Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [DirectX] FPS, пару вопросов 
V
    Опции темы
FelikZ
  Дата 3.4.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



1. Как можно контролировать ФПС например что бы он у меня был всегда не более 100 или 200 например.
2. Как узнать какой именно ФПС у меня сейчас? я для этого использую отдельную прогу скачаную с инета, а хотелось бы самому научиться выводить его.


--------------------
user posted image
PM WWW ICQ Skype   Вверх
MrCherry
Дата 3.4.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 31.5.2006

Репутация: нет
Всего: нет



предположу, что фпс можно узнать так:
замерить время между прорисовкой текщего и предыщего кадра и поделить секунду на это.
типо если кадр отрисовался за 0.02 с - то 1/0.02 = 50 fps. 

Это сообщение отредактировал(а) MrCherry - 3.4.2007, 13:34
PM MAIL   Вверх
FelikZ
Дата 3.4.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



MrCherry, ок попробую, а как регулировать это значение? Пробывал через Sleep но понел что эт нето.... 


--------------------
user posted image
PM WWW ICQ Skype   Вверх
MrCherry
Дата 3.4.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 31.5.2006

Репутация: нет
Всего: нет



предположу, что если кадр отрисовался за 0.01 с, а нужно 50 фпс - подождать 0.02 - 0.01 = 0.01 с 
PM MAIL   Вверх
FelikZ
Дата 3.4.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Цитата(MrCherry @  3.4.2007,  14:46 Найти цитируемый пост)
подождать 0.02 - 0.01 = 0.01 с 

пробывал там оно как то по кривому получается - все тупить начинает, а некоторые сообщения вобще до окна доходить начинают поздно.

Нарыл кое что - в начале при создании девайса у парамтров есть PresentationInterval который у меня устанавливается в значения:
D3DPRESENT_INTERVAL_ONE == FPS где-то в пределах 70
D3DPRESENT_INTERVAL_IMMEDIATE == FPS 700-1000.

а чего-то между вобще нету :(


--------------------
user posted image
PM WWW ICQ Skype   Вверх
ShumaHerr
Дата 5.4.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Я это делаю так:
В начале главного цикла:
Код

DWORD start_time=GetTickCount();
Вывод кадра...
while((GetTickCount()-start_time)<33);//33 это FPS

PM MAIL WWW   Вверх
FelikZ
  Дата 12.4.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



MrCherry, ShumaHerr, спасибо,это работает если делать в отдельном потоке



--------------------
user posted image
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.