1991-2006 Silicon Graphics, Inc.

glAlphaFunc

3G

glAlphaFunc

specify the alpha test function

# C Specification

                    void glAlphaFunc
                    GLenum func
                    GLclampf ref

## Parameters

`func`

- Specifies the alpha comparison function. Symbolic constants `GL_NEVER`, `GL_LESS`, `GL_EQUAL`, `GL_LEQUAL`, `GL_GREATER`, `GL_NOTEQUAL`, `GL_GEQUAL`, and `GL_ALWAYS` are accepted. The initial value is `GL_ALWAYS`.

`ref`

- Specifies the reference value that incoming alpha values are compared to. This value is clamped to the range 0 1 , where 0 represents the lowest possible alpha value and 1 the highest possible value. The initial reference value is 0.

## Description

The alpha test discards fragments depending on the outcome of a comparison between an incoming fragment's alpha value and a constant reference value. `glAlphaFunc` specifies the reference value and the comparison function. The comparison is performed only if alpha testing is enabled. By default, it is not enabled. (See

glEnable

and

glDisable

of `GL_ALPHA_TEST`.)

`func` and `ref` specify the conditions under which the pixel is drawn. The incoming alpha value is compared to `ref` using the function specified by `func`. If the value passes the comparison, the incoming fragment is drawn if it also passes subsequent stencil and depth buffer tests. If the value fails the comparison, no change is made to the frame buffer at that pixel location. The comparison functions are as follows:

`GL_NEVER`

- Never passes.

`GL_LESS`

- Passes if the incoming alpha value is less than the reference value.

`GL_EQUAL`

- Passes if the incoming alpha value is equal to the reference value.

`GL_LEQUAL`

- Passes if the incoming alpha value is less than or equal to the reference value.

`GL_GREATER`

- Passes if the incoming alpha value is greater than the reference value.

`GL_NOTEQUAL`

- Passes if the incoming alpha value is not equal to the reference value.

`GL_GEQUAL`

- Passes if the incoming alpha value is greater than or equal to the reference value.

`GL_ALWAYS`

- Always passes (initial value).

`glAlphaFunc` operates on all pixel write operations, including those resulting from the scan conversion of points, lines, polygons, and bitmaps, and from pixel draw and copy operations. `glAlphaFunc` does not affect screen clear operations.

## Notes

Alpha testing is performed only in RGBA mode.

## Errors

`GL_INVALID_ENUM` is generated if `func` is not an accepted value.

`GL_INVALID_OPERATION` is generated if `glAlphaFunc` is executed between the execution of

glBegin

and the corresponding execution of

glEnd

.

## Associated Gets

glGet

with argument `GL_ALPHA_TEST_FUNC`

glGet

with argument `GL_ALPHA_TEST_REF`

glIsEnabled

with argument `GL_ALPHA_TEST`

## See Also

glBlendFunc

,

glClear

,

glDepthFunc

,

glEnable

,

glStencilFunc

## Copyright

Copyright 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.