diff options
| author | yum <yum.food.vr@gmail.com> | 2025-11-02 09:19:50 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-11-02 09:19:50 -0800 |
| commit | 93f27e3a8545fef6ccc293d033e5f422ed821215 (patch) | |
| tree | 0aa80b3bbd40e9fa8c7ffbddeb523df46c90002a /vertex.cginc | |
| parent | ea09e3e5425d935ed9dd277c0f1a7488033d2ede (diff) | |
generalize norm conversion code
Diffstat (limited to 'vertex.cginc')
| -rw-r--r-- | vertex.cginc | 38 |
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 |
