ARB_geometry_shader4 defines a new shader type available to be run on the GPU, called a geometry shader. Geometry shaders are run after vertices are transformed, but prior to color clamping, flat shading and clipping.
A geometry shader begins with a single primitive (point, line, triangle). It can read the attributes of any of the vertices in the primitive and use them to generate new primitives. A geometry shader has a fixed output primitive type (point, line strip, or triangle strip) and emits vertices to define a new primitive. A geometry shader can emit multiple disconnected primitives. The primitives emitted by the geometry shader are clipped and then processed like an equivalent OpenGL primitive specified by the application.
Furthermore, ARB_geometry_shader4 provides four additional primitive types: lines with adjacency, line strips with adjacency, separate triangles with adjacency, and triangle strips with adjacency. Some of the vertices specified in these new primitive types are not part of the ordinary primitives, instead they represent neighboring vertices that are adjacent to the two line segment end points (lines/strips) or the three triangle edges (triangles/tstrips). These vertices can be accessed by geometry shaders and used to match up the vertices emitted by the geometry shader with those of neighboring primitives.
Since geometry shaders expect a specific input primitive type, an error will occur if the application presents primitives of a different type. For
example, if a geometry shader expects points, an error will occur at Begin time, if a primitive mode of TRIANGLES is specified.
Promoted to core in OpenGL 3..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
Accepted by the |
| public static final int | GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
Accepted by the |
| public static final int | GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
Returned by CheckFramebufferStatusARB. |
| public static final int | GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
Returned by CheckFramebufferStatusARB. |
| public static final int | GL_GEOMETRY_INPUT_TYPE_ARB
Accepted by the |
| public static final int | GL_GEOMETRY_OUTPUT_TYPE_ARB
Accepted by the |
| public static final int | GL_GEOMETRY_SHADER_ARB
Accepted by the |
| public static final int | GL_GEOMETRY_VERTICES_OUT_ARB
Accepted by the |
| public static final int | GL_LINE_STRIP_ADJACENCY_ARB
Accepted by the |
| public static final int | GL_LINES_ADJACENCY_ARB
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
Accepted by the |
| public static final int | GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
Accepted by the |
| public static final int | GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
Accepted by the |
| public static final int | GL_PROGRAM_POINT_SIZE_ARB
Accepted by the |
| public static final int | GL_TRIANGLE_STRIP_ADJACENCY_ARB
Accepted by the |
| public static final int | GL_TRIANGLES_ADJACENCY_ARB
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | |||
|---|---|---|---|---|
| public static native void | glFramebufferTextureARB(int
the render target. Must be: target, int
must be one of the attachments points of the framebuffer attachment, int the texture object name texture, int the texture level level)Attaches a specified level of a texture object as one of the logical buffers of the currently bound framebuffer object, to render directly into the texture image. | |||
| public static native void | glFramebufferTextureFaceARB(int
the render target. Must be: target, int
must be one of the attachments points of the framebuffer attachment, int the texture object name texture, int the texture level level, int face)Operates like | |||
| public static native void | glFramebufferTextureLayerARB(int
the render target. Must be: target, int
must be one of the attachments points of the framebuffer attachment, int the texture object name texture, int the texture level level, int the texture layer layer)Operates like | |||
| public static native void | glProgramParameteriARB(int
the program object program, int the parameter to set. One of: pname, int
the value being set value)Sets a program object parameter. |
| GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB | back to summary |
|---|---|
| public static final int GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB Accepted by the | |
| GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | back to summary |
|---|---|
| public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER Accepted by the | |
| GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB | back to summary |
|---|---|
| public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB Returned by CheckFramebufferStatusARB. | |
| GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB | back to summary |
|---|---|
| public static final int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB Returned by CheckFramebufferStatusARB. | |
| GL_GEOMETRY_INPUT_TYPE_ARB | back to summary |
|---|---|
| public static final int GL_GEOMETRY_INPUT_TYPE_ARB Accepted by the | |
| GL_GEOMETRY_OUTPUT_TYPE_ARB | back to summary |
|---|---|
| public static final int GL_GEOMETRY_OUTPUT_TYPE_ARB Accepted by the | |
| GL_GEOMETRY_SHADER_ARB | back to summary |
|---|---|
| public static final int GL_GEOMETRY_SHADER_ARB Accepted by the | |
| GL_GEOMETRY_VERTICES_OUT_ARB | back to summary |
|---|---|
| public static final int GL_GEOMETRY_VERTICES_OUT_ARB Accepted by the | |
| GL_LINE_STRIP_ADJACENCY_ARB | back to summary |
|---|---|
| public static final int GL_LINE_STRIP_ADJACENCY_ARB Accepted by the | |
| GL_LINES_ADJACENCY_ARB | back to summary |
|---|---|
| public static final int GL_LINES_ADJACENCY_ARB Accepted by the | |
| GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB Accepted by the | |
| GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB Accepted by the | |
| GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB Accepted by the | |
| GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB Accepted by the | |
| GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB Accepted by the | |
| GL_MAX_VERTEX_VARYING_COMPONENTS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_VERTEX_VARYING_COMPONENTS_ARB Accepted by the | |
| GL_PROGRAM_POINT_SIZE_ARB | back to summary |
|---|---|
| public static final int GL_PROGRAM_POINT_SIZE_ARB Accepted by the | |
| GL_TRIANGLE_STRIP_ADJACENCY_ARB | back to summary |
|---|---|
| public static final int GL_TRIANGLE_STRIP_ADJACENCY_ARB Accepted by the | |
| GL_TRIANGLES_ADJACENCY_ARB | back to summary |
|---|---|
| public static final int GL_TRIANGLES_ADJACENCY_ARB Accepted by the | |
| ARBGeometryShader4 | back to summary |
|---|---|
| protected ARBGeometryShader4() | |
| glFramebufferTextureARB | back to summary | |
|---|---|---|
| public static native void glFramebufferTextureARB(int target, int attachment, int texture, int level) Attaches a specified level of a texture object as one of the logical buffers of the currently bound framebuffer object, to render directly into the texture image. If If If
| ||
| glFramebufferTextureFaceARB | back to summary | |||||||
|---|---|---|---|---|---|---|---|---|
| public static native void glFramebufferTextureFaceARB(int target, int attachment, int texture, int level, int face) Operates like If
| ||||||||
| glFramebufferTextureLayerARB | back to summary | |
|---|---|---|
| public static native void glFramebufferTextureLayerARB(int target, int attachment, int texture, int level, int layer) Operates like If
| ||
| glProgramParameteriARB | back to summary | |||
|---|---|---|---|---|
| public static native void glProgramParameteriARB(int program, int pname, int value) Sets a program object parameter. The error The error The error The error The error
| ||||