Geometry Shader/Defined Inputs

From OpenGL Wiki
< Geometry Shader
Revision as of 06:15, 26 July 2013 by Alfonse (talk | contribs) (separate page for built-in inputs.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Geometry Shaders provide the following built-in input variables:

in gl_PerVertex
{
  vec4 gl_Position;
  float gl_PointSize;
  float gl_ClipDistance[];
} gl_in[];

These values don't really mean anything; they're just whatever the prior stage wrote to them.

There are some GS input values that are based on primitives, not vertices. These are not aggregated into arrays. These are:

in int gl_PrimitiveIDIn;
in int gl_InvocationID;  //Requires GLSL 4.0 or ARB_gpu_shader5

gl_PrimitiveIDIn is the current input primitive's ID, based on the number of primitives processed by the GS since the current rendering command started.

gl_InvocationID is the current instance, as defined when instancing geometry shaders.