diff options
Diffstat (limited to 'src/main/resources/shaders/modules/sdf.glsl')
| -rw-r--r-- | src/main/resources/shaders/modules/sdf.glsl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/resources/shaders/modules/sdf.glsl b/src/main/resources/shaders/modules/sdf.glsl index e7222b4..4c2f60c 100644 --- a/src/main/resources/shaders/modules/sdf.glsl +++ b/src/main/resources/shaders/modules/sdf.glsl @@ -26,8 +26,13 @@ float sd_ellipsoid(vec3 p, vec3 r) { return k0 * (k0 - 1.0) / k1; } -float sd_cone(vec3 p, vec2 c) { +float sdf_cone(vec3 p, vec2 c) { vec2 q = vec2(length(p.xz), -p.y); float d = length(q - c * max(dot(q, c), 0.0)); return d * ((q.x * c.y - q.y * c.x < 0.0) ? -1.0 : 1.0); } + +float sdf_capsule(vec3 p, float h, float r) { + p.y -= clamp(p.y, 0.0, h); + return length(p) - r; +} |
