next up previous contents
Next: 13. Image Processing Up: 12. Transparency Previous: 12.4 Using the Alpha

12.5 Using Multisampling

On systems which support the multisample extension (SGIS_multisample), the per-fragment sample mask may be used to change the transparency of an object. This method is basically identical to screen-door transparency described in Section  12.1, but at a sub-pixel (fragment) level.

One technique involves GL_SAMPLE_ALPHA_TO_MASK_SGIS. If transparent objects in a scene do not overlap, GL_SAMPLE_ALPHA_TO_MASK_SGIS may be used. This parameter causes the alpha of a fragment to be mapped to a sample mask which will be bitwise ANDed with the fragment's mask. The value of the generated sample mask is implementation-dependent and is a function of the pixel location and the fragment's alpha value. If two objects were drawn at the same location with the same transparency, the sample mask would be the same and the same samples would be touched. If two objects were drawn at the same location with different transparencies, results may or may not be acceptable.

The simplest technique is to use the glSampleMaskSGIS() command to set the value of the GL_SAMPLE_MASK_SGIS. This value is used to generate a temporary mask which is bitwise ANDed with the fragment's mask. Again, results may not be correct if transparent objects overlap.

Currently, SGIS_multisample is supported by Silicon Graphics and Hewlett Packard.


next up previous contents
Next: 13. Image Processing Up: 12. Transparency Previous: 12.4 Using the Alpha
David Blythe
1999-08-06