blob: 22b7a4900e428b509923431401e436f4fd8c26c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#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
}
}
|