summaryrefslogtreecommitdiffstats
path: root/iq_sdf.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-12-30 18:31:06 -0800
committeryum <yum.food.vr@gmail.com>2024-12-30 18:31:06 -0800
commit4880e4125f529496a48269eda545ca006db17646 (patch)
treeef0264bae58c0c1f8b2b33c1100502e75dc502a2 /iq_sdf.cginc
parent2743c9640efcf79843b9c985e0b48dd4403fb804 (diff)
Begin adding gimmicks for downstairs map
Included changes: * Update LTCGI includes * Add toggle to force world lighting * Unity fucking sucks dick and balls and doesn't set LIGHTMAP_ON consistently * Add some more sdfs for raymarching * Add separate LTCGI lighting mode for avatar vs. world
Diffstat (limited to 'iq_sdf.cginc')
-rw-r--r--iq_sdf.cginc22
1 files changed, 22 insertions, 0 deletions
diff --git a/iq_sdf.cginc b/iq_sdf.cginc
index 6320e57..fa5f2c5 100644
--- a/iq_sdf.cginc
+++ b/iq_sdf.cginc
@@ -56,6 +56,12 @@ float distance_from_box(float3 p, float3 b)
return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);
}
+float distance_from_round_box(float3 p, float3 b, float r)
+{
+ float3 q = abs(p) - b + r;
+ return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0) - r;
+}
+
float distance_from_box_frame(float3 p, float3 b, float e)
{
p = abs(p)-b;
@@ -97,11 +103,27 @@ float distance_from_plane(float3 p, float3 n, float h)
return dot(p,n) + h;
}
+float distance_from_cylinder(float3 p, float3 c)
+{
+ return length(p.xz-c.xy)-c.z;
+}
+
+float distance_from_capped_cylinder(float3 p, float h, float r)
+{
+ float2 d = abs(float2(length(p.xz),p.y)) - float2(r,h);
+ return min(max(d.x,d.y),0.0) + length(max(d,0.0));
+}
+
float3 op_rep(in float3 p, in float3 c)
{
return glsl_mod(p+0.5*c,c)-0.5*c;
}
+float op_sub(float d1, float d2)
+{
+ return max(-d1,d2);
+}
+
// End licensed section
#endif // __IQ_SDF_INC