]> git.sesse.net Git - nageru/blobdiff - densify.frag
Allow symlinked frame files. Useful for testing.
[nageru] / densify.frag
index d16d6304a43b6a9475f6f34be8fe4d6479482d11..3bca126b2a458974cdeb5537771065ee480087fc 100644 (file)
@@ -1,10 +1,12 @@
 #version 450 core
 
 in vec2 image_pos;
+flat in int image0_layer, image1_layer;
 flat in vec2 flow_du;
+flat in float mean_diff;
 out vec3 flow_contribution;
 
-uniform sampler2D image0_tex, image1_tex;
+uniform sampler2DArray image_tex;
 
 void main()
 {
@@ -15,7 +17,8 @@ void main()
        // Note that equation (2) says 1 for the minimum error, but the code says 2.0.
        // And it says L2 norm, but really, the code does absolute value even for
        // L2 error norm (it uses a square root formula for L1 norm).
-       float diff = texture(image0_tex, image_pos).x - texture(image1_tex, image_pos + flow_du).x;
+       float diff = texture(image_tex, vec3(image_pos, image0_layer)).x - texture(image_tex, vec3(image_pos + flow_du, image1_layer)).x;
+       diff -= mean_diff;
        float weight = 1.0 / max(abs(diff), 2.0 / 255.0);
        flow_contribution = vec3(flow_du.x * weight, flow_du.y * weight, weight);
 }