summaryrefslogtreecommitdiffstats
path: root/vertex.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-11-02 09:19:50 -0800
committeryum <yum.food.vr@gmail.com>2025-11-02 09:19:50 -0800
commit93f27e3a8545fef6ccc293d033e5f422ed821215 (patch)
tree0aa80b3bbd40e9fa8c7ffbddeb523df46c90002a /vertex.cginc
parentea09e3e5425d935ed9dd277c0f1a7488033d2ede (diff)
generalize norm conversion code
Diffstat (limited to 'vertex.cginc')
-rw-r--r--vertex.cginc38
1 files changed, 20 insertions, 18 deletions
diff --git a/vertex.cginc b/vertex.cginc
index 1cbeb6d..634abb1 100644
--- a/vertex.cginc
+++ b/vertex.cginc
@@ -59,18 +59,20 @@
#define VERTEX_DEFORM_XY_TUBE_NORM
#endif // VERTEX_DEFORMATION_XY_TUBE
-#if defined(_VERTEX_DEFORMATION_L2_LINF)
-#define VERTEX_DEFORM_L2_LINF_PREAMBLE \
- float t = _Vertex_Deformation_L2_Linf_t
-#define VERTEX_DEFORM_L2_LINF_POS \
- objPos = l2_to_linf(objPos.xyz, t)
-#define VERTEX_DEFORM_L2_LINF_NORM \
- l2_to_linf_normal(objPos, objNorm, objTan, t)
+#if defined(_VERTEX_DEFORMATION_NORM_CONVERSION)
+#define VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE \
+ float t = _Vertex_Deformation_Norm_Conversion_t; \
+ float input_k = _Vertex_Deformation_Norm_Conversion_Input_k; \
+ float output_k = _Vertex_Deformation_Norm_Conversion_Output_k
+#define VERTEX_DEFORM_NORM_CONVERSION_POS \
+ objPos = norm_conversion(objPos.xyz, input_k, output_k, t)
+#define VERTEX_DEFORM_NORM_CONVERSION_NORM \
+ norm_conversion_normal(objPos, objNorm, objTan, input_k, output_k, t)
#else
-#define VERTEX_DEFORM_L2_LINF_PREAMBLE
-#define VERTEX_DEFORM_L2_LINF_POS
-#define VERTEX_DEFORM_L2_LINF_NORM
-#endif // _VERTEX_DEFORMATION_L2_LINF
+#define VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE
+#define VERTEX_DEFORM_NORM_CONVERSION_POS
+#define VERTEX_DEFORM_NORM_CONVERSION_NORM
+#endif // _VERTEX_DEFORMATION_NORM_CONVERSION
#if defined(_VERTEX_DEFORMATION_SEAL)
#define VERTEX_DEFORM_SEAL_PREAMBLE \
@@ -138,8 +140,8 @@ void deform(inout float3 objPos) {
VERTEX_DEFORM_XY_TUBE_POS;
}
{
- VERTEX_DEFORM_L2_LINF_PREAMBLE;
- VERTEX_DEFORM_L2_LINF_POS;
+ VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE;
+ VERTEX_DEFORM_NORM_CONVERSION_POS;
}
{
VERTEX_DEFORM_SEAL_PREAMBLE;
@@ -170,8 +172,8 @@ void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTa
VERTEX_DEFORM_XY_TUBE_NORM;
}
{
- VERTEX_DEFORM_L2_LINF_PREAMBLE;
- VERTEX_DEFORM_L2_LINF_NORM;
+ VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE;
+ VERTEX_DEFORM_NORM_CONVERSION_NORM;
}
{
VERTEX_DEFORM_SEAL_PREAMBLE;
@@ -228,10 +230,10 @@ void undeform_normal(inout float3 objPos, inout float3 objNorm, inout float3 obj
posHistory[posCount++] = objPos;
}
#endif
-#if defined(_VERTEX_DEFORMATION_L2_LINF)
+#if defined(_VERTEX_DEFORMATION_NORM_CONVERSION)
{
- VERTEX_DEFORM_L2_LINF_PREAMBLE;
- VERTEX_DEFORM_L2_LINF_POS;
+ VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE;
+ VERTEX_DEFORM_NORM_CONVERSION_POS;
posHistory[posCount++] = objPos;
}
#endif