glPolygonOffset
Inhaltsverzeichnis
glPolygonOffset
Name
glPolygonOffset - setzt die Skalierung und Einheiten, die für die Tiefenberechnung verwendet werden sollen.
Delphi-Spezifikation
procedure glPolygonOffset(factor: TGLfloat; units: TGLfloat);
Parameter
factor | Definiert einen Skalierungsfaktor, der benutzt wird, um einen variablen Tiefenversatz (Depth Offset) für jedes Polygon. Der Initialwert ist 0. |
---|---|
units | Wird mit einem implementationsabhängigen Wert multipliziert, um einen konstanten Tiefenversatz zu erreichen. Der Initialwert ist 0. |
Beschreibung
Wenn GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE oder GL_POLYGON_OFFSET_POINT aktiviert ist, wird der Tiefenwert jedes Fragments um einen bestimmten Wert verschoben, nachdem der eigentliche Tiefenwert aus den betreffenden Vertexinformationen interpoliert wurde. Der Wert wird errechnet aus
factor * DZ + r * units, wobei
- DZ die Maßeinheit für die Tiefenverschiebung relativ zum Bildschirmbereich des Polygons und
- r der kleinste Wert ist, der garantiert noch eine gültige Verschiebung für die aktuelle OpenGL-Implementation liefert.
Der Offset wird addiert bevor der Tiefentest durchgeführt wird und bevor die Werte in den Tiefenpuffer geschrieben werden.
glPolygonOffset ist nützlich, um
- Raster-Bildern (engl: hidden-line images) zu rendern.
- Decals auf Oberflächen zu mappen.
- Solide Körper mit beleuchteten Kanten (highlighted edges) zu rendern.
- ZFighting zu beheben.
Hinweise
glPolygonOffset ist ab OpenGL Version 1.1 verfügbar.
glPolygonOffset hat keinen Effekt auf die Tiefenwerte im Feedbackpuffer.
glPolygonOffset hat keinen Effekt auf die Selektion.
Fehlermeldungen
GL_INVALID_OPERATION wird generiert, wenn glPolygonOffset innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glIsEnabled mit Token GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, oder GL_POLYGON_OFFSET_POINT
glGet mit Token GL_POLYGON_OFFSET_FACTOR oder GL_POLYGON_OFFSET_UNITS
Siehe auch
glDepthFunc, glEnable, glGet, glIsEnabled, glLineWidth, glStencilOp, glTexEnv