summaryrefslogtreecommitdiffstats
path: root/vertex.cginc
diff options
context:
space:
mode:
Diffstat (limited to 'vertex.cginc')
-rw-r--r--vertex.cginc24
1 files changed, 24 insertions, 0 deletions
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; \
@@ -171,6 +187,10 @@ void deform(inout float3 objPos) {
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;
}
@@ -211,6 +231,10 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa
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;
}