OpenGL.GL.AMD.vertex_shader_tessellator
OpenGL extension AMD.vertex_shader_tessellator
This module customises the behaviour of the
OpenGL.raw.GL.AMD.vertex_shader_tessellator to provide a more
Python-friendly API
Overview (from the spec)
The vertex shader tessellator gives new flexibility to the shader
author to shade at a tessellated vertex, rather than just at a
provided vertex.
In unextended vertex shading, the built-in attributes such as
gl_Vertex, gl_Normal, and gl_MultiTexcoord0, together with the
user defined attributes, are system provided values which are
initialized prior to vertex shader invocation.
With vertex shading tessellation, additional vertex shader special
values are available:
ivec3 gl_VertexTriangleIndex; // indices of the three control
// points for the vertex
vec3 gl_BarycentricCoord; // barycentric coordinates
// of the vertex
i o
| | *--*
|\ | | \| *--*--*
|\ |\ | | \| \| j o--*--*--o k
Figure 1 A Tessellated Triangle
o = control point (and tessellated vertex)
* = tessellated vertex
ivec4 gl_VertexQuadIndex; // indices for the four control
// points for the vertex
vec2 gl_UVCoord; // UV coordinates of the vertex
i o--*--*--o k
|\ |\ |\ |
| \| \| \|
*--*--*--*
|\ |\ |\ |
| \| \| \|
*--*--*--*
|\ |\ |\ |
| \| \| \|
j o--*--*--o l
Figure 2 A Tessellated Quad
o = control point (and tessellated vertex)
* = tessellated vertex
When this extension is enabled, conventional built-in attributes
and user defined attributes are uninitialized. The shader writer
is responsible for explicitly fetching all other vertex data either
from textures, uniform buffers, or vertex buffers.
The shader writer is further responsible for interpolating
the vertex data at the given barycentric coordinates or uv
coordinates of the vertex.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
Functions
Constants
GL_CONTINUOUS_AMD (36871)
GL_DISCRETE_AMD (36870)
GL_INT_SAMPLER_BUFFER_AMD (36866)
GL_SAMPLER_BUFFER_AMD (36865)
GL_TESSELLATION_FACTOR_AMD (36869)
GL_TESSELLATION_MODE_AMD (36868)
GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD (36867)