geoInfo.gs
#version 330
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
in vec3 PosIn[3];
in vec2 TexCoordIn[3];
in vec4 PosLightSpaceIn[3];
in vec3 PosNormal[3];
in float DisIn[3];
out vec3 FragPos;
out vec2 TexCoord;
out vec3 Normal;
out vec4 fPosLightSpace;
out float fDis;
uniform bool smooth_mode;
void main()
{
vec3 n = cross(PosIn[1].xyz-PosIn[0].xyz, PosIn[2].xyz-PosIn[0].xyz);
for(int i = 0; i < gl_in.length(); i++)
{
gl_Position = gl_in[i].gl_Position;
FragPos = PosIn[i];
TexCoord = TexCoordIn[i];
Normal = smooth_mode? PosNormal[i] : n;
fDis = DisIn[i];
fPosLightSpace = PosLightSpaceIn[i];
EmitVertex();
}
}