summaryrefslogtreecommitdiffstats
path: root/ray_marching.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-11-02 18:23:43 -0800
committeryum <yum.food.vr@gmail.com>2025-11-02 18:23:43 -0800
commit47b06274313d03ab3169ec07a87ac949bb5035fb (patch)
treea82097d9e23a649973e43d254739198d46fa5869 /ray_marching.cginc
parent0d7e2444c55eb2067792c6da57dad370e997fa4d (diff)
add hexagon sdf
Diffstat (limited to 'ray_marching.cginc')
-rw-r--r--ray_marching.cginc14
1 files changed, 14 insertions, 0 deletions
diff --git a/ray_marching.cginc b/ray_marching.cginc
index 57a3dff..d989dc8 100644
--- a/ray_marching.cginc
+++ b/ray_marching.cginc
@@ -100,6 +100,13 @@ void ray_march(inout v2f i) {
d_cur = min(d_cur, map_ball(p, _Ray_Marching_Ball_Radius));
}
#endif
+#if defined(_RAY_MARCHING_HEXAGON)
+ {
+ float r = _Ray_Marching_Hexagon_Radius;
+ float h = _Ray_Marching_Hexagon_Height;
+ d_cur = min(d_cur, map_hexagon(p, float2(r, h)));
+ }
+#endif
#if defined(_RAY_MARCHING_OVERSTEP)
d_cur *= (d_cur > 0 ? _Ray_Marching_Overstepping_Factor : 1.0f);
@@ -128,6 +135,13 @@ void ray_march(inout v2f i) {
map_ball_normal(r, lclPos, lclNorm, lclTan);
}
#endif
+#if defined(_RAY_MARCHING_HEXAGON)
+ {
+ float r = _Ray_Marching_Hexagon_Radius;
+ float h = _Ray_Marching_Hexagon_Height;
+ map_hexagon_normal(float2(r, h), lclPos, lclNorm, lclTan);
+ }
+#endif
i.objPos = lclPos;
i.normal = lclNorm;