glPolygonOffset

The glPolygonOffset function sets the scale and units OpenGL uses to calculate depth values.

void glPolygonOffset (
    GLfloat factor,    GLfloat units);

Parameters

  • factor
    Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is zero.
  • units
    Specifies a value that is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.

Remarks

When GL_POLYGON_OFFSET is enabled, each fragment's depth value will be offset after it is interpolated from the depth values of the appropriate vertices. The value of the offset is factor * Δz + r * units, where Δz is a measurement of the change in depth relative to the screen area of the polygon, and r is the smallest value that is guaranteed to produce a resolvable offset for a given implementation. The offset is added before the depth test is performed and before the value is written into the depth buffer.

The glPolygonOffset function is useful for rendering hidden-line images, for applying decals to surfaces, and for rendering solids with highlighted edges.

The glPolygonOffset function has no effect on depth coordinates placed in the feedback buffer. It also has no effect on selection.

Note  The glPolygonOffset function is only available in OpenGl version 1.1 or greater.

Error Codes

The following is the error code and its condition.

Error code Condition
GL_INVALID_OPERATION glPolygonOffset was called between a call to glBegin and the corresponding call to glEnd.

The following functions retrieve information related to glPolygonOffset:

glIsEnabled with argument GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, or GL_POLYGON_OFFSET_POINT.

glGet with argument GL_POLYGON_OFFSET_FACTOR or GL_POLYGON_OFFSET_UNITS

Requirements

**  Windows NT/2000:** Requires Windows NT 4.0 or later.
**  Windows 95/98:** Requires Windows 95 or later. Available as a redistributable for Windows 95.
**  Header:** Declared in Gl.h.
**  Library:** Use Opengl32.lib.

See Also

glDepthFunc, glDisable, glEnable, glGet, glIsEnabled, glLineWidth, glStencilOp, glTexEnv