#version 430 // number of CPs in patch layout (vertices = 4) out; // from VS (use empty modifier [] so we can say anything) in vec3 controlpoint[]; // to evluation shader. will be used to guide positioning of generated points out vec3 evaluationpoint[]; float tessLevelInner = 30.0; // controlled by keyboard buttons float tessLevelOuter = 30.0; // controlled by keyboard buttons void main () { evaluationpoint[gl_InvocationID] = controlpoint[gl_InvocationID]; // Calculate the tessellation levels if ( gl_InvocationID == 0 ) { gl_TessLevelInner[0] = tessLevelInner; // number of nested primitives to generate gl_TessLevelInner[1] = tessLevelInner; // number of nested primitives to generate gl_TessLevelOuter[0] = tessLevelOuter; // times to subdivide first side gl_TessLevelOuter[1] = tessLevelOuter; // times to subdivide second side gl_TessLevelOuter[2] = tessLevelOuter; // times to subdivide second side gl_TessLevelOuter[3] = tessLevelOuter; // times to subdivide second side } }