glPolygonMode

Aus DGL Wiki
Version vom 5. Dezember 2005, 20:30 Uhr von DGLBot (Diskussion | Beiträge) (GlPolygonMode wurde nach glPolygonMode verschoben)

Wechseln zu: Navigation, Suche

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 Datei:gl point.png 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 Datei:gl line.png Miteinander verbundene Eckpunkte werden miteinander durch eine Linie verbunden. 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 solch gezeichneten Models wird häufig als Drahtgitter-Model bezeichnet. TODO: Habe den Part mit dem "Tüpfeln" rausgelassen. Da sollte man sich nochmal Gedanken drum machen.
GL_FILL Datei:gl fill.png Das gesamte Polygon mitsamt seines Inneren also z.B. mit seiner Textur 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.)

GL_FILL GL_LINE
Kugel FILL.jpg Kugel LINE.jpg
GL_POINT Vorderseite GL_FILL
Rückseite GL_LINE
Kugel POINT.jpg Kugel MIX.jpg


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.


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.

Siehe auch

glBegin, glEdgeFlag, glLineStipple, glLineWidth, glPointSize, glPolygonStipple