glPolygonOffset
- set the scale and units used to calculate depth values
C SPECIFICATION
void glPolygonOffset(
GLfloat factor,
GLfloat units )
delim $$
PARAMETERS
factor
Specifies a scale factor that is used to create a variable
depth offset for each polygon. The initial value is 0.
units
Is multiplied by an implementation-specific value to
create a constant depth offset. The initial value is 0.
DESCRIPTION
When GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, or
GL_POLYGON_OFFSET_POINT 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" ~*~ DZ ~~+~~ r ~*~ "units"$,
where $DZ~$ 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.
glPolygonOffset is useful for rendering hidden-line images, for applying decals
to surfaces, and for rendering solids with highlighted edges.
NOTES
glPolygonOffset is available only if the GL version is 1.1 or greater.
glPolygonOffset has no effect on depth coordinates placed in the
feedback buffer.
glPolygonOffset has no effect on selection.
ERRORS
GL_INVALID_OPERATION is generated if glPolygonOffset is executed
between the execution of glBegin and the corresponding
execution of glEnd.
ASSOCIATED GETS
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.