diff options
| author | yum <yum.food.vr@gmail.com> | 2026-01-13 19:33:51 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-01-13 19:33:51 -0800 |
| commit | 8c3a05445f529c10ebbf5bfdc0eb220fe95c558c (patch) | |
| tree | cd15a6589e819f9a75de214335cda2bdf7492cab /vertex.cginc | |
| parent | b0982529d9e3d549106edd80a3e1246f3fb8cd2c (diff) | |
Fold: add hemi octahedron to plane operator
Diffstat (limited to 'vertex.cginc')
| -rw-r--r-- | vertex.cginc | 23 |
1 files changed, 23 insertions, 0 deletions
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; } } } |
