summaryrefslogtreecommitdiffstats
path: root/vertex.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-10-17 20:51:32 -0700
committeryum <yum.food.vr@gmail.com>2025-10-17 20:51:32 -0700
commit98e115ebfc40e72a8ee1c6453735d8f6076f7890 (patch)
tree70910197508a860adc505ef545d8d8825d48b98b /vertex.cginc
parent5bfbb660c7213cdd14c9bde2349b3a09ccdaff4e (diff)
tessellate in screen space, and add sine wave deformation effect
Diffstat (limited to 'vertex.cginc')
-rw-r--r--vertex.cginc31
1 files changed, 26 insertions, 5 deletions
diff --git a/vertex.cginc b/vertex.cginc
index 730adfe..a18215a 100644
--- a/vertex.cginc
+++ b/vertex.cginc
@@ -3,24 +3,25 @@
#include "vertex_deformation.hlsl"
+#define FOO(x) (x)
+
void deform(inout float3 objPos) {
- float t_eps = 1e-9;
#if defined(_VERTEX_DEFORMATION_XZ_TUBE)
{
- float t = clamp(_Vertex_Deformation_XZ_Tube_t, -1+t_eps, 1-t_eps);;
+ float t = _Vertex_Deformation_XZ_Tube_t;
objPos = plane_to_tube(objPos.xyz, t);
}
#endif // _VERTEX_DEFORMATION_XZ_TUBE
#if defined(_VERTEX_DEFORMATION_YZ_TUBE)
{
- float t = clamp(_Vertex_Deformation_YZ_Tube_t, -1+t_eps, 1-t_eps);
+ float t = _Vertex_Deformation_YZ_Tube_t;
objPos = plane_to_tube(objPos.yxz, t);
objPos = objPos.yxz;
}
#endif // _VERTEX_DEFORMATION_YZ_TUBE
#if defined(_VERTEX_DEFORMATION_XY_TUBE)
{
- float t = clamp(_Vertex_Deformation_XY_Tube_t, -1+t_eps, 1-t_eps);
+ float t = _Vertex_Deformation_XY_Tube_t;
objPos = plane_to_tube(objPos.xzy, t);
objPos = objPos.xzy;
}
@@ -33,6 +34,16 @@ void deform(inout float3 objPos) {
objPos = seal(objPos.xyz, A, k, t);
}
#endif // _VERTEX_DEFORMATION_SEAL
+#if defined(_VERTEX_DEFORMATION_SINE_WAVES)
+ {
+ float t = _Time[3];
+ float3 amplitude = _Vertex_Deformation_Sine_Waves_Amplitude;
+ float3 direction = _Vertex_Deformation_Sine_Waves_Direction;
+ float4 k = _Vertex_Deformation_Sine_Waves_k;
+ float4 omega = _Vertex_Deformation_Sine_Waves_omega;
+ objPos = sine_wave(objPos.xyz, amplitude, direction, k, omega, t);
+ }
+#endif // _VERTEX_DEFORMATION_SINE_WAVES
}
void deform_normal(float3 objPos, inout float3 objNorm, inout float3 objTan) {
@@ -58,10 +69,20 @@ void deform_normal(float3 objPos, inout float3 objNorm, inout float3 objTan) {
{
float A = _Vertex_Deformation_Seal_A;
float k = _Vertex_Deformation_Seal_k;
- float t = _Time[0] * _Vertex_Deformation_Seal_t;
+ float t = _Time[3] * _Vertex_Deformation_Seal_t;
seal_normal(objPos, objNorm, objTan, A, k, t);
}
#endif // _VERTEX_DEFORMATION_SEAL
+#if defined(_VERTEX_DEFORMATION_SINE_WAVES)
+ {
+ float t = _Time[3];
+ float4 amplitude = _Vertex_Deformation_Sine_Waves_Amplitude;
+ float3 direction = _Vertex_Deformation_Sine_Waves_Direction;
+ float4 k = _Vertex_Deformation_Sine_Waves_k;
+ float4 omega = _Vertex_Deformation_Sine_Waves_omega;
+ sine_wave_normal(objPos, objNorm, objTan, amplitude, direction, k, omega, t);
+ }
+#endif // _VERTEX_DEFORMATION_SINE_WAVES
}
void propagateObjPos(inout v2f i) {