gl.Fog(pname, param)
#GL_FOG.
gl.Fog() assigns the value or values in params to the fog parameter specified by pname. The following values are accepted for pname:
#GL_FOG_MODEparam is a single 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 initial fog mode is #GL_EXP.
#GL_FOG_DENSITYparam is a single 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_STARTparam is a single floating-point value that specifies start, the near distance used in the linear fog equation.
The initial near distance is 0.
#GL_FOG_ENDparam is a single floating-point value that specifies end, the far distance used in the linear fog equation.
The initial far distance is 1.
#GL_FOG_INDEXparam is a single floating-point value that specifies i f , the fog color index. The initial fog index is 0.
#GL_FOG_COLORparam must be a table containing four floating-point values that specify Cf, the fog color. 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 post-texturing color using a blending factor f. Factor f is
computed in one of three ways, depending on the fog mode. Let c be the distance in eye coordinates from the origin to the fragment
being fogged. The equation for #GL_LINEAR fog is
f = (end - c) / (end - start) |
The equation for #GL_EXP fog is
f = e^(-density*c) |
The equation for #GL_EXP2 fog is
f = e^(-density*c)^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' = f*Cr+(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' = f*ir+(1-f)*if |
Please consult an OpenGL reference manual for more information.
#GL_FOG_MODE, #GL_FOG_DENSITY, #GL_FOG_START, #GL_FOG_END, #GL_FOG_INDEX, and #GL_FOG_COLOR are acceptedpname will be set to#GL_INVALID_ENUM is generated if pname is not an accepted value, or if pname is #GL_FOG_MODE and param is not an accepted value.
#GL_INVALID_VALUE is generated if pname is #GL_FOG_DENSITY and param is negative.
#GL_INVALID_OPERATION is generated if gl.Fog() is executed between the execution of gl.Begin() and the corresponding execution of gl.End() .
#GL_FOG
gl.Get() with argument #GL_FOG_COLOR
gl.Get() with argument #GL_FOG_INDEX
gl.Get() with argument #GL_FOG_DENSITY
gl.Get() with argument #GL_FOG_START
gl.Get() with argument #GL_FOG_END
gl.Get() with argument #GL_FOG_MODE