Partager via


Polygones de Tessellating

OpenGL peut afficher directement uniquement des polygones convexes simples. Un polygone est simple si :

  • Les bords se croisent uniquement aux sommets.
  • Il n’y a pas de sommets en double.
  • Exactement deux bords se rencontrent à n’importe quel sommet.

Pour afficher des polygones non convexes simples ou des polygones simples contenant des trous, vous devez d’abord trianguler les polygones (les subdiviser en polygones convexes). Cette subdivision est appelée pavage. GLU fournit une collection de fonctions qui effectuent un pavage. Notez que les fonctions de pavage GLU ne peuvent pas gérer les polygones non simples ; il n’existe aucune méthode OpenGL standard pour gérer ces polygones.

Étant donné que le pavage est souvent nécessaire et peut être assez difficile, cette section décrit en détail les fonctions de pavage GLU. Ces fonctions prennent comme entrée des polygones simples arbitraires qui peuvent inclure des trous, et retournent une combinaison de triangles, de maillages de triangles et de ventilateurs de triangles. Si vous ne souhaitez pas traiter des maillages ou des 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 polygones triangulent un polygone concave avec un ou plusieurs contours.

Pour utiliser la pavage de polygones

  1. Créez un objet de pavage avec gluNewTess.

  2. Utilisez gluTessCallBack pour définir les fonctions de rappel que vous utiliserez pour traiter les triangles générés par le tessellateur.

  3. Avec gluBeginPolygon, gluTessVertex, gluNextContour et gluEndPolygon, spécifiez le polygone avec des trous ou le polygone concave à tesseller.

    Une fois la description du polygone terminée, la fonctionnalité de pavage appelle vos fonctions de rappel si nécessaire.

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

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