Такая вот проблема: нужен код высокоточного таймера. Желательно на С/С++.
ЗЫ: для написания игрового движка.
[Ответ]
The_God 00:32 15.05.2008
а че с обычным TimeGetTime fps скачет ? так вазми 100 его значений последних да и усредни, и будет тебе счастье локальное, и вабще это не та задача в написании движка изза которой стоит так парится и лесть на форум конечно это если не единственная функция движка считать свой fps.
[Ответ]
xxx-men 10:39 15.05.2008
Сообщение от The_God:
а че с обычным TimeGetTime..
ды ему вроде как под линукс надо...
Сообщение от The_God:
fps скачет ? так вазми 100 его значений последних да и усредни
это не лечение, а замазывание симптомов...
[Ответ]
xxx-men 11:18 15.05.2008
zolo, datetime.mp3это zip файл, возможно тут что то будет...
Изображения
The_God, вообще таймер мне нужен не только fps считать.. Кстати, вопрос задал на 3-х форумах и ответа пока не нашел. Думаю вот в OGRE в исходниках посмотреть как они реализовали это.
Нашел 4 функции (sleep, usleep, select и nanosleep), но они всего лишь предлагают откладывание процессов на время, не то..
Да, все таки информации о кодинге игр для винды реально много, а вот под линукс - проблема..
[Ответ]
xxx-men 15:35 15.05.2008
Сообщение от zolo:
Думаю вот в OGRE в исходниках посмотреть как они реализовали это.
Сообщение от xxx-men:
ды ему вроде как под линукс надо...
это не лечение, а замазывание симптомов...
игры это обман, желательно чтобы это был красивый обман.
ps вы замечали что внутри модели главного героя нет мозга ? [Ответ]
The_God 00:04 16.05.2008
ладно, раскажи для чего тебе точность то такая нужна ? мож движок надо писать а не заморачиваться по ерунде ? эт я так.. просто вот думаю .. зачем ну там длительность кадра посчитать.. этож то что я написал про среднее значение этого заглаза хватит.
хотя можно конечно придумать проблему, а потом мужественно её решать, это твой путь ? или ты всётаки движок пишиш ?
огр кстати не движок, а просто рендерилка, причем тормозная шопипец
[Ответ]
xxx-men 08:02 16.05.2008
The_God, то есть, ты утверждаеш что, в игровом движке знать время совсем не нужно?
запусти первый warcraft, там наглядно увидиш зачем нужно на время смотреть....
а еще бывают анимации когда одна картинка плавно переходит в другую (чем не фишка движка?)...
а еще бывает физика.....
а еще ......
Сообщение от The_God:
этож то что я написал про среднее значение этого заглаза хватит.
хватит, но нету в линуксах timeGetTime(), (как я думаю)
не нужна ему атомная точность, милисекунд достаточно, чел просто задал вопрос "как померить время в линуксах?"
[Ответ]
zolo 08:22 16.05.2008
The_God, ды я и не замарачиваюсь, пишу пока другие части, просто знааю что время придет и до таймера.. решу сейчас эту проблему - при написании таймера не надо будет время терять.
[Ответ]
The_God 13:30 16.05.2008
Сообщение от xxx-men:
The_God, то есть, ты утверждаеш что, в игровом движке знать время совсем не нужно?
я немоного другое сказал
Сообщение от The_God:
вазми 100 его значений последних да и усредни
этого достаточно для
Сообщение от xxx-men:
а еще бывают анимации когда одна картинка плавно переходит в другую (чем не фишка движка?)...
а еще бывает физика.....
а еще ......
значит она подругому называется, rtfm по линуху
[Ответ]
Akad 22:58 16.05.2008
zolo,Для начал может пойти RDTSC. Хотя на буках будет давать некую ээээ.... погрешность.
А вообще в линухе ТОЧНО есть аналог QueryPerfomanceCounter. На вскидку не помню, гуглить надо.
P.S. Если у тебя возникают такие простейшие вопросы, то подумай, может быть тебе рано еще писать игровой движок? Тем более под линукс. Под совершенно не игровую платформу?
[Ответ]
xxx-men 02:21 17.05.2008
Сообщение от Akad:
А вообще в линухе ТОЧНО есть аналог QueryPerfomanceCounter
обязательно дожно что-то быть..
Сообщение от Akad:
Тем более под линукс. Под совершенно не игровую платформу?
ды поидее разницы нет, только под винду инфу больше...
и еще , пАчИмУ линуксы не игровая платформа, opengl вродебы никто не отменял...
[Ответ]
zolo 07:13 17.05.2008
Akad,
Сообщение от :
P.S. Если у тебя возникают такие простейшие вопросы
Простейший вопрос, но пока никто не ответил.. между прочим не только на этом форуме.
[Ответ]
Dimbass 08:08 17.05.2008
zolo, можт я не шарю, и подскажите если вдруг чо не так, а Cron разве не подойдёт?
[Ответ]
zolo 09:16 17.05.2008
Dimbass, cron — демон-планировщик задач в UNIX-образных операционных системах, использующийся для периодического выполнения заданий в заданное время.
А мне нужно самому реализовать в своем коде таймер, ды и тем более у крона точность до минуты.
[Ответ]
Сообщение от :
For times accurate to one second, it is probably easiest to use time(). For more accurate times, gettimeofday() is accurate to about a microsecond (but see above about scheduling).
набросал примерчик:
int main()
{
struct timeval tv1,tv2;
struct timezone tz;
int p=gettimeofday(&tv1,&tz);
int i;
for (i=0;i>=50000000000000;i++)
{
asm("nop\n");
}
gettimeofday(&tv2,&tz);
printf("Errors: %d\nmicroseconds: %d\n",p,tv2.tv_usec-tv1.tv_usec);
}
[Ответ]
zolo 10:41 17.05.2008
Pengvin, temp.c: In function ‘main’:
temp.c:8: error: storage size of ‘tz’ isn’t known
Вообщем не компилируется
[Ответ]
The_God 10:49 17.05.2008
Сообщение от zolo:
ростейший вопрос, но пока никто не ответил..
я ответил
более того такой способ используется в зарелизиних коммерческих играх как минимум в 2 так что утверждать что он не работает низя
[Ответ]
Pengvin 11:55 17.05.2008
zolo, вобщем надо было #include <sys/time.h> добавить. man gettimeofday
[Ответ]
zolo 12:23 17.05.2008
Pengvin, понятно теперь.
Спасибо.
Я добавлял просто #include <time.h>
[Ответ]