MirBSD manpage: glFog(3), glFogf(3), glFogfv(3), glFogi(3), glFogiv(3)


GLFOG(3G)           UNIX Programmer's Manual            GLFOG(3G)

NAME

     glFogf, glFogi, glFogfv, glFogiv - specify fog parameters

C SPECIFICATION

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

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 parameters accept an array containing only a sin-
          gle 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 params to the fog
     parameter specified 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 fac-
                         tor, f. Three symbolic constants are
                         accepted: GL_LINEAR, GL_EXP, and

MirBSD #10-current     Printed 2021-12-07                       1

GLFOG(3G)           UNIX Programmer's Manual            GLFOG(3G)

                         GL_EXP2. The equations corresponding to
                         these symbolic 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 equa-
                         tion. The initial far distance is 1.

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

     GL_FOG_COLOR        params 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 representable value maps
                         to -1.0. Floating-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 fragment'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 equation for GL_LINEAR fog is
                               ___n________
                           f = end - start

     The equation for GL_EXP fog is

                         f = e-(density . z)

MirBSD #10-current     Printed 2021-12-07                       2

GLFOG(3G)           UNIX Programmer's Manual            GLFOG(3G)

     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 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 execution of glBegin and the corresponding exe-
     cution 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)

MirBSD #10-current     Printed 2021-12-07                       3

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.