changed: gcc8 base update
[opensg.git] / Examples / CSM / Shader / Geometry / geo.gp
blobd962b7ecdcb966cd57d059fe0a3b595eb56026d2
1 #version 120
2 #extension GL_EXT_geometry_shader4 : enable
4 void main(void)
6     vec4 v1 = gl_PositionIn[0];
7     vec4 v2 = gl_PositionIn[1];
8     vec4 v3 = gl_PositionIn[2];
10     vec4 l1 = v2 - v1;
11     vec4 l2 = v3 - v1;
13     gl_Position = gl_ModelViewProjectionMatrix * v1;
14     gl_FrontColor = vec4(0.0, 1.0, 0.0, 0.0);
15     EmitVertex();
17     gl_Position = gl_ModelViewProjectionMatrix * v2;
18     gl_FrontColor = vec4(0.0, 1.0, 0.0, 0.0);
19     EmitVertex();
21     gl_Position = gl_ModelViewProjectionMatrix * v3;
22     gl_FrontColor = vec4(0.0, 1.0, 0.0, 0.0);
23     EmitVertex();
25     EndPrimitive();
27     vec3 l1n = l1.xyz;
28     vec3 l2n = l2.xyz;
30     vec3 N = cross(l1n.xyz, l2n.xyz);
31     N = normalize(N);
33     vec4 middle = v1 + 0.333 * l1 + 0.333 * l2;
34     gl_Position = gl_ModelViewProjectionMatrix * middle;
35     gl_FrontColor = gl_TexCoordIn[0][0];
36     EmitVertex();
38     gl_FrontColor = gl_TexCoordIn[0][0];
39     gl_Position = 
40         gl_ModelViewProjectionMatrix * (middle + 0.1 * vec4(N, 0.0));
41     EmitVertex();
43     gl_FrontColor = gl_TexCoordIn[0][0];
44     gl_Position = 
45         gl_ModelViewProjectionMatrix * (middle + vec4(0.01,0.01,0.01,0.0));
46     EmitVertex();
48     EndPrimitive();