#version 450 core layout(vertices = 4) out; layout(binding = 0) uniform sampler2D heightTexture; uniform float tessellationFactor; in VS_OUT { vec3 position; vec2 texCoord; } tc_in[]; out TC_OUT { vec3 position; vec2 texCoord; } tc_out[]; void main() { // Pass through position and texture coordinates to the tessellation evaluation shader tc_out[gl_InvocationID].position = tc_in[gl_InvocationID].position; tc_out[gl_InvocationID].texCoord = tc_in[gl_InvocationID].texCoord; // Set tessellation levels if (gl_InvocationID == 0) { gl_TessLevelOuter[0] = tessellationFactor; gl_TessLevelOuter[1] = tessellationFactor; gl_TessLevelOuter[2] = tessellationFactor; gl_TessLevelOuter[3] = tessellationFactor; gl_TessLevelInner[0] = tessellationFactor; gl_TessLevelInner[1] = tessellationFactor; } }