]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/forestpond/data/fluidsim.glsl
Implement water simulation and surface shader for forest pond
[libs/gl.git] / demos / forestpond / data / fluidsim.glsl
diff --git a/demos/forestpond/data/fluidsim.glsl b/demos/forestpond/data/fluidsim.glsl
new file mode 100644 (file)
index 0000000..c440026
--- /dev/null
@@ -0,0 +1,31 @@
+#pragma MSP stage(compute)
+layout(local_size_x=8, local_size_y=8) in;
+
+uniform Params
+{
+       float delta_time;
+       float velocity_damping;
+       float gravity;
+       float max_flow_fraction;
+       float residual_depth;
+       ivec2 drop_pos;
+       float drop_time;
+};
+
+layout(push_constant) uniform Time
+{
+       float time;
+};
+
+uniform sampler2D surface_in;
+uniform sampler2D velocity_in;
+uniform sampler2D clamping_in;
+uniform sampler2D bottom_in;
+layout(r32f) uniform image2D surface_out;
+layout(rg32f) uniform image2D velocity_out;
+layout(r32f) uniform image2D clamping_out;
+
+float get_depth(ivec2 coord)
+{
+       return texelFetch(surface_in, coord, 0).x-texelFetch(bottom_in, coord, 0).x;
+}