Polygones le pavage

OpenGL peut afficher directement uniquement les polygones convexes simples. Un polygone est simple dans les cas suivants :

  • Les bords se croisent uniquement aux sommets.
  • Il n’y a aucun vertex dupliqué.
  • Exactement deux bords se rencontrent à n’importe quel vertex.

Pour afficher des polygones simples ou des polygones simples contenant des trous, vous devez d’abord facettiser les polygones (subdivisions en polygones convexes). Une telle sous-division est appelée pavage. GLU fournit une collection de fonctions qui effectuent le pavage. Notez que les fonctions de pavage GLU ne peuvent pas gérer les polygones non simples. Il n’existe pas de méthode OpenGL standard pour gérer ces polygones.

Étant donné que la facettisation est souvent requise et peut être plutôt délicate, cette section décrit en détail les fonctions de pavage GLU. Ces fonctions prennent comme des polygones simples en entrée qui peuvent inclure des trous, et elles retournent une combinaison de triangles, de maillages de triangle et de fans de triangle. Si vous ne souhaitez pas gérer les maillages ou les ventilateurs, vous pouvez spécifier que les fonctions de pavage retournent uniquement des triangles. Toutefois, les informations de maillage et de ventilateur améliorent les performances. Les fonctions de pavage de polygone triangulent un polygone concave avec un ou plusieurs contourages.

Pour utiliser le pavage de polygones

  1. Créez un objet polygonalisation avec gluNewTess.

  2. Utilisez gluTessCallBack pour définir les fonctions de rappel que vous allez utiliser pour traiter les triangles générés par du paveur.

  3. Avec gluBeginPolygon, gluTessVertex, gluNextContouret gluEndPolygon, spécifiez le polygone avec des trous ou le polygone concave à défaire.

    Lorsque la description du polygone est terminée, la fonction de pavage appelle vos fonctions de rappel si nécessaire.

    Vous pouvez détruire des objets pavage inutiles avec gluDeleteTess.

Pour plus d’informations sur l’enregistrement des données de pavage, consultez utilisation des fonctions de rappel.