24 lines
527 B
Text
24 lines
527 B
Text
|
#version 150 compatibility
|
||
|
#extension GL_EXT_geometry_shader4 : enable
|
||
|
|
||
|
out vec3 eye_position;
|
||
|
out vec3 normal;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
|
||
|
vec3 p0 = gl_PositionIn[0].xyz;
|
||
|
vec3 p1 = gl_PositionIn[1].xyz;
|
||
|
vec3 p2 = gl_PositionIn[2].xyz;
|
||
|
|
||
|
normal = normalize(gl_NormalMatrix * cross(p2-p0,p1-p0));
|
||
|
|
||
|
for (int i=0; i<3; ++i) {
|
||
|
vec4 heye_position = gl_ModelViewMatrix * gl_PositionIn[i];
|
||
|
eye_position = heye_position.xyz / heye_position.w;
|
||
|
gl_Position = gl_ProjectionMatrix * heye_position;
|
||
|
|
||
|
EmitVertex();
|
||
|
}
|
||
|
EndPrimitive();
|
||
|
}
|