cybergrid
[vrfileman] / sdr / grid.p.glsl
diff --git a/sdr/grid.p.glsl b/sdr/grid.p.glsl
new file mode 100644 (file)
index 0000000..86a30a5
--- /dev/null
@@ -0,0 +1,23 @@
+varying vec3 pos, vpos;
+
+float grid(vec2 p, float duty)
+{
+       float w = duty * 0.5;
+       p = fract(p);
+       return smoothstep(1.0 - w, 1.0, p.x) + (1.0 - smoothstep(0.0, w, p.x)) +
+               smoothstep(1.0 - w, 1.0, p.y) + (1.0 - smoothstep(0.0, w, p.y));
+}
+
+void main()
+{
+       vec3 p = pos * 500.0;
+
+       const vec3 grid_color = vec3(1.0, 0.2, 0.8);
+       const vec3 bg_color = vec3(0.5, 0.1, 1.0);
+       vec3 color = grid_color * grid(p.xz, 0.2);
+
+       float fog = min(abs(vpos.z) * 0.05, 1.0);
+
+       gl_FragColor.xyz = mix(color, bg_color, fog);
+       gl_FragColor.a = 1.0;
+}