From c6030846f5c1e34048774d60ca4c15e804bee839 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Sat, 14 Mar 2015 20:32:26 +0000 Subject: Gem linux/amd64 built '' for linux/amd64 --- Gem/examples/10.glsl/tri2fan.geom | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Gem/examples/10.glsl/tri2fan.geom (limited to 'Gem/examples/10.glsl/tri2fan.geom') diff --git a/Gem/examples/10.glsl/tri2fan.geom b/Gem/examples/10.glsl/tri2fan.geom new file mode 100644 index 0000000..45961e2 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.geom @@ -0,0 +1,51 @@ +// Cyrille Henry 2010 + +#version 120 +#extension GL_EXT_geometry_shader4 : enable + +void main(void) +{ + + int i; //increment variable + vec4 pos1,pos2, pos3, pos4, pos5; // tmp + vec3 high; + + for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles + pos1 = gl_PositionIn[i]; + pos2 = gl_PositionIn[i+1]; + pos3 = gl_PositionIn[i+2]; + pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle + + high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); + // hight and orientation of the piramide + + high = normalize(high); + high *= length(pos2-pos1); + pos5 = pos4 ; + pos5.xyz += high; + + gl_Position = gl_ModelViewProjectionMatrix * pos1; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos2; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos3; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + + EndPrimitive(); + // new primitive + } + +} + -- cgit v1.2.1