tesselation
[ld42_outofspace] / sdr / field.te.glsl
1 #version 410 compatibility
2
3 layout(quads, ccw) in;
4
5 uniform sampler2D field_tex;
6 uniform float field_scale;
7
8 void main()
9 {
10         vec4 v1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);
11         vec4 v2 = mix(gl_in[3].gl_Position, gl_in[2].gl_Position, gl_TessCoord.x);
12         vec4 pos = mix(v1, v2, gl_TessCoord.y);
13
14         vec4 top = mix(gl_in[0].gl_TexCoord[0], gl_in[1].gl_TexCoord[0], gl_TessCoord.x);
15         vec4 bot = mix(gl_in[3].gl_TexCoord[0], gl_in[2].gl_TexCoord[0], gl_TessCoord.x);
16         vec4 uv = mix(top, bot, gl_TessCoord.y);
17
18         float field = -texture2D(field_tex, uv.st).x;
19         pos.y = field * field_scale;
20
21         gl_Position = gl_ModelViewProjectionMatrix * pos;
22         gl_TexCoord[0] = uv;
23 }