All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengl.NVFogDistance Maven / Gradle / Ivy

/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengl;

/**
 * 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.

*/ public final class NVFogDistance { /** Accepted by the {@code pname} parameters of Fogf, Fogi, Fogfv, Fogiv, GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev. */ public static final int GL_FOG_DISTANCE_MODE_NV = 0x855A; /** * When the {@code pname} parameter of Fogf, Fogi, Foggv, and Fogiv, is FOG_DISTANCE_MODE_NV, then the value of {@code param} or the value pointed to by * {@code params} may be. */ public static final int GL_EYE_RADIAL_NV = 0x855B, GL_EYE_PLANE_ABSOLUTE_NV = 0x855C; private NVFogDistance() {} }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy