summaryrefslogtreecommitdiffstats
path: root/vertex.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-12-16 18:06:44 -0800
committeryum <yum.food.vr@gmail.com>2025-12-16 18:06:44 -0800
commita14e29b37e95352d35ba7c8763e2d0fc9fb66803 (patch)
tree4e50cb9550ed143cfc71c2d014e6549eb703c681 /vertex.cginc
parentf3c47133a947581299b1f5a8b82e7233711f096a (diff)
wip, trying to unwrap the torus
Diffstat (limited to 'vertex.cginc')
-rw-r--r--vertex.cginc155
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;