#1 

07-07-2010 18:07:15

[Kenny]
Membres
Date d'inscription:
Messages: 3
IP: 92.131.147.62
Courriel

Salut.
Je suis actuellement en train de coder un jeu avec une version de Irrlicht pour la plateforme PSP. (LTE engine)
Mais cette console n'a pas toutes les performances nécessaires pour faire tourner un jeu complet à 60 FPS, si il y a trop d'objets affichés.
J'ai overclocké le processeur mais c'est pas assez, ça rame quand même.

Questions : est-ce faire node = driver->addOctTree...etc règlerait le problème ? Comment limiter les framerates à 30 FPS ? (j'accélère l'animation)

J'ai essayé de limiter avec la SDL, mais par exemple en incluant SDL_framerate, le compilateur reconnait pas les fonctions... pourtant j'ai inclus, mais le link makefile marche pas... bref, je cherche le moyen de limiter le nombre de fps, histoire de pas ralentir le déplacement de la caméra.

Cordialement,
Kenny


Hors ligne


#2 

07-07-2010 21:02:02

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 79.92.234.161
Courriel

peut-être en endormissent un peut ton programme avec ça
http://irrlicht-fr.org/lire_tuto.php?id=1299
il y a un truc qui te permet de réguler la vitesse du framerate, et qui est assez simple a utiliser

Hors ligne


#3 

07-07-2010 22:08:02

[Kenny]
Membres
Date d'inscription:
Messages: 3
IP: 92.131.147.62
Courriel

Le truc c'est que en fait comme c'est une caméra FPS, elle bouge "toute seule"
Alors moi tout mon programme (boucle de rendu) peut bouger indépendamment de la caméra, donc y'aura pas d'impac direct, car aucune action n'attend des ordres pour le ralentissement dans ma boucle. En gros je veux dire que je peux pas modifier le framerate complet...

Au fait la LTE possède un moyen de limiter les FPS à 60. Je vais chercher comment modifier ça...

Sinon pour les octtree ?


Hors ligne


#4 

09-07-2010 20:48:11

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 79.92.234.161
Courriel

il y aurait peut-être un truc a essayer qui devrais marcher, soit en utilisant le lien que je t'ai mis un peut plus haut pour utiliser la fonction qui permet de gérer les evenement à un intervalle temps voulus. et toutes les 33ms (pour environ 30fps) tu fait ton :

Code c++ :


 driver->beginScene(true, true, video::SColor(0,255,255,255));
 sceneMgr->drawAll ();
 guienv->drawAll();
 driver->endScene ();


Sinon peut être une deuxième solution:
En utilisant un "timer" de la SDL pour appelé une fonction callback qui contient le code ci-dessus. Je pense que ça fonctionnerais même mieux (du faite que d'après ce que j'ai pus lire dans le code source, les "timers" de la SDL utiliserais un autre thread, mais peut-être que je me plante)
Un mec explique comment ça utiliser les "timers" super bien ici:
http://www.siteduzero.com/tutoriel-3-14136-maitrisez-le-temps.html#ss_part_2

Hors ligne


#5 

09-07-2010 21:04:42

[Kenny]
Membres
Date d'inscription:
Messages: 3
IP: 92.131.14.170
Courriel

C'est bon j'ai résolu le problème. En fait le doit tourner à 30 FPS.
Donc je fais un truc à la fin de chaque boucle, je calcule le temps que l'éxécution de la boucle a duré, et je fais une pause de 33ms - temps, donc ça fait une régulation du framerate dynamique.

Voili voulu voila. Résolu.

Par contre autre question : possible d'afficher une image de chargement ? Parce que si je fais un driver->endScene avant la boucle il freeze...


Hors ligne


#6 

10-07-2010 09:45:40

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 79.92.234.161
Courriel

si tu fait un :

Code c++ :


driver->beginScene(true, true, video::SColor(0,255,255,255));
sceneMgr->drawAll ();
driver->endScene ();

avant la boucle, ça marche!

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
117 invités en ligne
membre en ligne: -
RSS Feed