summaryrefslogtreecommitdiff
path: root/assets/platform_f.glsl
blob: 82c87402e31730458cc3f0efe67c0dd848d99261 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
varying vec4 color;
varying vec2 p1, p2;
varying vec2 pos;
uniform float thickness;

void main() {
	// thanks to https://www.youtube.com/watch?v=PMltMdi1Wzg
	// (calculates distance to line segment p1-p2)
	float h = clamp(dot(pos-p1, p2-p1) / dot(p2-p1, p2-p1), 0.0, 1.0);
	float d = length(pos - p1 - (p2-p1) * h);
	
	float v = max(thickness - d, 0.0);
	v /= thickness;
	v *= v;

	gl_FragColor = color * v;
}