DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

glFogf(3)





NAME

       glFogf, glFogi, glFogfv, glFogiv - specify fog parameters


C SPECIFICATION

       void glFogf( GLenum pname,
                    GLfloat param )
       void glFogi( GLenum pname,
                    GLint param )

       delim $$


PARAMETERS

       pname   Specifies   a   single-valued   fog   parameter.   GL_FOG_MODE,
               GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, and GL_FOG_INDEX  are
               accepted.

       param   Specifies the value that pname will be set to.


C SPECIFICATION

       void glFogfv( GLenum pname,
                     const GLfloat *params )
       void glFogiv( GLenum pname,
                     const GLint *params )


PARAMETERS

       pname  Specifies   a   fog   parameter.   GL_FOG_MODE,  GL_FOG_DENSITY,
              GL_FOG_START, GL_FOG_END,  GL_FOG_INDEX,  and  GL_FOG_COLOR  are
              accepted.

       params Specifies   the  value  or  values  to  be  assigned  to  pname.
              GL_FOG_COLOR requires an array of four values.  All other param-
              eters accept an array containing only a single value.


DESCRIPTION

       Fog is initially disabled.  While enabled, fog affects rasterized geom-
       etry, bitmaps, and pixel blocks, but not buffer  clear  operations.  To
       enable  and  disable  fog,  call  glEnable  and glDisable with argument
       GL_FOG.

       glFog assigns the value or values in params to the fog parameter speci-
       fied by pname.  The following values are accepted for pname:

       GL_FOG_MODE         params  is a single integer or floating-point value
                           that specifies the equation to be used  to  compute
                           the  fog  blend  factor,  $f$.  Three symbolic con-
                           stants  are  accepted:   GL_LINEAR,   GL_EXP,   and
                           GL_EXP2.  The equations corresponding to these sym-
                           bolic constants are defined below.  The initial fog
                           mode is GL_EXP.

       GL_FOG_DENSITY      params  is a single integer or floating-point value
                           that specifies $density$, the fog density  used  in
                           both  exponential  fog equations.  Only nonnegative
                           densities are accepted.  The initial fog density is
                           1.

       GL_FOG_START        params  is a single integer or floating-point value
                           that specifies $start$, the near distance  used  in
                           the linear fog equation.  The initial near distance
                           is 0.

       GL_FOG_END          params is a single integer or floating-point  value
                           that  specifies $end$, the far distance used in the
                           linear fog equation.  The initial far  distance  is
                           1.

       GL_FOG_INDEX        params  is a single integer or floating-point value
                           that specifies $i sub f$, the fog color index.  The
                           initial fog index is 0.

       GL_FOG_COLOR        params contains four integer or floating-point val-
                           ues that specify $C sub f$, the fog color.  Integer
                           values are mapped linearly such that the most posi-
                           tive representable value maps to 1.0, and the  most
                           negative  representable value maps to -1.0.  Float-
                           ing-point values are mapped directly.   After  con-
                           version,  all  color  components are clamped to the
                           range [0,1].  The initial fog color is  (0,  0,  0,
                           0).

       Fog  blends  a fog color with each rasterized pixel fragment's posttex-
       turing color using a blending factor $f$.  Factor $f$  is  computed  in
       one  of three ways, depending on the fog mode.  Let $z$ be the distance
       in eye coordinates from the origin to the fragment being  fogged.   The
       equation for GL_LINEAR fog is

                       f ~=~ {end ~-~ z} over {end ~-~ start}


The equation for GL_EXP fog is


                      f ~=~ e sup {-^(density ~cdot~ z)}


The equation for GL_EXP2 fog is


                   f ~=~ e sup {-^(density ~cdot~ z)} sup 2

Regardless  of  the  fog  mode, $f$ is clamped to the range [0, 1] after it is
computed.  Then, if the GL is in RGBA color mode, the fragment's  red,  green,
and blue colors, represented by $C sub r$, are replaced by

            {C sub r} sup prime ~=~ f^C sub r ~+~ (1 - f)^C sub f

Fog does not affect a fragment's alpha component.

In color index mode, the fragment's color index $i sub r$ is replaced by

             {i sub r} sup prime ~=~ i sub r ~+~ (1 - f)^i sub f


ERRORS

       GL_INVALID_ENUM  is  generated if pname is not an accepted value, or if
       pname is GL_FOG_MODE and params is not an accepted value.

       GL_INVALID_VALUE is generated if pname is GL_FOG_DENSITY, and params is
       negative.

       GL_INVALID_OPERATION is generated if glFog is executed between the exe-
       cution of glBegin and the corresponding execution of glEnd.


ASSOCIATED GETS

       glIsEnabled with argument GL_FOG
       glGet with argument GL_FOG_COLOR
       glGet with argument GL_FOG_INDEX
       glGet with argument GL_FOG_DENSITY
       glGet with argument GL_FOG_START
       glGet with argument GL_FOG_END
       glGet with argument GL_FOG_MODE


SEE ALSO

       glEnable(3G)

                                                                     GLFOG(3G)

Man(1) output converted with man2html