summaryrefslogtreecommitdiff
path: root/assets/ball_f.glsl
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2020-12-06 19:13:20 -0500
committerLeo Tenenbaum <pommicket@gmail.com>2020-12-06 19:13:20 -0500
commit2227e40af76aa10d87bbcce0f7df73d98407881b (patch)
tree02509a67a6095474cdd60df6a26b3dd4c80373de /assets/ball_f.glsl
parent950b3c95590aea7420e7dd4c7ae21ba0a0805ea6 (diff)
finish platform shader & ball shader
Diffstat (limited to 'assets/ball_f.glsl')
-rw-r--r--assets/ball_f.glsl19
1 files changed, 19 insertions, 0 deletions
diff --git a/assets/ball_f.glsl b/assets/ball_f.glsl
new file mode 100644
index 0000000..e3dfdb3
--- /dev/null
+++ b/assets/ball_f.glsl
@@ -0,0 +1,19 @@
+varying vec4 color;
+varying vec2 pos;
+uniform vec2 center;
+uniform float radius;
+
+void main() {
+ float dist_squared = dot(pos - center, pos - center);
+ float threshold = 0.9 * radius; // radius border starts at
+ float thickness = radius - threshold;
+
+ if (dist_squared > threshold * threshold && dist_squared < radius * radius) {
+ float dist = sqrt(dist_squared);
+ float v = (dist - threshold) / thickness;
+ v = 2.0 * v - 1.0;
+ gl_FragColor = color * (1.0 - v * v);
+ } else {
+ discard;
+ }
+}