aboutsummaryrefslogtreecommitdiff
path: root/flowy/src/shader.wgsl
diff options
context:
space:
mode:
Diffstat (limited to 'flowy/src/shader.wgsl')
-rw-r--r--flowy/src/shader.wgsl50
1 files changed, 0 insertions, 50 deletions
diff --git a/flowy/src/shader.wgsl b/flowy/src/shader.wgsl
deleted file mode 100644
index bfa4176..0000000
--- a/flowy/src/shader.wgsl
+++ /dev/null
@@ -1,50 +0,0 @@
-
-@group(0) @binding(0) var output: texture_storage_2d<bgra8unorm, write>;
-@group(0) @binding(1) var texa: texture_2d<f32>;
-@group(0) @binding(2) var texb: texture_2d<f32>;
-
-const SDIST: i32 = 4;
-
-const NN: vec2<i32> = vec2(-1,-1);
-const NP: vec2<i32> = vec2(-1,1);
-const PN: vec2<i32> = vec2(1,-1);
-const PP: vec2<i32> = vec2(1,1);
-
-@compute @workgroup_size(1) fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
- let uv = vec2<i32>(global_id.xy);
- let orig = textureLoad(texa, uv, 0);
- let orignn = textureLoad(texa, uv+NN, 0);
- let orignp = textureLoad(texa, uv+NP, 0);
- let origpn = textureLoad(texa, uv+PN, 0);
- let origpp = textureLoad(texa, uv+PP, 0);
-
- var best_sim = 1000.;
- var best_coord = vec2(0,0);
- for (var x = -SDIST; x <= SDIST; x++) {
- for (var y = -SDIST; y <= SDIST; y++) {
- let ov = uv + vec2(x,y);
- let samp = textureLoad(texb, ov, 0);
- let sampnn = textureLoad(texb, ov+NN, 0);
- let sampnp = textureLoad(texb, ov+NP, 0);
- let samppn = textureLoad(texb, ov+PN, 0);
- let samppp = textureLoad(texb, ov+PP, 0);
- let d = distance(samp.rgb, orig.rgb)
- + distance(sampnn.rgb, orignn.rgb)
- + distance(sampnp.rgb, orignp.rgb)
- + distance(samppn.rgb, origpn.rgb)
- + distance(samppp.rgb, origpp.rgb);
- if d < best_sim {
- best_sim = d;
- best_coord = vec2(x,y);
- }
- }}
-
- let col = vec4(colormap_vec(vec2<f32>(best_coord) / f32(SDIST)), 1.);
-
- textureStore(output, global_id.xy, col);
-}
-
-fn colormap_vec(v: vec2<f32>) -> vec3<f32> {
- return vec3(v.y, v.x - 0.5 * v.y, -v.x - 0.5 * v.y);
-}
-