De la 2D et les fonctions de bases

 

- Tout d'abord préparer la surface physique et surface logique qui recevra vos images.

  • Initialiser la couleur de fond (glClearColor())
  • Effacer la surface logique en utilisant la couleur de fond (glClear (GL_COULEUR_BUFFER_BIT))
  • Transférer le rendu final sur la surface physique (glFlush() glFinish() ou glutSwapBuffers())

- Dessiner en 2D !

  • Les éléments primitifs
  • Dessiner les éléments primitifs
    • Indiquer le type d'élément primitif par glBegin()
    • Dessiner l'élément primitif via glVertex(), une fonction polyforme...
    • Définir la couleur de l'élément via glColor() (une autre fonction polyforme...), glEnable (GL_COLOR_MATERIAL) glDisable (GL_COLOR_MATERIAL) avec une très rapide remarque sur l'existance des fonctions glColorMaterial() et glMaterial().
    • Terminer le dessin du ou des éléments primitifs correspondant par glEnd()
  • Zone de clipping OpenGL dans la zone cliente: le viewport (glViewport())
  • Matrice de projection et matrice de modèle
    • Définition
    • Indiquer la matrice à utiliser (glMatrixMode())
    • Initialiser les matrices avant leur utilisation (glLoadIdentity())!
  • Dans quel cas utiliser tel ou tel matrice
    • Matrice de modèle:
      • La procédure d'affichage pour dessiner nos objets
    • Matrice de projection:
      • void glutReshapeFunc(void (*func)(int width, int height)) pour définir la matrice de projection lors du changement de taille de la fenêtre
      • Définir la perspective gluOrtho2D(), glOrtho(), gluPerspective()
      • Définir la position, sens de la caméra gluLookAt()
  • Exemple récapitulatif avec utilisation de la fonction glutIdleFunc(void (*func)(void))
  • Tracer des points
    • Modification de la taille (glPointSize())
    • Utilisation de l'anti-aliasing (glIsEnable (GL_POINT_SMOOTH) et glEnable (GL_POINT_SMOOTH))
  • Récupération d'informations sur la gestion du point (glGet).
  • Tracer de lignes
    • Modification de l'épaisseur (glLineWidth())
    • Utilisation de l'anti-aliasing (glIsEnable (GL_LINE_SMOOTH) et glEnable (GL_LINE_SMOOTH))
    • Modification du motif de la ligne (glLineStipple())
    • Mémorisation du motif dans une pile openGL (glPushAttrib() et glPopAttrib())