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

org.lwjgl.egl.NVCoverageSample Maven / Gradle / Ivy

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: http://lwjgl.org/license.php
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.egl;

/**
 * Native bindings to the NV_coverage_sample extension.
 * 
 * 

Anti-aliasing is a critical component for delivering high-quality OpenGL rendering. Traditionally, OpenGL implementations have implemented two * anti-aliasing algorithms: edge anti-aliasing and multisampling.

* *

Edge anti-aliasing computes fractional fragment coverage for all primitives in a rendered frame, and blends edges of abutting and/or overlapping * primitives to produce smooth results. The image quality produced by this approach is exceptionally high; however, applications are render their * geometry perfectly ordered back-to-front in order to avoid artifacts such as bleed-through. Given the algorithmic complexity and performance cost of * performing exact geometric sorts, edge anti-aliasing has been used very sparingly, and almost never in interactive games.

* *

Multisampling, on the other hand, computes and stores subpixel (a.k.a. "sample") coverage for rasterized fragments, and replicates all post-alpha test * operations (e.g., depth test, stencil test, alpha blend) for each sample. After the entire scene is rendered, the samples are filtered to compute the * final anti-aliased image. Because the post-alpha test operations are replicated for each sample, all of the bleed-through and ordering artifacts that * could occur with edge anti-aliasing are avoided completely; however, since each sample must be computed and stored separately, anti-aliasing quality is * limited by framebuffer storage and rendering performance.

* *

This extension introduces a new anti-aliasing algorithm to OpenGL, which dramatically improves multisampling quality without adversely affecting * multisampling's robustness or significantly increasing the storage required, coverage sampling.

* *

Coverage sampling adds an additional high-precision geometric coverage buffer to the framebuffer, which is used to produce high-quality filtered * results (with or without the presence of a multisample buffer). This coverage information is computed and stored during rasterization; since * applications may render objects where the specified geometry does not correspond to the visual result (examples include alpha-testing for "imposters," * or extruded volume rendering for stencil shadow volumes), coverage buffer updates may be masked by the application, analagous to masking the depth * buffer.

* *

Requires {@link EGL11 EGL L.1}.

*/ public final class NVCoverageSample { /** */ public static final int EGL_COVERAGE_BUFFERS_NV = 0x30E0, EGL_COVERAGE_SAMPLES_NV = 0x30E1; private NVCoverageSample() {} }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy