1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#version 330
layout (location = 0) out vec3 gPosition;
layout (location = 1) out vec4 gNormalAndShadow;	//gNormalAndShadow = vec4(Normal, IsShadow);
layout (location = 2) out vec4 gColor;	

uniform vec4 color;


void main()
{  
	if (length(gl_PointCoord - vec2(0.5, 0.5)) > 0.5) {
        discard;
    }  
	gColor = color;
	vec2 xy = (gl_PointCoord - vec2(0.5, 0.5))/0.5;
	float z = sqrt(1 - length(xy)*length(xy));
	gNormalAndShadow = vec4(xy, z, 0);

}