Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Vandalism en 06 de Mayo de 2008, 03:31:35 AM

Título: sincronizando con ogl
Publicado por: Vandalism en 06 de Mayo de 2008, 03:31:35 AM
que funcion podria usar para lograr sincronizmo con ogl? alguna sugerencia?
Título: sincronizando con ogl
Publicado por: tamat en 06 de Mayo de 2008, 11:16:29 AM
por sincronizmo no me viene nada. Puedes ser más especifico?
Título: sincronizando con ogl
Publicado por: Vandalism en 06 de Mayo de 2008, 01:45:46 PM
lo que quiero es que mi juego se ejecute a la misma velocidad en diferentes CPU's. Alguna idea?
Título: sincronizando con ogl
Publicado por: Pogacha en 06 de Mayo de 2008, 02:34:58 PM
Podes empezar por aca:
http://www.mvps.org/directx/articles/writing_the_game_loop.htm

y luego seguir por aca:
http://dewitters.koonsolo.com/gameloop.html
Título: sincronizando con ogl
Publicado por: Elvis Enmanuel en 06 de Mayo de 2008, 03:00:09 PM
wglSwapIntervalEXT(1);
Título: sincronizando con ogl
Publicado por: tamat en 06 de Mayo de 2008, 04:10:21 PM
en SDL lo suelo arreglar con:
//update logic
double elapsed_time = (SDL_GetTicks() - last_time) * 0.001; //0.001 converts from milliseconds to seconds
last_time = SDL_GetTicks();
update(elapsed_time );


De esta manera la función update recibe por parametro cuantos segundos han transcurrido lo que sirve para actualizar la escena del mismo modo sin importar la velocidad de la CPU del PC.

Pero seguro que encontraras información más util en el enlace de pogacha.
Título: sincronizando con ogl
Publicado por: Prompt en 06 de Mayo de 2008, 08:14:52 PM
Lo suyo es, procesar siempre el motor al mismo dt, y si sobra tiempo dormir el hilo n milisegundos.
Título: sincronizando con ogl
Publicado por: Prompt en 06 de Mayo de 2008, 08:15:15 PM
En http://dewitters.koonsolo.com/gameloop.html lo explica bien :)
Título: sincronizando con ogl
Publicado por: AK47 en 07 de Mayo de 2008, 08:28:09 AM
Dormir el hilo? No se yo... el sleep ese no es muy de fiar que digamos. Aparte que suena un poco a herejia, no?  :lol:
Título: sincronizando con ogl
Publicado por: Prompt en 07 de Mayo de 2008, 09:57:31 AM
Pues no, necesitas no saturar el micro para que los otros procesos acaben a tiempo.

Tienes el hilo de render y procesado por un lado, acabas y duermes hasta que cumplas el tiempo del frame para que se procesen a 25-60 fps.

Mientras se ha procesado y enviado a la tarjeta los datos si tenemos, yo que se... 100ms libres, y tienes otro hilo que aun está procesando la fisica ( trayectorias, colisiones... ) al dormir el hilo del procesado y renderizado, dejas "todo" el micro libre para que el hilo de fisica termine los calculos.

Y así podriamos complicarlo aún más...

Si solo quieres 60 fps, para que quieres procesar y renderizar 300 ? para nada... entonces desaprobechas el micro y lo saturas cuando podrias estar calculando otras cosas.
Título: sincronizando con ogl
Publicado por: AK47 en 07 de Mayo de 2008, 12:40:33 PM
Me ha descubierto mi mentalidad monohilo! Dicho asi si, tiene logica para que otros hilos del programa pueden chupar de la CPU :)
Título: sincronizando con ogl
Publicado por: ethernet en 07 de Mayo de 2008, 07:59:44 PM
http://www.flipcode.com/archives/Main_Loop_with_Fixed_Time_Steps.shtml