layout(points) in;
layout(triangle_strip, max_vertices=4) out;
uniform mat4 ModelViewMatrix;
uniform mat4 ProjectionMatrix;
in geom_vert
{
vec4 position;
}gl_in[];
out geom_frag
{
vec2 texcoord;
vec4 color;
};
void main(void)
{
const float size = 0.1;
vec4 pos = ModelViewMatrix * gl_in[0].position;
color = gl_in[0].position;
texcoord = vec2(-1, -1);
gl_Position = ProjectionMatrix * (pos+vec4(texcoord*size, 0.0, 0.0));
EmitVertex();
texcoord = vec2(1, -1);
gl_Position = ProjectionMatrix * (pos+vec4(texcoord*size, 0.0, 0.0));
EmitVertex();
texcoord = vec2(-1, 1);
gl_Position = ProjectionMatrix * (pos+vec4(texcoord*size, 0.0, 0.0));
EmitVertex();
texcoord = vec2(1, 1);
gl_Position = ProjectionMatrix * (pos+vec4(texcoord*size, 0.0, 0.0));
EmitVertex();
EndPrimitive();
}
my simple geometry shader which draw quad in position of point.