Angeben des Polygons, das Tessellated werden soll
Sie geben ein Polygon (möglicherweise mit Löchern) an, das tesselliert werden soll:
Für Polygone ohne Löcher ist der Spezifikationsprozess genau wie in OpenGL:
- Beginnen Sie mit gluBeginPolygon.
- Rufen Sie gluTessVertex für jeden Scheitelpunkt in der Begrenzung auf.
- Beenden Sie das Polygon mit einem Aufruf von gluEndPolygon.
Wenn ein Polygon aus mehreren Konturen besteht, einschließlich Löchern und Löchern innerhalb von Löchern, geben Sie die Konturen nacheinander an, die jeweils durch gluNextContour vorangehen. Wenn Sie gluEndPolygon aufrufen, signalisiert es das Ende der endgültigen Kontur und startet die Tessellation. Sie können den Aufruf von gluNextContour vor der ersten Kontur weglassen. Die gluBeginPolygon-Funktion beginnt mit der Spezifikation eines Polygons, das tesselliert werden soll, und ordnet ihr ein Tessellationsobjekt, tessobj, zu. Die zu verwendenden Rückruffunktionen sind diejenigen, die Sie mit gluTessCallback an das Tessellationsobjekt binden.
Die gluTessVertex-Funktion gibt einen Scheitelpunkt im Polygon an, der tesselliert werden soll. Rufen Sie gluTessVertex für jeden Scheitelpunkt im Polygon auf. Der tessobj-Parameter der Funktion ist das zu verwendende Tessellationsobjekt, v enthält die dreidimensionalen Vertexkoordinaten, und Daten sind ein beliebiger Zeiger, der an den Rückruf gesendet wird , der GLU_VERTEX zugeordnet ist. In der Regel enthalten Daten Scheitelpunktdaten, Texturkoordinaten, Farbinformationen oder was die Anwendung sonst noch benötigt.
Die gluNextContour-Funktion markiert den Anfang der nächsten Kontur, wenn mehrere Konturen die Begrenzung des Polygons bilden, das tesselliert werden soll. Der Typparameter der Funktion kann GLU_EXTERIOR, GLU_INTERIOR, GLU_CCW, GLU_CW oder GLU_UNKNOWN sein. Diese Konstanten dienen nur als Hinweis auf die Tessellation. Wenn Sie sie richtig machen, kann die Tessellation schneller gehen. Wenn Sie sie falsch sehen, werden sie ignoriert, und die Tessellation funktioniert weiterhin.
Bei einem Polygon mit Löchern ist eine Kontur die Außenkontur, die anderen sind innen. Wenn Sie gluNextContour nicht unmittelbar nach gluBeginPolygon aufrufen, wird angenommen, dass die erste Kontur vom Typ GLU_EXTERIOR ist.
GLU_CW und GLU_CCW im Uhrzeigersinn und gegen den Uhrzeigersinn orientierte Polygone angeben. Die Auswahl, welche im Uhrzeigersinn und welche gegen den Uhrzeigersinn sind, ist in drei Dimensionen willkürlich, aber in jeder Ebene gibt es zwei verschiedene Ausrichtungen; verwenden Sie die GLU_CW - und GLU_CCW-Typen konsistent. Verwenden Sie GLU_UNKNOWN , wenn Sie nicht wissen, welche Sie verwenden sollen.
Die Funktion gluEndPolygon gibt das Ende der Polygonspezifikation an. Es gibt auch an, dass die Tessellation mit der Verwendung des Tessellation-Objekts tessobj beginnen kann.