X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld42_outofspace;a=blobdiff_plain;f=sdr%2Ffield.te.glsl;fp=sdr%2Ffield.te.glsl;h=eaf485dcb9e4066c7a4fc068822e5bd78054ac4f;hp=cb0151517a07cd6c8ca6271b421bbe332e9ed005;hb=066942396f5fbac07e608bc5b23bb6d3cdccc42a;hpb=89df915930177f3bc5f71095562c6e15074be220 diff --git a/sdr/field.te.glsl b/sdr/field.te.glsl index cb01515..eaf485d 100644 --- a/sdr/field.te.glsl +++ b/sdr/field.te.glsl @@ -2,21 +2,22 @@ layout(quads, ccw) in; +uniform sampler2D field_tex; +uniform float field_scale; + void main() { vec4 v1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x); vec4 v2 = mix(gl_in[3].gl_Position, gl_in[2].gl_Position, gl_TessCoord.x); vec4 pos = mix(v1, v2, gl_TessCoord.y); - vec4 top0 = mix(gl_in[0].gl_TexCoord[0], gl_in[1].gl_TexCoord[0], gl_TessCoord.x); - vec4 bot0 = mix(gl_in[3].gl_TexCoord[0], gl_in[2].gl_TexCoord[0], gl_TessCoord.x); - vec4 res0 = mix(top0, bot0, gl_TessCoord.y); + vec4 top = mix(gl_in[0].gl_TexCoord[0], gl_in[1].gl_TexCoord[0], gl_TessCoord.x); + vec4 bot = mix(gl_in[3].gl_TexCoord[0], gl_in[2].gl_TexCoord[0], gl_TessCoord.x); + vec4 uv = mix(top, bot, gl_TessCoord.y); - vec4 top1 = mix(gl_in[0].gl_TexCoord[1], gl_in[1].gl_TexCoord[1], gl_TessCoord.x); - vec4 bot1 = mix(gl_in[3].gl_TexCoord[1], gl_in[2].gl_TexCoord[1], gl_TessCoord.x); - vec4 res1 = mix(top1, bot1, gl_TessCoord.y); + float field = -texture2D(field_tex, uv.st).x; + pos.y = field * field_scale; gl_Position = gl_ModelViewProjectionMatrix * pos; - gl_TexCoord[0] = res0; - gl_TexCoord[1] = res1; + gl_TexCoord[0] = uv; }