From f8102fd756d89476336f9a3a69e9bf8fbc6aa4b7 Mon Sep 17 00:00:00 2001 From: yum Date: Wed, 17 Dec 2025 17:14:11 -0800 Subject: add point align feature, aka inverse of axis align --- vertex.cginc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'vertex.cginc') diff --git a/vertex.cginc b/vertex.cginc index 67565d9..40c283f 100644 --- a/vertex.cginc +++ b/vertex.cginc @@ -70,6 +70,22 @@ #define VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM #endif // VERTEX_DEFORMATION_PLANE_TO_TUBE_0 +#if defined(_VERTEX_DEFORMATION_POINT_ALIGN) +#define VERTEX_DEFORM_POINT_ALIGN_PREAMBLE \ + float3 po = _Vertex_Deformation_Point_Align_po; \ + float3 pp = _Vertex_Deformation_Point_Align_pp; \ + float3 r = _Vertex_Deformation_Point_Align_r; \ + float t = _Vertex_Deformation_Point_Align_t +#define VERTEX_DEFORM_POINT_ALIGN_POS \ + objPos = point_align(objPos, po, pp, r, t) +#define VERTEX_DEFORM_POINT_ALIGN_NORM \ + point_align_normal(objPos, objNorm, objTan, po, pp, r, t) +#else +#define VERTEX_DEFORM_POINT_ALIGN_PREAMBLE +#define VERTEX_DEFORM_POINT_ALIGN_POS +#define VERTEX_DEFORM_POINT_ALIGN_NORM +#endif // VERTEX_DEFORMATION_POINT_ALIGN + #if defined(_VERTEX_DEFORMATION_PLANE_TO_TUBE_1) #define VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE \ float3 p = _Vertex_Deformation_Plane_To_Tube_1_p; \ @@ -170,6 +186,10 @@ void deform(inout float3 objPos) { VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; VERTEX_DEFORM_PLANE_TO_TUBE_0_POS; } + { + VERTEX_DEFORM_POINT_ALIGN_PREAMBLE; + VERTEX_DEFORM_POINT_ALIGN_POS; + } { VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; VERTEX_DEFORM_PLANE_TO_TUBE_1_POS; @@ -210,6 +230,10 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM; } + { + VERTEX_DEFORM_POINT_ALIGN_PREAMBLE; + VERTEX_DEFORM_POINT_ALIGN_NORM; + } { VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; VERTEX_DEFORM_PLANE_TO_TUBE_1_NORM; -- cgit v1.2.3