[open gl] mon programme affiche une fenetre vide !

mon programme affiche une fenetre vide ! [open gl] - C++ - Programmation

Marsh Posté le 04-01-2003 à 18:10:03    

j'ai fait un programme qui lit dans un fichier .ase et qui a l'air de marcher. mais le probleme c que quand je veux afficher mon objet en open gl,j'obtiens un une fenetre avec un fond noir.
pouvez vous m'aider a trouver l'erreur s'il vous plait ?
 

Code :
  1. #include <stdio.h>
  2.     #include <iostream.h>
  3.     #include <string.h>
  4.     #include <GL/glut.h>
  5.     #define nb_vertices 200000
  6.  #define nb_faces 200000
  7.  float tab_vertices [nb_vertices][3] ;
  8.  int tab_sommets [nb_faces][3] ;
  9. int i=0 ;
  10.     int k=0;
  11.      void lecture ()
  12.     {
  13.  char tmp [100] ;
  14.  char tmp2 [100] ;
  15. char tmp3 [100] ;
  16.  int temp [nb_vertices] ;
  17.  char chaine [100] ;
  18.     strcpy (chaine , "*MESH_VERTEX" ) ; //affecte la chaine "*MESH_VERTEX" au tableau chaine
  19.  char passe_ligne [200] ;
  20.  char nom_fichier[] = "cool.ase" ;
  21.  FILE *cool ;    //pointeur sur le fichier cool
  22.  if ((cool = fopen(nom_fichier, "r" )) == NULL)
  23.           return ;
  24.  do
  25.  {
  26.   do
  27.   {
  28.    fscanf(cool, "%s", tmp) ;
  29.   }
  30.   while (strcmp (chaine, tmp) != 0) ; //passe toutes les chaines en revue jusqu'a qu'a ce que tmp soit égal à chaine ("*MESH_VERTEX" )
  31.   do//rempli le tableau avec des coordonnées de vertices
  32.   {
  33.    fscanf (cool, "%d%f%f%f%s", &(temp[0]) ,&(tab_vertices[i][0]), &(tab_vertices[i][1]), &(tab_vertices[i][2]), tmp) ;
  34.    //cout << tab_vertices[i][0]<<" "<<tab_vertices[i][1]<<" "<< tab_vertices[i][2]<<endl ;
  35.           i=i+1 ;
  36.   }
  37.        while (strcmp (tmp, "}" )!=0) ;
  38.  do
  39.  {
  40.  fscanf(cool, "%s", tmp2) ;
  41.  }
  42.  while (strcmp ("A:", tmp2) != 0) ;
  43. //cout << "bonjour" <<endl ;
  44. do //rempli le tableau avec le numero des sommets
  45. {
  46.  fscanf (cool, "%d%s%d%s%d", &(tab_sommets [k][0]),tmp,
  47.    &(tab_sommets [k][1]),tmp, &(tab_sommets [k][2])) ;
  48.  //cout << tab_sommets [k][0]<<" "<<tab_sommets [k][1]<<" "<<tab_sommets [k][2] << endl ;
  49.  k=k+1;
  50.  fgets (passe_ligne, 200, cool) ; //saute une ligne dans le fichier où les données ne servent pas
  51.  fscanf (cool, "%s%s%s", tmp, tmp, tmp3);
  52. }
  53. while (strcmp(tmp3, "{" )!=0) ;
  54.     }
  55.     while (!feof(cool)) ;
  56.       fclose (cool) ;
  57.     }
  58.     void reshape (int w, int h)
  59. {
  60.  glViewport (0, 0, w, h) ;
  61.  glMatrixMode (GL_PROJECTION) ;
  62.  glLoadIdentity () ;
  63.  glFrustum(-100.0 , 100.0, -100.0, 100.0, 5.0, 500.0);  //perspective conique
  64.  glMatrixMode(GL_MODELVIEW); //la matrice active de modelisation/visualisation sera affectée
  65.  glLoadIdentity();   //charge la matrice identité
  66.  gluLookAt (0.0, 0.0, 250.0, 0.0,0.0,0.0, 0.0, 1.0, 0.0) ; //caméra placée sur l'axe des Z et regardant vers l'origine
  67. }
  68. void display ()
  69. {
  70.  int l=k*3 ;
  71.  glEnableClientState (GL_VERTEX_ARRAY);
  72.  glVertexPointer (3, GL_FLOAT, 0, &tab_vertices[0][0]);
  73.  glPolygonMode (GL_FRONT_AND_BACK, GL_LINE) ;
  74.  glClear (GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT ) ;
  75.  glDrawElements (GL_TRIANGLES, l, GL_UNSIGNED_INT, tab_sommets) ;
  76.  glFlush () ;
  77.  glutSwapBuffers() ;
  78. }
  79.    void main (int argc, char** argv)
  80.    {
  81.     lecture () ;
  82. glutInit (&argc, argv) ;
  83. glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH) ;
  84. glutInitWindowSize (640, 480) ;
  85. glutInitWindowPosition (250,250) ;
  86. glutCreateWindow (argv [0]) ;
  87. glEnable( GL_DEPTH_TEST );
  88. glutReshapeFunc (reshape) ;
  89. glutDisplayFunc (display) ;
  90. glutMainLoop () ;
  91.    
  92.    }

Reply

Marsh Posté le 04-01-2003 à 18:10:03   

Reply

Marsh Posté le 04-01-2003 à 18:13:42    

enleve <iostream.h> et remplace tes // cout par des // printf et je serais content

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed