que funcion podria usar para lograr sincronizmo con ogl? alguna sugerencia?
por sincronizmo no me viene nada. Puedes ser más especifico?
lo que quiero es que mi juego se ejecute a la misma velocidad en diferentes CPU's. Alguna idea?
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
wglSwapIntervalEXT(1);
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.
Lo suyo es, procesar siempre el motor al mismo dt, y si sobra tiempo dormir el hilo n milisegundos.
En http://dewitters.koonsolo.com/gameloop.html lo explica bien :)
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:
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.
Me ha descubierto mi mentalidad monohilo! Dicho asi si, tiene logica para que otros hilos del programa pueden chupar de la CPU :)
http://www.flipcode.com/archives/Main_Loop_with_Fixed_Time_Steps.shtml