Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[haddd] Timer Para Cálculo De 'frames Per Second'

Iniciado por Topper, 01 de Diciembre de 2004, 04:26:53 PM

« anterior - próximo »

Topper

 Hola Haddd, he estado probando el Timer que utilizas con el motor en C# para el cálculo de frames por segundo, y no sé qué coño estaré haciendo mal puesto que siempre me retorna en modo Windowed unos 70 frames por segundo, dando igual que renderice mis objetos con tropecientos triángulos o que simplemente haga un clear del Device a cada Frame y muestre la estadística de frames.  (nooo)

El caso es que aunque aumente el tamaño de la ventana no se aprecian diferencias significativas en el cálculo de frames. Sabes a qué puede ser debido?

yo inicio el timer tal que así:


[STAThread]
static void Main()
{
using (Form1 frm = new Form1())
{
 frm.Show();
 Timer.Start();
 while(frm.Created)
 {
  frm.Render();
  Application.DoEvents();
 }
 Timer.Stop();
}
}


y actualizo estadísticas después de cada Device.Present()


//inicio de la escena
DXManager.device.BeginScene();

//dibujo frames por segundo mediante un Font y DrawText
myFont.DrawText(null, "FPS: "+estadisticas.stringFps, new Rectangle(20,10,140,30), DrawTextFormat.Left, Color.Red);


//fin de la escena
DXManager.device.EndScene();

//mostramos resultado
DXManager.device.Present();

estadisticas.Actualizar();



Sabes qué demonios puede estar ocurriendo?

PD: No utilizo el FrameWork de tu motor sino que he adaptado la clase Timer del mismo y la struct Estadísticas a mi programa de testeo.

Saludos y gracias.

fiero

 ¿Tienes configurado el refresco de tu monitor a 70 Hz y además utilizas la sincronización en tu device?

Si la respuesta es sí, prueba a desactivar la sincronización con el retrazo vertical utilizando:

D3DPRESENT_INTERVAL_IMMEDIATE en el campo PresentationInterval de la estructura D3DPRESENT_PARAMETERS cuando llamas a IDirect3D9::CreateDevice

un saludo
www.videopanoramas.com Videopanoramas 3D player

Topper

 joder Fiero, me has pillao. Eres un FIERA, colega!  (ole)  

Haddd

 aunque el motor se llame Haddd, no lo estoy haciendo yo solito, hay más gente implicada. De hecho, aunque el timer sí era algo mio, Berserker lo ha mejorado y modificado y en la nueva versión utilizamos el suyo.

Pero bueno, que me hace ilusión que alguien mire el motor para utilizar cosas de él. :P

Pronto una nueva versión... O_O  

Topper

 Sí, ya sé que estáis varios coders con el motor, pero así llamaba tu atención en el Post  :P

Estuve utilizando en principio el que trae el FrameWork de DirectX para C# pero éste me parece más logrado. Good Job  ;)

Al fin he podido saber a cuántos 'fps' me rulaba el endemoniado algoritmo Geomipmapping que estoy codificando. Actualmente, con una textura, a unos 220 fps en ventana 1024*768 y con corrección de cracks (Ati Radeon 9200).  (twist)

Saludetes.

Haddd

 ¿y porqué no añades tu código al motor ? No tenemos nada de terrenos y puede ser una aportación muy valiosa para ambas partes.

Topper

 
Citar
¿y porqué no añades tu código al motor ? No tenemos nada de terrenos y puede ser una aportación muy valiosa para ambas partes.

Pues no me importaría. El caso es que estoy desarrollándolo para la empresa en la que trabajo y no puedo publicar código  :ph34r:

De todos modos, si decidís desarrollar sobre el tema de terrenos con Geomipmaps y os puedo echar una mano con posibles optimizaciones o desarrollo del algoritmo, no habría problema. Astat, otro miembro del foro, al parecer también ha desarrollado sobre este tema. Quizá él también os pueda aconsejar como lo hizo conmigo.

Saludos,






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.