fglSampleMaskSGIS(3G) OpenGL Reference fglSampleMaskSGIS(3G)NAMEfglSampleMaskSGIS - define mask to modify multisampled pixel fragments
FORTRAN SPECIFICATION
SUBROUTINE fglSampleMaskSGIS( REAL*4 value,
LOGICAL*1 invert )
PARAMETERS
value Specifies coverage of the modification mask. Clamped to the
range [0, 1]; zero implies no coverage, and one implies full
coverage.
invert GL_FALSE to use the modification mask implied by value; GL_TRUE
to use the bitwise inverse of that mask.
DESCRIPTIONfglSampleMaskSGIS defines a mask to modify the coverage of multisampled
pixel fragments. This capability is used for antialiased screen-door
transparency and smooth transitions between two renderings of an object
(often for level-of-detail management in simulation systems).
When multisampling is enabled (see fglEnable with argument
GL_MULTISAMPLE_SGIS) a ``fragment mask'' is computed for each fragment
generated by a primitive. This mask reflects the amount of the pixel
covered by the fragment, and determines the frame buffer samples that may
be affected by the fragment.
If conversion of alpha values to masks is enabled (fglEnable with
argument GL_SAMPLE_ALPHA_TO_MASK_SGIS), the fragment alpha value is used
to generate a temporary modification mask which is then ANDed with the
fragment mask. One way to interpret this is as a form of dithering: a
multivalued alpha (coverage or opacity) for the whole fragment is
converted to simple binary values of coverage at many locations (the
samples).
After conversion of alpha values to masks, if replacement of alpha values
is enabled (fglEnable with argument GL_SAMPLE_ALPHA_TO_ONE_SGIS), the
fragment's alpha is set to the maximum allowable value.
Finally, if fragment mask modification is enabled (fglEnable with
argument GL_SAMPLE_MASK_SGIS), fglSampleMaskSGIS defines an additional
modification mask. value is used to generate a modification mask in much
the same way alpha was used above. If invert is GL_TRUE, then the
modification mask specified by value will be inverted. The final
modification mask will then be ANDed with the fragment mask resulting
from the previous steps. This can be viewed as an ``override'' control
that selectively fades the effects of multisampled fragments.
Page 1
fglSampleMaskSGIS(3G) OpenGL Reference fglSampleMaskSGIS(3G)
Note that fglSampleMaskSGIS(value, GL_TRUE) is not necessarily equivalent
to fglSampleMaskSGIS(1.0-value, GL_FALSE); due to round-off and other
issues, complementing the coverage will not necessarily yield an inverted
modification mask.
NOTESfglSampleMaskSGIS is part of the SGIS_multisample extension, not part of
the core GL command set. If GL_SGIS_multisample is included in the
string returned by fglGetString, when called with argument GL_EXTENSIONS,
extension SGIS_multisample is supported by the connection.
ERRORS
GL_INVALID_OPERATION is generated if fglSampleMaskSGIS is executed
between the execution of fglBegin and the corresponding execution of
fglEnd.
ASSOCIATED GETS
fglGet with argument GL_SAMPLE_MASK_VALUE_SGI, or
GL_SAMPLE_MASK_INVERT_SGI.
fglIsEnabled with argument GL_MULTISAMPLE_SGI, GL_SAMPLE_ALPHA_TO_MASK,
GL_SAMPLE_ALPHA_TO_ONE_SGI, GL_SAMPLE_MASK_SGI.
MACHINE DEPENDENCIES
Multisampling is supported only on RealityEngine, RealityEngine2, and VTX
and InfiniteReality systems. Currently it can be used with windows of
multisample-capable Visual types, but not with pixmaps.
SEE ALSO
fglSamplePatternSGIS
Page 2