public class NVFramebufferMixedSamples
extends java.lang.Object
This extension allows multisample rendering with a raster and depth/stencil sample count that is larger than the color sample count. Rasterization and the results of the depth and stencil tests together determine the portion of a pixel that is "covered". It can be useful to evaluate coverage at a higher frequency than color samples are stored. This coverage is then "reduced" to a collection of covered color samples, each having an opacity value corresponding to the fraction of the color sample covered. The opacity can optionally be blended into individual color samples.
In the current hardware incarnation both depth and stencil testing are supported with mixed samples, although the API accommodates supporting only one or the other.
Rendering with fewer color samples than depth/stencil samples can greatly reduce the amount of memory and bandwidth consumed by the color buffer. However, converting the coverage values into opacity can introduce artifacts where triangles share edges and may not be suitable for normal triangle mesh rendering.
One expected use case for this functionality is Stencil-then-Cover path rendering (NV_path_rendering). The stencil step determines the coverage (in the stencil buffer) for an entire path at the higher sample frequency, and then the cover step can draw the path into the lower frequency color buffer using the coverage information to antialias path edges. With this two-step process, internal edges are fully covered when antialiasing is applied and there is no corruption on these edges.
The key features of this extension are:
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_COLOR_SAMPLES_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_COVERAGE_MODULATION_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_COVERAGE_MODULATION_TABLE_NV
Accepted by the
cap parameter of Enable, Disable, IsEnabled. |
static int |
GL_COVERAGE_MODULATION_TABLE_SIZE_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_DEPTH_SAMPLES_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_EFFECTIVE_RASTER_SAMPLES_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MAX_RASTER_SAMPLES_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_RASTER_MULTISAMPLE_EXT
Accepted by the
cap parameter of Enable, Disable, IsEnabled. |
static int |
GL_RASTER_SAMPLES_EXT
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
static int |
GL_STENCIL_SAMPLES_NV
Accepted by the
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. |
| Modifier and Type | Method and Description |
|---|---|
static void |
glCoverageModulationNV(int components) |
static void |
glCoverageModulationTableNV(float[] v)
Array version of:
CoverageModulationTableNV |
static void |
glCoverageModulationTableNV(java.nio.FloatBuffer v) |
static void |
glGetCoverageModulationTableNV(float[] v)
Array version of:
GetCoverageModulationTableNV |
static void |
glGetCoverageModulationTableNV(java.nio.FloatBuffer v) |
static void |
glRasterSamplesEXT(int samples,
boolean fixedsamplelocations) |
static void |
nglCoverageModulationTableNV(int n,
long v) |
static void |
nglGetCoverageModulationTableNV(int bufsize,
long v) |
public static final int GL_RASTER_MULTISAMPLE_EXT
cap parameter of Enable, Disable, IsEnabled.public static final int GL_COVERAGE_MODULATION_TABLE_NV
cap parameter of Enable, Disable, IsEnabled.public static final int GL_RASTER_SAMPLES_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MAX_RASTER_SAMPLES_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_EFFECTIVE_RASTER_SAMPLES_EXT
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_COLOR_SAMPLES_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_DEPTH_SAMPLES_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_STENCIL_SAMPLES_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_COVERAGE_MODULATION_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static final int GL_COVERAGE_MODULATION_TABLE_SIZE_NV
pname parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv.public static void glRasterSamplesEXT(int samples,
boolean fixedsamplelocations)
public static void nglCoverageModulationTableNV(int n,
long v)
public static void glCoverageModulationTableNV(java.nio.FloatBuffer v)
public static void nglGetCoverageModulationTableNV(int bufsize,
long v)
public static void glGetCoverageModulationTableNV(java.nio.FloatBuffer v)
public static void glCoverageModulationNV(int components)
public static void glCoverageModulationTableNV(float[] v)
CoverageModulationTableNVpublic static void glGetCoverageModulationTableNV(float[] v)
GetCoverageModulationTableNVCopyright LWJGL. All Rights Reserved. License terms.