layout(triangles, equal_spacing, ccw) in; uniform mat4 mvp; in vec4 fct[]; out vec4 fcolor; in vec4 cntr[]; vec4 n4_test(vec4 p){ vec3 offset = p.xyz - cntr[0].xyz; return vec4(cntr[0].xyz + normalize(offset), 1); } void main(){ vec4 p = gl_TessCoord.x * gl_in[0].gl_Position + gl_TessCoord.y * gl_in[1].gl_Position + gl_TessCoord.z * gl_in[2].gl_Position; gl_Position = mvp * n4_test(p); fcolor = gl_TessCoord.x * fct[0] + gl_TessCoord.y * fct[1] + gl_TessCoord.z * fct[2]; }