diff options
| author | yum <yum.food.vr@gmail.com> | 2025-12-16 18:06:44 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-12-16 18:06:44 -0800 |
| commit | a14e29b37e95352d35ba7c8763e2d0fc9fb66803 (patch) | |
| tree | 4e50cb9550ed143cfc71c2d014e6549eb703c681 /vertex.cginc | |
| parent | f3c47133a947581299b1f5a8b82e7233711f096a (diff) | |
wip, trying to unwrap the torus
Diffstat (limited to 'vertex.cginc')
| -rw-r--r-- | vertex.cginc | 155 |
1 files changed, 75 insertions, 80 deletions
diff --git a/vertex.cginc b/vertex.cginc index a5770f2..3d87f35 100644 --- a/vertex.cginc +++ b/vertex.cginc @@ -6,74 +6,69 @@ #define FOO(x) (x) -#if defined(_VERTEX_DEFORMATION_XZ_UNTUBE) -#define VERTEX_DEFORM_XZ_UNTUBE_PREAMBLE \ - float t = _Vertex_Deformation_XZ_Untube_t -#define VERTEX_DEFORM_XZ_UNTUBE_POS \ - objPos = tube_to_plane(objPos.xyz, t) -#define VERTEX_DEFORM_XZ_UNTUBE_NORM \ - tube_to_plane_normal(objPos, objNorm, objTan, t) +#if defined(_VERTEX_DEFORMATION_TUBE_TO_PLANE_0) +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE \ + float3 p = _Vertex_Deformation_Tube_To_Plane_0_p; \ + float3 r = _Vertex_Deformation_Tube_To_Plane_0_r; \ + float3 s = _Vertex_Deformation_Tube_To_Plane_0_s; \ + float t = _Vertex_Deformation_Tube_To_Plane_0_t +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_POS \ + objPos = tube_to_plane(objPos, p, r, s, t) +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_NORM \ + tube_to_plane_normal(objPos, objNorm, objTan, p, r, s, t) #else -#define VERTEX_DEFORM_XZ_UNTUBE_PREAMBLE -#define VERTEX_DEFORM_XZ_UNTUBE_POS -#define VERTEX_DEFORM_XZ_UNTUBE_NORM -#endif // VERTEX_DEFORMATION_XZ_UNTUBE +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_POS +#define VERTEX_DEFORM_TUBE_TO_PLANE_0_NORM +#endif // VERTEX_DEFORMATION_TUBE_TO_PLANE_0 -#if defined(_VERTEX_DEFORMATION_YZ_UNTUBE) -#define VERTEX_DEFORM_YZ_UNTUBE_PREAMBLE \ - float t = _Vertex_Deformation_YZ_Untube_t -#define VERTEX_DEFORM_YZ_UNTUBE_POS \ - objPos = tube_to_plane(objPos.yxz, t); \ - objPos = objPos.yxz -#define VERTEX_DEFORM_YZ_UNTUBE_NORM \ - float3 yzPos = objPos.yxz; \ - float3 yzNorm = objNorm.yxz; \ - float3 yzTan = objTan.yxz; \ - tube_to_plane_normal(yzPos, yzNorm, yzTan, t); \ - objPos = yzPos.yxz; \ - objNorm = yzNorm.yxz; \ - objTan = yzTan.yxz +#if defined(_VERTEX_DEFORMATION_TUBE_TO_PLANE_1) +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE \ + float3 p = _Vertex_Deformation_Tube_To_Plane_1_p; \ + float3 r = _Vertex_Deformation_Tube_To_Plane_1_r; \ + float3 s = _Vertex_Deformation_Tube_To_Plane_1_s; \ + float t = _Vertex_Deformation_Tube_To_Plane_1_t +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_POS \ + objPos = tube_to_plane(objPos, p, r, s, t) +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_NORM \ + tube_to_plane_normal(objPos, objNorm, objTan, p, r, s, t) #else -#define VERTEX_DEFORM_YZ_UNTUBE_PREAMBLE -#define VERTEX_DEFORM_YZ_UNTUBE_POS -#define VERTEX_DEFORM_YZ_UNTUBE_NORM -#endif // VERTEX_DEFORMATION_YZ_UNTUBE +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_POS +#define VERTEX_DEFORM_TUBE_TO_PLANE_1_NORM +#endif // VERTEX_DEFORMATION_TUBE_TO_PLANE_1 -#if defined(_VERTEX_DEFORMATION_XY_UNTUBE) -#define VERTEX_DEFORM_XY_UNTUBE_PREAMBLE \ - float t = _Vertex_Deformation_XY_Untube_t -#define VERTEX_DEFORM_XY_UNTUBE_POS \ - objPos = tube_to_plane(objPos.xzy, t); \ - objPos = objPos.xzy -#define VERTEX_DEFORM_XY_UNTUBE_NORM \ - float3 xyPos = objPos.xzy; \ - float3 xyNorm = objNorm.xzy; \ - float3 xyTan = objTan.xzy; \ - tube_to_plane_normal(xyPos, xyNorm, xyTan, t); \ - objPos = xyPos.xzy; \ - objNorm = xyNorm.xzy; \ - objTan = xyTan.xzy +#if defined(_VERTEX_DEFORMATION_PLANE_TO_TUBE_0) +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE \ + float3 p = _Vertex_Deformation_Plane_To_Tube_0_p; \ + float3 r = _Vertex_Deformation_Plane_To_Tube_0_r; \ + float3 s = _Vertex_Deformation_Plane_To_Tube_0_s; \ + float t = _Vertex_Deformation_Plane_To_Tube_0_t +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_POS \ + objPos = plane_to_tube(objPos, p, r, s, t) +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM \ + plane_to_tube_normal(objPos, objNorm, objTan, p, r, s, t) #else -#define VERTEX_DEFORM_XY_UNTUBE_PREAMBLE -#define VERTEX_DEFORM_XY_UNTUBE_POS -#define VERTEX_DEFORM_XY_UNTUBE_NORM -#endif // VERTEX_DEFORMATION_XY_UNTUBE +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_POS +#define VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM +#endif // VERTEX_DEFORMATION_PLANE_TO_TUBE_0 -#if defined(_VERTEX_DEFORMATION_PLANE_TO_TUBE) -#define VERTEX_DEFORM_PLANE_TO_TUBE_PREAMBLE \ - float3 p = _Vertex_Deformation_Plane_To_Tube_p; \ - float3 r = _Vertex_Deformation_Plane_To_Tube_r; \ - float3 s = _Vertex_Deformation_Plane_To_Tube_s; \ - float t = _Vertex_Deformation_Plane_To_Tube_t -#define VERTEX_DEFORM_PLANE_TO_TUBE_POS \ - objPos = plane_to_tube(objPos.xyz, p, r, s, t) -#define VERTEX_DEFORM_PLANE_TO_TUBE_NORM \ - plane_to_tube_normal(objPos.xyz, objNorm, objTan, p, r, s, t) +#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; \ + float3 r = _Vertex_Deformation_Plane_To_Tube_1_r; \ + float3 s = _Vertex_Deformation_Plane_To_Tube_1_s; \ + float t = _Vertex_Deformation_Plane_To_Tube_1_t +#define VERTEX_DEFORM_PLANE_TO_TUBE_1_POS \ + objPos = plane_to_tube(objPos, p, r, s, t) +#define VERTEX_DEFORM_PLANE_TO_TUBE_1_NORM \ + plane_to_tube_normal(objPos, objNorm, objTan, p, r, s, t) #else -#define VERTEX_DEFORM_PLANE_TO_TUBE_PREAMBLE -#define VERTEX_DEFORM_PLANE_TO_TUBE_POS -#define VERTEX_DEFORM_PLANE_TO_TUBE_NORM -#endif // VERTEX_DEFORMATION_PLANE_TO_TUBE +#define VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE +#define VERTEX_DEFORM_PLANE_TO_TUBE_1_POS +#define VERTEX_DEFORM_PLANE_TO_TUBE_1_NORM +#endif // VERTEX_DEFORMATION_PLANE_TO_TUBE_1 #if defined(_VERTEX_DEFORMATION_NORM_CONVERSION) #define VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE \ @@ -81,7 +76,7 @@ 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) + objPos = norm_conversion(objPos, input_k, output_k, t) #define VERTEX_DEFORM_NORM_CONVERSION_NORM \ norm_conversion_normal(objPos, objNorm, objTan, input_k, output_k, t) #else @@ -96,7 +91,7 @@ float k = _Vertex_Deformation_Seal_k; \ float st = t * _Vertex_Deformation_Seal_t #define VERTEX_DEFORM_SEAL_POS \ - objPos = seal(objPos.xyz, A, k, st) + objPos = seal(objPos, A, k, st) #define VERTEX_DEFORM_SEAL_NORM \ seal_normal(objPos, objNorm, objTan, A, k, st) #else @@ -113,7 +108,7 @@ float3 k = _Vertex_Deformation_Sine_Waves_k; \ float3 omega = _Vertex_Deformation_Sine_Waves_omega #define VERTEX_DEFORM_SINE_WAVES_POS \ - objPos = sine_wave(objPos.xyz, amplitude, direction, k, omega, st) + objPos = sine_wave(objPos, amplitude, direction, k, omega, st) #define VERTEX_DEFORM_SINE_WAVES_NORM \ sine_wave_normal(objPos, objNorm, objTan, amplitude, direction, k, omega, st) #else @@ -144,20 +139,20 @@ void deform(inout float3 objPos) { const float t = getTime(); { - VERTEX_DEFORM_XZ_UNTUBE_PREAMBLE; - VERTEX_DEFORM_XZ_UNTUBE_POS; + VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_0_POS; } { - VERTEX_DEFORM_YZ_UNTUBE_PREAMBLE; - VERTEX_DEFORM_YZ_UNTUBE_POS; + VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_1_POS; } { - VERTEX_DEFORM_XY_UNTUBE_PREAMBLE; - VERTEX_DEFORM_XY_UNTUBE_POS; + VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_0_POS; } { - VERTEX_DEFORM_PLANE_TO_TUBE_PREAMBLE; - VERTEX_DEFORM_PLANE_TO_TUBE_POS; + VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_1_POS; } { VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE; @@ -180,20 +175,20 @@ void deform(inout float3 objPos) { void deform_normal(inout float3 objPos, inout float3 objNorm, inout float3 objTan) { const float t = getTime(); { - VERTEX_DEFORM_XZ_UNTUBE_PREAMBLE; - VERTEX_DEFORM_XZ_UNTUBE_NORM; + VERTEX_DEFORM_TUBE_TO_PLANE_0_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_0_NORM; } { - VERTEX_DEFORM_YZ_UNTUBE_PREAMBLE; - VERTEX_DEFORM_YZ_UNTUBE_NORM; + VERTEX_DEFORM_TUBE_TO_PLANE_1_PREAMBLE; + VERTEX_DEFORM_TUBE_TO_PLANE_1_NORM; } { - VERTEX_DEFORM_XY_UNTUBE_PREAMBLE; - VERTEX_DEFORM_XY_UNTUBE_NORM; + VERTEX_DEFORM_PLANE_TO_TUBE_0_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_0_NORM; } { - VERTEX_DEFORM_PLANE_TO_TUBE_PREAMBLE; - VERTEX_DEFORM_PLANE_TO_TUBE_NORM; + VERTEX_DEFORM_PLANE_TO_TUBE_1_PREAMBLE; + VERTEX_DEFORM_PLANE_TO_TUBE_1_NORM; } { VERTEX_DEFORM_NORM_CONVERSION_PREAMBLE; |
