From 8c3a05445f529c10ebbf5bfdc0eb220fe95c558c Mon Sep 17 00:00:00 2001 From: yum Date: Tue, 13 Jan 2026 19:33:51 -0800 Subject: Fold: add hemi octahedron to plane operator --- vertex.cginc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'vertex.cginc') diff --git a/vertex.cginc b/vertex.cginc index e59813c..77412a9 100644 --- a/vertex.cginc +++ b/vertex.cginc @@ -14,6 +14,7 @@ #define OPCODE_SINE_WAVES 7 #define OPCODE_FBM 8 #define OPCODE_PLANE_TO_HEMI_OCTAHEDRON 9 +#define OPCODE_HEMI_OCTAHEDRON_TO_PLANE 10 #if defined(_VERTEX_DEFORMATION) @@ -165,6 +166,22 @@ void apply_plane_to_hemi_octahedron_normal(inout float3 objPos, inout float3 obj plane_to_hemi_octahedron_normal(objPos, objNorm, objTan, p, r, s, t); } +void apply_hemi_octahedron_to_plane(inout float3 objPos, float4 v0, float4 v1, float4 v2, float f0) { + float3 p = v0.xyz; + float3 r = v1.xyz; + float3 s = v2.xyz; + float t = f0; + objPos = hemi_octahedron_to_plane(objPos, p, r, s, t); +} + +void apply_hemi_octahedron_to_plane_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTan, float4 v0, float4 v1, float4 v2, float f0) { + float3 p = v0.xyz; + float3 r = v1.xyz; + float3 s = v2.xyz; + float t = f0; + hemi_octahedron_to_plane_normal(objPos, objNorm, objTan, p, r, s, t); +} + void deform(inout float3 objPos) { const float t = getTime(); @@ -400,6 +417,9 @@ void deform(inout float3 objPos) { case OPCODE_PLANE_TO_HEMI_OCTAHEDRON: apply_plane_to_hemi_octahedron(objPos, v0, v1, v2, f0); break; + case OPCODE_HEMI_OCTAHEDRON_TO_PLANE: + apply_hemi_octahedron_to_plane(objPos, v0, v1, v2, f0); + break; } } } @@ -642,6 +662,9 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa case OPCODE_PLANE_TO_HEMI_OCTAHEDRON: apply_plane_to_hemi_octahedron_normal(objPos, objNorm, objTan, v0, v1, v2, f0); break; + case OPCODE_HEMI_OCTAHEDRON_TO_PLANE: + apply_hemi_octahedron_to_plane_normal(objPos, objNorm, objTan, v0, v1, v2, f0); + break; } } } -- cgit v1.2.3