Tessellierende Polygone
OpenGL kann nur einfache konvexe Polygone direkt anzeigen. Ein Polygon ist einfach, wenn:
- Die Kanten schneiden sich nur an Scheitelpunkten.
- Es gibt keine doppelten Scheitelpunkte.
- Genau zwei Kanten treffen sich an jedem Scheitelpunkt.
Um einfache nicht konvexe Polygone oder einfache Polygone anzuzeigen, die Löcher enthalten, müssen Sie zuerst die Polygone triangulieren (unterteilen sie in konvexe Polygone). Diese Unterteilung wird Tessellationgenannt. GLU stellt eine Sammlung von Funktionen bereit, die tessellation durchführen. Beachten Sie, dass die GLU-Tessellationsfunktionen keine unimplenten Polygone verarbeiten können; Es gibt keine standardmäßige OpenGL-Methode zum Behandeln solcher Polygone.
Da tessellation häufig erforderlich ist und ziemlich schwierig sein kann, beschreibt dieser Abschnitt die GLU-Tessellationsfunktionen ausführlich. Diese Funktionen übernehmen als Eingabe beliebiger einfacher Polygone, die Löcher enthalten können, und sie geben eine Kombination aus Dreiecken, Dreiecksgittern und Dreiecksfächern zurück. Wenn Sie sich nicht mit Gittern oder Lüftern befassen möchten, können Sie angeben, dass die Tessellationsfunktionen nur Dreiecke zurückgeben. Gitter- und Lüfterinformationen verbessern jedoch die Leistung. Die Polygon-Tessellationsfunktionen triangulieren ein konkaviertes Polygon mit einem oder mehreren Konturen.
So verwenden Sie polygonale Tessellation
Erstellen Sie ein Tessellationsobjekt mit gluNewTess.
Verwenden Sie gluTessCallBack-, um Rückruffunktionen zu definieren, mit deren Hilfe Sie die Dreiecke verarbeiten, die vom Tessellator generiert werden.
Geben Sie mit gluBeginPolygon, gluTessVertex, gluNextContourund gluEndPolygondas Polygon mit Löchern oder das konkade Polygon an, das tesselliert werden soll.
Wenn die Polygonbeschreibung abgeschlossen ist, ruft die Tessellationseinrichtung ihre Rückruffunktionen nach Bedarf auf.
Sie können nicht benötigte Tessellationsobjekte mit gluDeleteTesszerstören.
Weitere Informationen zum Speichern der Tessellationsdaten finden Sie unter Verwenden von Rückruffunktionen.