Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: ethernet en 01 de Enero de 1970, 01:00:00 AM

Título: FPS estables
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                ahora calculo los fps de la siguiente forma:


while(bQuit){



         t2=fps.GetTime();

  sprintf(Title,"fps: %lf",1.0/(t2-1));

  t1=t2;

  SetWindowText(hWnd,Title);

     

     if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){

   if (msg.message == WM_QUIT){

                  bQuit = TRUE;

   }

          else{

             TranslateMessage(&msg);

             DispatchMessage(&msg);

          }



     }

     Draw(hDC);  

         

     

 }


donde fps es un contador simple(usa QueryPerformanceCounter). Pero la cifra de fps varia mucho, no se queda estable.
Saludos

[EDIT: no hay ninguna manera de poner codigo como en flipcode?]


[ Este Mensaje fue editado por: ethernet el 2002-08-06 04:18 ]

[ Este Mensaje fue editado por: ethernet el 2002-08-06 04:21 ]                                
Título: FPS estables
Publicado por: Drácula en 01 de Enero de 1970, 01:00:00 AM
                                Es que tu no cuentas cuantos frames llevas!!

Mira, este es mi código:

      float fTime = Merlin.m_Timer.TiempoAbsoluto();

      m_TiempoActual=fTime;

      if(m_TiempoAnterior==0) m_TiempoAnterior= fTime;

      m_Frames++;

      // Actualizamos una vez por segundo
      if( fTime - m_TiempoAnterior > 1.0f ) {

         m_FPS    = m_Frames / (fTime - m_TiempoAnterior);
         m_TiempoAnterior = fTime;
         m_Frames  = 0L;
                               
Título: FPS estables
Publicado por: ethernet en 01 de Enero de 1970, 01:00:00 AM
                                si, se me ocurrio ayer una solucion muy similar a la tuya :


#define REFRESH 0.5

void FrameRate(HWND wnd){

static CTimer Tfps;

static unsigned int fps;

char p[32];

static double t1,t2;

t2=Tfps.GetTime();

fps++;

if(t2-t1>=REFRESH){

 t1=t2;

 sprintf(p,"fps: %f",(float)(fps/REFRESH));

 SetWindowText(wnd,p);

 fps=0;

}

}


Muchas gracias :ojo:
                               
Título: FPS estables
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Yo me he dado cuenta en mis experiencias que con OpenGL me da unos FPS más o menos constantes, y con Direct3D son más variables. ¿?
                               
Título: FPS estables
Publicado por: Tei en 01 de Enero de 1970, 01:00:00 AM
                                mas inestables?
quizas el "peso" de cada funcion varie mucho, y
cosas que creas se hacen por tarjeta se hacen en modo soft por el driver, decelerando o acelerando la ejecucion segun si a DX le toca hacer algo de esto. Mientras que OpenGL es mas "ensambladoriano" y todas las instrucciones son "sencillas". OpenGL es un ventilador de pologonos :riendo:, lo juro.                                
Título: FPS estables
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                ¿?
                               
Título: FPS estables
Publicado por: Cronodragón en 01 de Enero de 1970, 01:00:00 AM
                                ¿Ventilador de polígonos? Yo también: ¿ ? :riendo:                                
Título: FPS estables
Publicado por: jpastor en 01 de Enero de 1970, 01:00:00 AM
                                Nunca viene mal ventilarlos ahora en verano con el calor que hace :riendo:

¿o te refieres a algo sexual? :lengua:                                
Título: FPS estables
Publicado por: samsaga2 en 01 de Enero de 1970, 01:00:00 AM
                                Puedes decir lo que quieras pero es mucho mas moderno un aire acondicionador de poligonos que uno ventilador. :jaja:                                
Título: FPS estables
Publicado por: Lord Trancos en 01 de Enero de 1970, 01:00:00 AM
                                Ahora en veranito lo mejor pa refrescar es un granizado de poligonos :sonriendo: Y cuando hace frio, la sopita de poligonos de toda la vida :riendo: