bonjour, je suis en train de réaliser un moteur 3d pour un jeu et je bloque sur un petit point:
j'ai fait un module de chargement de model (ASE) que je stocke dans des vecteurs de <model> a l'initialisation, juste apres celle ci, aucun probleme, les models sont contenu mais plus tard quand j'essaille d'y acceder (pour le rendu par exemple)
quand j'y accede par
ml::model_loader.mod.size(), il me dit qu'il en contient 0
voici le code:
*
model_loader.h
sert a charger des fichier de model 3D (format .ASE)
et les transforme en entité affichable sous opengl
//lit les vertex sur les textures
int n_tvertex;
while(strcmp(fgets(tmp, 20, fichier), "\t\t*MESH_NUMTVERTEX "));
fgets(tmp, 10, fichier);
n_tvertex=atoi(tmp);
fgets(tamp, 200, fichier);
void ml::element::afficher()
{
for (int i=0; i<faces.size(); i++)
afficherface(i);
}
void ml::element::afficherface(int i)
{
face f = {faces[i].A, faces[i].B, faces[i].C};
v3d v[3];
v[0]= vertex[f.A];
v[1]= vertex[f.B];
v[2]= vertex[f.C];
//a completer pour les textures
glBegin(GL_TRIANGLES);
glColor3ub(0,0,255); //face bleu
glVertex3d(v[0].x, v[0].y, v[0].z);
glVertex3d(v[1].x, v[1].y, v[1].z);
glVertex3d(v[2].x, v[2].y, v[2].z);
glEnd();
}
le main de test:
usingnamespace ml;
int main(int argc, char *argv[]) {
model m;
m.charger("models/maison.ASE");
model_loader::mod.push_back(m); cout <<model_loader::mod.size(); //ici pas de probleme il m'affiche 1
ogl g;
g.boucle_affiche();
return0; }
et pour finir la fonction qui devrait afficher le model (ou le test de cout ne marche pas)
<couleur nom="rouge">cout <<model_loader::mod.size(); //le probleme se trouve ici //a la ligne du dessus je devrais avoir 1 (le model chargé) mais il me dit que le vecteur est vide
</couleur>
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.