[open gl] pourquoi mon programme n'affiche rien ?

pourquoi mon programme n'affiche rien ? [open gl] - C++ - Programmation

Marsh Posté le 31-12-2002 à 19:11:02    

Une fenètre apparait, elle est complétement vide, même pas une couleur à l'intérieur !
pouvez vous m'aider a trouver l'erreur ?
voici le code :
 
 

Code :
  1. #include <stdio.h>
  2. #include <iostream.h>
  3. #include <string.h>
  4. #include <GL/glut.h>
  5. #define nb_vertices 697
  6. char tmp [100] ;
  7. int temp [nb_vertices] ;
  8. char chaine [100] ;
  9. float tab_vertices [nb_vertices][3] ;
  10. int i, j ;
  11. char nom_fichier[] = "cool.ase" ;
  12. void lecture ()
  13. {
  14. FILE *cool ; //pointeur sur le fichier cool
  15. if ((cool = fopen(nom_fichier, "r" )) == NULL)
  16. return ;
  17. strcpy (chaine , "*MESH_VERTEX" ) ;
  18. do
  19. {
  20. fscanf(cool, "%s", tmp) ;
  21. }
  22. while (strcmp (chaine, tmp) != 0) ;
  23. for (i = 0; i < nb_vertices ;i++)//rempli le tableau avec des coordonnées de vertices
  24. {
  25. fscanf (cool, "%d%f%f%f%s", &(temp[0]) , &(tab_vertices[i][0]), &(tab_vertices[i][1]), &(tab_vertices[i][2]), tmp) ;
  26. //cout << tab_vertices[i][0]<<" "<< tab_vertices[i][1]<<" "<< tab_vertices[i][2]<<endl ;
  27. }
  28. fclose (cool) ;
  29. }
  30. void reshape (int w, int h)
  31. {
  32. glViewport (0, 0, w, h) ;
  33. glMatrixMode (GL_PROJECTION) ;
  34. glLoadIdentity () ;
  35. glFrustum(-1.0 , 1.0, -1.0, 1.0, 5.0, 500.0); //perspective conique
  36. glMatrixMode(GL_MODELVIEW); //la matrice active de modelisation/visualisation sera affectée
  37. glLoadIdentity(); //charge la matrice identité
  38. gluLookAt (0.0, 0.0, 50.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
  39. }
  40. void display ()
  41. {
  42. glEnableClientState (GL_VERTEX_ARRAY);
  43. glVertexPointer (3, GL_FLOAT, 0, &tab_vertices[0][0]);
  44. glPolygonMode (GL_FRONT, GL_LINE) ;
  45. for (j = 0 ; j <nb_vertices; j++)
  46. {
  47. glBegin (GL_TRIANGLES);
  48. glArrayElement (j);
  49. glEnd () ;
  50. }
  51. glutSwapBuffers() ;
  52. }
  53. void main (int argc, char** argv)
  54. {
  55. lecture () ;
  56. glutInit (&argc, argv) ;
  57. glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH) ;
  58. glutInitWindowSize (640, 480) ;
  59. glutInitWindowPosition (250,250) ;
  60. glutCreateWindow (argv [0]) ;
  61. glClearColor (0.0, 0.0, 0.0, 0.0) ;
  62. glClear (GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT ) ;
  63. glEnable( GL_DEPTH_TEST );
  64. glutReshapeFunc (reshape) ;
  65. glutDisplayFunc (display) ;
  66. glutMainLoop () ;
  67. }


Message édité par airseb le 31-12-2002 à 23:40:20
Reply

Marsh Posté le 31-12-2002 à 19:11:02   

Reply

Marsh Posté le 31-12-2002 à 23:40:40    

:sweat:  :hello:

Reply

Marsh Posté le 01-01-2003 à 15:02:41    

up  :(

Reply

Marsh Posté le 01-01-2003 à 16:25:01    

Code :
  1. for (j = 0 ; j <nb_vertices; j++)
  2.     {
  3.       glBegin (GL_TRIANGLES);
  4.       glArrayElement (j);
  5.       glEnd () ;
  6.     }


 
[:wam]
 
heuh a mon avis, tu fais un glBegin() avant la loop et un apres, mais pas un par vtx
 
ensuite je ne sais pas si ton utilisation de glArrayElement est correcte, repenche toi sur la doc

Reply

Sujets relatifs:

Leave a Replay

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