Tesseling Veelhoeken
OpenGL kan alleen eenvoudige convexe veelhoeken rechtstreeks weergeven. Een veelhoek is eenvoudig als:
- De randen snijden alleen op hoekpunten.
- Er zijn geen dubbele hoekpunten.
- Precies twee randen ontmoeten elkaar op elk hoekpunt.
Als u eenvoudige niet-convenek veelhoeken of eenvoudige veelhoeken met gaten wilt weergeven, moet u eerst de veelhoeken trianguleren (deze onderverdelen in convexe polygonen). Een dergelijke onderverdeling wordt tessellationgenoemd. GLU biedt een verzameling functies die tessellation uitvoeren. Houd er rekening mee dat de GLU-tessellationfuncties niet kunnen omgaan met niet-simple veelhoeken; er is geen standaard OpenGL-methode voor het verwerken van dergelijke veelhoeken.
Omdat tessellation vaak vereist is en nogal lastig kan zijn, beschrijft deze sectie de functies van de GLU-tessellation in detail. Deze functies worden gebruikt als invoer willekeurige eenvoudige veelhoeken die gaten kunnen bevatten en ze retourneren een combinatie van driehoeken, driehoeken en driehoekventilators. Als u niet wilt omgaan met meshes of ventilatoren, kunt u opgeven dat de tessellationfuncties alleen driehoeken retourneren. Mesh- en ventilatorinformatie verbetert echter de prestaties. De veelhoekfunctie triangulateert een concave veelhoek met een of meer contouren.
Voor het gebruik van veelhoektesseling
Maak een tessellationobject met gluNewTess.
Gebruik gluTessCallBack- om callback-functies te definiƫren die u gaat gebruiken om de driehoeken te verwerken die door de tessellator worden gegenereerd.
Met gluBeginPolygon, gluTessVertex, gluNextContouren gluEndPolygon, geeft u de veelhoek met gaten of de concave veelhoek op die moet worden tessellated.
Wanneer de beschrijving van de veelhoek is voltooid, roept de tessellationfaciliteit indien nodig uw callback-functies aan.
U kunt overbodige tesselatieobjecten vernietigen met gluDeleteTess.
Zie Callback-functies gebruikenvoor meer informatie over het opslaan van de tessellationgegevens.