glPolygonMode
Inhaltsverzeichnis
glPolygonMode
Name
glPolygonMode - wählt aus wie die einzelnen Polygone beim Rastern gezeichnet werden sollen.
Delphi-Spezifikation
procedure glPolygonMode(face, mode: GLenum);
Parameter
face | Definiert auf welche Polygone mode angewendet werden soll. GL_FRONT bewirkt, dass mode nur auf nach Vorne gerichte Polygone angewandt wird. GL_BACK hingegen auf die nach hinten gerichteten. GL_FRONT_AND_BACK wirkt sich auf beide Seiten aus. |
mode | Gibt an wie die betroffenen Polygone gezeichnet werden sollen. Mögliche Werte sind GL_POINT, GL_LINE und GL_FILL. |
Standardgemäß wird GL_FILL auf die Vorder- und Rückseite aller Polygone angewandt.
Beschreibung
glPolygonMode beinflusst wie Polygone bei der Rasterung gezeichnet werden. Auf welche Polygone es eine Auswirkung haben soll, kann man mit face festlegen.Der Polygonmodus wirkt sich nur beim letzten Rastervorgang auf die Polygone aus. Möglicherweise wurde der Eckpunkt des Polygones bereits beleuchtet oder durch das Culling beinflusst, bevor der mit glPolygonMode gesetze Effekt einsetzt.
GL_POINT | Die Eckpunkte eines Polygones werden als einfache Punkte ohne Zwischenräume gezeichnet. Punktattribute wie GL_POINT_SIZE und GL_POINT_SMOOTH beinflussen die Wiedergabe der Punkte. Außer GL_POLYGONE_MODE haben andere Attribute keinerlei Auswirkung. | |
GL_LINE | Miteinander verbundene Eckpunkte werden durch eine Linie verbunden dargestellt. Attribute, die die Darstellung von Linien beinflussen wie zum Beispiel GL_LINE_WIDTH und GL_LINE_SMOOTH, verändern auch hier das Aussehen der Linien. Außer GL_POLYGONE_MODE haben andere Attribute keinerlei Auswirkung. Die Darstellung eines so gezeichneten Models wird häufig als Drahtgitter-Model bezeichnet. Die Linien werden als zusammen gehörende Liniensegmente für das Stippling (siehe glLineStipple benutzt. Das heißt, das Tüpfelmuster wird zwischen den Linien nicht zurückgesetzt. | |
GL_FILL | Das gesamte Polygon mitsamt seinen Flächen wird gezeichnet. Beachtet bitte, dass andere Attribute wie GL_POLYGON_STIPPLE und GL_POLYGON_SMOOTH ebenfalls die Wiedergabe des Polygons beinflussen könen. GL_FILL ist der Wert, der als Standard beim Initalisieren gesetzt wird. |
Weitere Beispiele
Nachfolgend noch einige Beispiele zum PolygonMode. (Um Vorder- und Rückseite sichtbar zu machen wurde die Kugel mittels glClipPlane zerschnitten.)
Hinweise
Eckpunkte werden mit dem "Edge Flag" als an der Grenze anliegend markiert. Diese werden automatisch intern von OpenGL generiert, wenn die Polygone zerlegt werden. Wenn Ihr diese gezielt selbst setzen wollt, müsst ihr glEdgeFlag nutzen. Kanten bei denen das Edge Flag nicht gesetzt sind, werden z.B. beim Drahtgittermodus nicht dargestellt. Wenn Quadrate für die weitere Bearbeitung in Dreiecke zerlegt werden (Triangulation) wird die Kante, an der die beiden Subdreiecke aneinander stoßen nicht mit dem Edge Flag markiert, um zu zeigen, dass diese Kante keine "echte" Kante ist.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn entweder face oder mode keine gültigen Werte waren.
GL_INVALID_OPERATION wird generiert, wenn diese Funktion innerhalb eines glBegin/glEnd-Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_POLYGON_MODE
Links
http://www.opengl.org/sdk/docs/man/xhtml/glPolygonMode.xml
Siehe auch
glBegin, glEdgeFlag, glLineStipple, glLineWidth, glPointSize, glPolygonStipple