Top Description Fields Constructors Methods
org.lwjgl.opengl

public final Class NVFogDistance

extends Object
Class Inheritance

Native bindings to the NV_fog_distance extension.

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.

Field Summary

Modifier and TypeField and Description
public static final int
GL_EYE_PLANE_ABSOLUTE_NV

When the pname parameter of Fogf, Fogi, Foggv, and Fogiv, is FOG_DISTANCE_MODE_NV, then the value of param or the value pointed to by params may be.

public static final int
GL_EYE_RADIAL_NV

When the pname parameter of Fogf, Fogi, Foggv, and Fogiv, is FOG_DISTANCE_MODE_NV, then the value of param or the value pointed to by params may be.

public static final int
GL_FOG_DISTANCE_MODE_NV

Accepted by the pname parameters of Fogf, Fogi, Fogfv, Fogiv, GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_EYE_PLANE_ABSOLUTE_NVback to summary
public static final int GL_EYE_PLANE_ABSOLUTE_NV

When the pname parameter of Fogf, Fogi, Foggv, and Fogiv, is FOG_DISTANCE_MODE_NV, then the value of param or the value pointed to by params may be.

GL_EYE_RADIAL_NVback to summary
public static final int GL_EYE_RADIAL_NV

When the pname parameter of Fogf, Fogi, Foggv, and Fogiv, is FOG_DISTANCE_MODE_NV, then the value of param or the value pointed to by params may be.

GL_FOG_DISTANCE_MODE_NVback to summary
public static final int GL_FOG_DISTANCE_MODE_NV

Accepted by the pname parameters of Fogf, Fogi, Fogfv, Fogiv, GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

Constructor Detail

NVFogDistanceback to summary
private NVFogDistance()