]> git.sesse.net Git - nageru/blobdiff - equations.vert
Allow symlinked frame files. Useful for testing.
[nageru] / equations.vert
index eec3c170aa6c7cb2361d1d2a6daa744ff0ad85fd..731e1599170499c6776f4b37b05d4b0ef8e58b91 100644 (file)
@@ -1,11 +1,12 @@
 #version 450 core
+#extension GL_ARB_shader_viewport_layer_array : require
 
 layout(location=0) in vec2 position;
-out vec2 tc0, tc_left0, tc_down0;
-out vec2 tc1, tc_left1, tc_down1;
+out vec3 tc0, tc_left0, tc_down0;
+out vec3 tc1, tc_left1, tc_down1;
 out float line_offset;
 
-uniform sampler2D diffusivity_tex;
+uniform sampler2DArray diffusivity_tex;
 
 void main()
 {
@@ -16,21 +17,22 @@ void main()
        //   0.000  0.000 -2.000 -1.000
        //   0.000  0.000  0.000  1.000
        gl_Position = vec4(2.0 * position.x - 1.0, 2.0 * position.y - 1.0, -1.0, 1.0);
+       gl_Layer = gl_InstanceID;
 
-       const vec2 half_texel = 0.5f / textureSize(diffusivity_tex, 0);
+       const vec2 half_texel = 0.5f / textureSize(diffusivity_tex, 0).xy;
 
        vec2 tc = position;
        vec2 tc_left = vec2(tc.x - half_texel.x, tc.y);
        vec2 tc_down = vec2(tc.x, tc.y - half_texel.y);
 
        // Adjust for different texel centers.
-       tc0 = vec2(tc.x - half_texel.x, tc.y);
-       tc_left0 = vec2(tc_left.x - half_texel.x, tc_left.y);
-       tc_down0 = vec2(tc_down.x - half_texel.x, tc_down.y);
+       tc0 = vec3(tc.x - half_texel.x, tc.y, gl_InstanceID);
+       tc_left0 = vec3(tc_left.x - half_texel.x, tc_left.y, gl_InstanceID);
+       tc_down0 = vec3(tc_down.x - half_texel.x, tc_down.y, gl_InstanceID);
 
-       tc1 = vec2(tc.x + half_texel.x, tc.y);
-       tc_left1 = vec2(tc_left.x + half_texel.x, tc_left.y);
-       tc_down1 = vec2(tc_down.x + half_texel.x, tc_down.y);
+       tc1 = vec3(tc.x + half_texel.x, tc.y, gl_InstanceID);
+       tc_left1 = vec3(tc_left.x + half_texel.x, tc_left.y, gl_InstanceID);
+       tc_down1 = vec3(tc_down.x + half_texel.x, tc_down.y, gl_InstanceID);
 
        line_offset = position.y * textureSize(diffusivity_tex, 0).y - 0.5f;
 }