Add glMatrix

This commit is contained in:
schmelczerandras 2020-07-22 20:00:57 +02:00
parent 582979d3ed
commit e88b4589d2
26 changed files with 211 additions and 358 deletions

View file

@ -8,12 +8,18 @@ precision mediump float;
uniform vec2[LINE_COUNT * 2] lines;
uniform float[LINE_COUNT] radii;
uniform float[LINE_COUNT * 2] radii;
float lineDistance(in vec2 target, in vec2 start, in vec2 end, in float radius) {
float lineDistance(
in vec2 target,
in vec2 start,
in vec2 end,
in float radiusFrom,
in float radiusTo
) {
vec2 pa = target - start, ba = end - start;
float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);
return distance(pa, ba * h) - radius;
return distance(pa, ba * h) - mix(radiusFrom, radiusTo, smoothstep(0.0, 1.0, h));
}
float getDistance(in vec2 target) {
@ -22,8 +28,9 @@ float getDistance(in vec2 target) {
for (int i = 0; i < LINE_COUNT; i++) {
vec2 start = lines[2 * i];
vec2 end = lines[2 * i + 1];
float r = radii[i];
minDistance = min(minDistance, lineDistance(target, start, end, r));
float rFrom = radii[2 * i];
float rTo = radii[2 * i + 1];
minDistance = min(minDistance, lineDistance(target, start, end, rFrom, rTo));
}
return -minDistance;