org.lwjgl.opengl.NVFogDistance.java Source code

Java tutorial

Introduction

Here is the source code for org.lwjgl.opengl.NVFogDistance.java

Source

/*
 * 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 <a target="_blank" href="https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fog_distance.txt">NV_fog_distance</a> extension.
 * 
 * <p>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."</p>
 * 
 * <p>This extension provides the application specific control over how OpenGL computes the distance used in computing the fog factor.</p>
 * 
 * <p>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.</p>
 * 
 * <p>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.</p>
 */
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() {
    }

}