blob: 685b5b07f4a779ff7af8bc9215eb5f7a0ae7e960 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#version 110
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);
d /= thickness;
float v = 1.0 - d * d;
gl_FragColor = color * v;
}
|