diff options
| author | yum <yum.food.vr@gmail.com> | 2024-12-30 18:31:06 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-12-30 18:31:06 -0800 |
| commit | 4880e4125f529496a48269eda545ca006db17646 (patch) | |
| tree | ef0264bae58c0c1f8b2b33c1100502e75dc502a2 /iq_sdf.cginc | |
| parent | 2743c9640efcf79843b9c985e0b48dd4403fb804 (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.cginc | 22 |
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 |
