home *** CD-ROM | disk | FTP | other *** search
- '''OpenGL extension NV.fog_distance
-
- Overview (from the spec)
-
- Ideally, the fog distance (used to compute the fog factor as
- described in Section 3.10) should be computed as the per-fragment
- Euclidean distance to the fragment center from the eye. In practice,
- implementations "may choose to approximate the eye-coordinate
- distance from the eye to each fragment center by abs(ze). Further,
- [the fog factor] f need not be computed at each fragment, but may
- be computed at each vertex and interpolated as other data are."
-
- This extension provides the application specific control over how
- OpenGL computes the distance used in computing the fog factor.
-
- The extension supports three fog distance modes: "eye plane absolute",
- where the fog distance is the absolute planar distance from the eye
- plane (i.e., OpenGL's standard implementation allowance as cited above);
- "eye plane", where the fog distance is the signed planar distance
- from the eye plane; and "eye radial", where the fog distance is
- computed as a Euclidean distance. In the case of the eye radial
- fog distance mode, the distance may be computed per-vertex and then
- interpolated per-fragment.
-
- The intent of this extension is to provide applications with better
- control over the tradeoff between performance and fog quality.
- The "eye planar" modes (signed or absolute) are straightforward
- to implement with good performance, but scenes are consistently
- under-fogged at the edges of the field of view. The "eye radial"
- mode can provide for more accurate fog at the edges of the field of
- view, but this assumes that either the eye radial fog distance is
- computed per-fragment, or if the fog distance is computed per-vertex
- and then interpolated per-fragment, then the scene must be
- sufficiently tessellated.
-
- The official definition of this extension is available here:
- http://oss.sgi.com/projects/ogl-sample/registry/NV/fog_distance.txt
-
- Automatically generated by the get_gl_extensions script, do not edit!
- '''
- from OpenGL import platform, constants, constant, arrays
- from OpenGL import extensions
- from OpenGL.GL import glget
- import ctypes
- EXTENSION_NAME = 'GL_NV_fog_distance'
- GL_FOG_DISTANCE_MODE_NV = constant.Constant( 'GL_FOG_DISTANCE_MODE_NV', 0x855A )
- glget.addGLGetConstant( GL_FOG_DISTANCE_MODE_NV, (1,) )
- GL_EYE_RADIAL_NV = constant.Constant( 'GL_EYE_RADIAL_NV', 0x855B )
- GL_EYE_PLANE_ABSOLUTE_NV = constant.Constant( 'GL_EYE_PLANE_ABSOLUTE_NV', 0x855C )
-
-
- def glInitFogDistanceNV():
- '''Return boolean indicating whether this extension is available'''
- return extensions.hasGLExtension( EXTENSION_NAME )
-