- specify fog parameters



C SPECIFICATION


PARAMETERS

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

       _param2  Specifies  the value that _param1 will be set to.


C SPECIFICATION


PARAMETERS

       _param1
              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.

       _param2
              Specifies the value or values  to  be  assigned  to
              _param1.   GL_FOG_COLOR  requires  an array of four
              values.  All other parameters accept an array  con-
              taining only a single value.


DESCRIPTION

       Fog  is  initially  disabled.   While enabled, fog affects
       rasterized geometry, 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 _param2  to  the  fog
       parameter  specified by _param1.  The following values are
       accepted for _param1:

       GL_FOG_MODE         _param2 is a single integer or  float-
                           ing-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  symbolic  con-
                           stants are defined below.  The initial
                           fog mode is GL_EXP.

       GL_FOG_DENSITY      _param2 is a single integer or  float-
                           ing-point  value  that  specifies den-
                           sity, the fog  density  used  in  both
                           exponential  fog equations.  Only non-
                           negative densities are accepted.   The
                           initial fog density is 1.

       GL_FOG_START        _param2  is a single integer or float-
                           index is 0.

       GL_FOG_COLOR        _param2  contains  four   integer   or
                           floating-point values that specify Cf,
                           the fog  color.   Integer  values  are
                           mapped  linearly  such  that  the most
                           positive representable value  maps  to
                           1.0,  and  the  most  negative  repre-
                           sentable value maps to  -1.0.   Float-
                           ing-point  values are mapped directly.
                           After conversion, 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  frag-
       ment's  posttexturing  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  equa-
       tion for GL_LINEAR fog is

                              f=e_n_e<I>d_n_d<I>s_<I>t_z<I>a_r_t_



The equation for GL_EXP fog is


                         f=e-(density.z)



The equation for GL_EXP2 fog is


                        f=e-(density.z)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 Cr, are
replaced by

                         Cr'=fCr+(1-f)Cf


Fog does not affect a fragment's alpha component.

In color index mode, the fragment's color index ir is replaced by

                         ir'=ir+(1-f)if



ERRORS

       GL_INVALID_ENUM is generated if _param1 is not an accepted
       value, or if _param1 is GL_FOG_MODE and _param2 is not  an
       glGet with argument GL_FOG_START
       glGet with argument GL_FOG_END
       glGet with argument GL_FOG_MODE


SEE ALSO

       glEnable



                                                                1