glFog.3gl




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 single value.

Description

  Fog is enabled and disabled with glEnable and	glDisable using	the argument
  GL_FOG.  While enabled, fog affects rasterized geometry, bitmaps, and	pixel
  blocks, but not buffer clear operations.

  glFog	assigns	the value or values in params to the fog parameter specified
  by pname.  The accepted values for pname are as follows:

  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 constants are
		      accepted:	GL_LINEAR, GL_EXP, and GL_EXP2.	 The
		      equations	corresponding to these symbolic	constants are
		      defined below.  The default 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 default fog density is	1.0.

  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 default near distance is 0.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 default far distance is 1.0.

  GL_FOG_INDEX	      params is	a single integer or floating-point value that
		      specifies	i , the	fog color index.  The default fog
                                 f
		      index is 0.0.

  GL_FOG_COLOR	      params contains four integer or floating-point values
		      that specify C , the fog color.  Integer values are
                                    f
		      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
		      default 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

			      end - z
			f = -----------
			    end	- start

  The equation for GL_EXP fog is
					     
		             -(density · z)
                        f = e


  The equation for GL_EXP2 fog is

                                           2
			     -(density · z)
		        f = e


  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 color Cr
  is replaced by

			       C' = fC +(1-f)C 
                                r     r       f

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

			       i' = i +(1-f)i
                                r    r       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	called between a call to
  glBegin and the corresponding	call to	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


Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV