[ kish @ 02.08.2007. 13:05 ] @
Pokusao sam da napravim proceduru za izracunavanje FPS-a na sledeci nacin: Code: #include <time.h> int fps_tprev=0; float fps_FPS=0; int TimeForFrame() { int res,clck; clck=clock(); res=clck-fps_tprev; fps_tprev=clck; return res; } float CalcFPS() { fps_FPS=1000.0f/(float)TimeForFrame(); return fps_FPS; } Funkcija TimeForFrame() bi trebalo da izracunava vreme potrebno za iscrtavanje jednog frame-a, dok CalcFPS() na osnovu toga racuna FPS. Koliko sam ja razumeo clock() bi trebalo da vrati broj milisekundi koji je prosao od pokretanja programa (Calculates the processor time used by the calling process). Problem je u tome sto kad ovo stavim u vremensku petlju (prazan OpenGL screen sa nekim textom - FPS-om), TimeForFrame vraca ili 10 ili 20.. retko kad nesto drugo (11,21). To kad se primeni na CalcFPS, logicno da se dobija FPS od 50 ili FPS od 100, sto je, medjutim, jako neprecizno. Pitanje je da li sam ja uopste pravilno koristio ovu funkciju i, ako ne, da li postoji neki precizniji nacin da se ovo izvede? |