Chute de fps de 40fps a 2fps

Résolu
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008 - 7 juin 2005 à 16:01
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008 - 10 juin 2005 à 15:44
Bonjour,
J' ai fais cette fonction:
void LoadWorld(char lvlfile[500]){
int j=0;
lvl=fopen(lvlfile, "rb");
fscanf(lvl, "object.numFaces=%i\n", &obj.numFaces);
for(j;j<obj.numFaces;j++)
{
fscanf(lvl, "face.material=%s\n", &face.material);
fscanf(lvl, "face.texture=%s\n", &buffer);
fscanf(lvl, "face.coords{%i|%i|%f|%f|%f}\n", &face.itCoordsX[0], &face.itCoordsY[0], &face.pX[0], &face.pY[0], &face.pZ[0]);
fscanf(lvl, "face.coords{%i|%i|%f|%f|%f}\n", &face.itCoordsX[1], &face.itCoordsY[1], &face.pX[1], &face.pY[1], &face.pZ[1]);
fscanf(lvl, "face.coords{%i|%i|%f|%f|%f}\n", &face.itCoordsX[2], &face.itCoordsY[2], &face.pX[2], &face.pY[2], &face.pZ[2]);
fscanf(lvl, "face.coords{%i|%i|%f|%f|%f}\n", &face.itCoordsX[3], &face.itCoordsY[3], &face.pX[3], &face.pY[3], &face.pZ[3]);
strcpy(face.iTexture, "Datas\\Bmp\");
strcat(face.iTexture, buffer);
LoadBind(face.iTexture, j);
glBegin ( GL_QUADS );
glTexCoord2d(face.itCoordsX[0], face.itCoordsY[0]); glVertex3f(face.pX[0], face.pY[0], face.pZ[0]);
glTexCoord2d(face.itCoordsX[1], face.itCoordsY[1]); glVertex3f(face.pX[1], face.pY[1], face.pZ[1]);
glTexCoord2d(face.itCoordsX[2], face.itCoordsY[2]); glVertex3f(face.pX[2], face.pY[2], face.pZ[2]);
glTexCoord2d(face.itCoordsX[3], face.itCoordsY[3]); glVertex3f(face.pX[3], face.pY[3], face.pZ[3]);
glEnd ( );
}
fclose(lvl);
}
Au debut tout ce passe bien, puis apres quelques secondes je passe de 40fps a 2fps sans savoir pourquoi j' ai essayer de modifier le code, mais rien n' y fait ...
Si quelqu'un pourrait me dire sa m' aiderais beaucoup.
Merci
DarkBoss

5 réponses

darfeuille Messages postés 63 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 25 juillet 2005
7 juin 2005 à 16:29
J'y connais pas grand chose a tout ca, mais est ce que quand tu fais :



glTexCoord2d(face.itCoordsX[0], face.itCoordsY[0]); glVertex3f(face.pX[0], face.pY[0], face.pZ[0]);

glTexCoord2d(face.itCoordsX[1], face.itCoordsY[1]); glVertex3f(face.pX[1], face.pY[1], face.pZ[1]);

glTexCoord2d(face.itCoordsX[2], face.itCoordsY[2]); glVertex3f(face.pX[2], face.pY[2], face.pZ[2]);

glTexCoord2d(face.itCoordsX[3], face.itCoordsY[3]); glVertex3f(face.pX[3], face.pY[3], face.pZ[3]);




tu ne créerais pas des objets qui ne sont pas libérés ensuite?

Auquel cas plus ca tourne, et plus il a d'objet a afficher, et donc plus il rame
3
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
7 juin 2005 à 19:42
ah oué,
j'y avais pas pensé,
en fait il suffirais de faire faire un free(face...); c' est bien ça ?

DarkBoss
0
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
7 juin 2005 à 19:51
et comment liberer une structure entiere ?

DarkBoss
0
darfeuille Messages postés 63 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 25 juillet 2005
8 juin 2005 à 08:30
je ne sais pas, j'y connais rien en gl. Mais deja tu peux verifier que
ce soit ca le probleme simplement en les mettant en commentaire.

Je viens de trouver ca, peut etre que c'est ce que tu devrais faire

avant chaque reaffichage




<li>glClear (GL_COLOR_BUFFER_BIT | </li><li> GL_DEPTH_BUFFER_BIT);

</li><li> glDisable(GL_TEXTURE_2D);

</li>

Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
10 juin 2005 à 15:44
DarkBoss
0
Rejoignez-nous