aboutsummaryrefslogtreecommitdiff
path: root/src/main/resources/shaders/modules/sdf.glsl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/resources/shaders/modules/sdf.glsl6
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);
+}