diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/resources/shaders/modules/sdf.glsl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/resources/shaders/modules/sdf.glsl b/src/main/resources/shaders/modules/sdf.glsl index c6787c9..e7222b4 100644 --- a/src/main/resources/shaders/modules/sdf.glsl +++ b/src/main/resources/shaders/modules/sdf.glsl @@ -25,3 +25,9 @@ float sd_ellipsoid(vec3 p, vec3 r) { float k1 = length(p / (r * r)); return k0 * (k0 - 1.0) / k1; } + +float sd_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); +} |
