I am currently trying to draw primitives as billboards (make them faced to screen). I already know how to draw texture as billboards.

For some reasons I see nothing. I already made some efforts but they are failed. Please, consider my shaders code.

Vertex Shader

Code :
in vec3 position;
 
uniform mat4 og_modelViewPerspectiveMatrix;
uniform mat4 og_viewportTransformationMatrix;
 
vec4 ModelToWindowCoordinates(
    vec4 v, 
    mat4 modelViewPerspectiveMatrix, 
    mat4 viewportTransformationMatrix)
{
    v = modelViewPerspectiveMatrix * v;                  // clip coordinates
    v.xyz /= v.w;                                                  // normalized device coordinates
    v.xyz = (viewportTransformationMatrix * vec4(v.xyz, 1.0)).xyz; // window coordinates
    return v;
}
 
void main()                     
{
    //gl_Position = ModelToWindowCoordinates(vec4(position, 1.0f),                     //Code which should draw billboards (I comment it because it is not working
    //    og_modelViewPerspectiveMatrix, og_viewportTransformationMatrix);
 
    gl_Position = og_modelViewPerspectiveMatrix * vec4(position, 1.0f);	
}

Geometry Shader

Code :
layout(lines) in;
layout(line_strip, max_vertices = 2) out;
 
uniform mat4 og_viewportOrthographicMatrix;
 
void main()
{
	int i = 0;
 
	for (i = 0; i < gl_in.length(); i++)
	{
 
           //gl_Position = og_viewportOrthographicMatrix * gl_in[i].gl_Position;    //Code which should draw billboards (I comment it because it is not working
           gl_Position = gl_in[i].gl_Position;
	   EmitVertex();
	}
}

Fragment Shader

Code :
out vec4 fragmentColor;
 
void main()
{
    fragmentColor = vec4(1.0f, 0.5f, 0.3f, 1.0f);
}

When I am drawing without billboarding code, geometry is drawn as regular primitives. This is what I actually get as output:

Click image for larger version. 

Name:	f2ivg.jpg 
Views:	151 
Size:	10.6 KB 
ID:	1493

My goal is to draw the same but make the "head" of arrow be always oriented to screen. When I change code to billboards pieces - simply get clean screen as output.

Please, help me to find solution.