glPolygonMode: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Siehe auch)
K (Links auf Doku)
 
(16 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glPolygonMode =
 
= glPolygonMode =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
  
 
'''glPolygonMode''' - wählt aus wie die einzelnen Polygone beim Rastern gezeichnet werden sollen.
 
'''glPolygonMode''' - wählt aus wie die einzelnen Polygone beim Rastern gezeichnet werden sollen.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 +
procedure '''glPolygonMode'''(''face'', ''mode'': GLenum);
  
procedure <b>glPolygonMode</b>(face,mode: GLenum);
 
<br>
 
 
== Parameter ==
 
== Parameter ==
  
Zeile 33: Zeile 34:
 
<tr>
 
<tr>
 
   <td>GL_POINT</td>
 
   <td>GL_POINT</td>
   <td>[[bild:gl_point.png]]</td>
+
   <td>[[bild:Gl_point.png]]</td>
 
   <td>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.</td>
 
   <td>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.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
   <td>GL_LINE</td>
 
   <td>GL_LINE</td>
   <td>[[bild:gl_line.png]]</td>
+
   <td>[[bild:Gl_line.png]]</td>
   <td>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.
+
   <td>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.
 
</td>
 
</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
   <td>GL_FILL</td>
 
   <td>GL_FILL</td>
   <td>[[bild:gl_fill.png]]</td>
+
   <td>[[bild:Gl_fill.png]]</td>
   <td>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.</td>
+
   <td>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.'''''</td>
 
</tr>
 
</tr>
 
</table>
 
</table>
 
<br>
 
<br>
== Hinweise ==
 
  
Bitte beachten dass...
+
==Weitere Beispiele==
 +
Nachfolgend noch einige Beispiele zum PolygonMode. (Um Vorder- und Rückseite sichtbar zu machen wurde die Kugel mittels [[glClipPlane]] zerschnitten.)
 +
 
 +
<div align="center">
 +
{| {{Prettytable_B1}}
 +
! GL_FILL
 +
! GL_LINE
 +
|-
 +
|[[Bild:Kugel_FILL.jpg]]
 +
|[[Bild:Kugel_LINE.jpg]]
 +
|-
 +
! GL_POINT
 +
! Vorderseite GL_FILL <br>Rückseite GL_LINE
 +
|-
 +
|[[Bild:Kugel_POINT.jpg]]
 +
|[[Bild:Kugel_MIX.jpg]]
 +
|}
 +
</div>
  
Eckpunkte werden markiert als an der Grenze anliegend oder nicht mit dem Edge Flag. Diese werden automatisch intern von OpenGL generiert, wenn die Polygone zerlegt werden. Wenn Ihr diese gezielt selbst setzen wollt, müsst ihr [[glEdgeFlag]] nutzen.
+
== 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.
  
<br>
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
  
 
GL_INVALID_ENUM wird generiert, wenn entweder face oder mode keine gültigen Werte waren.<br>
 
GL_INVALID_ENUM wird generiert, wenn entweder face oder mode keine gültigen Werte waren.<br>
GL_INVALID_OPERATION wird generiert, wenn diese Funktion aufgerufen wird zwischen einem glBegin und glEnd.
+
GL_INVALID_OPERATION wird generiert, wenn diese Funktion innerhalb eines glBegin/glEnd-Blocks aufgerufen wird.
 
<br>
 
<br>
 +
 +
 +
==  Zugehörige Wertrückgaben ==
 +
 +
[[glGet]] mit Token GL_POLYGON_MODE <br>
 +
 +
== Links ==
 +
http://www.opengl.org/sdk/docs/man/xhtml/glPolygonMode.xml<br>
 +
 
== Siehe auch ==
 
== Siehe auch ==
  
Zeile 66: Zeile 92:
  
 
[[Kategorie:GL|PolygonMode]]
 
[[Kategorie:GL|PolygonMode]]
 +
[[Kategorie:GL1.0]]

Aktuelle Version vom 1. Mai 2009, 08:12 Uhr

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 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 Gl line.png 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 Gl fill.png 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.)

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. 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