diff options
| author | yum <yum.food.vr@gmail.com> | 2025-10-17 20:51:32 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-10-17 20:51:32 -0700 |
| commit | 98e115ebfc40e72a8ee1c6453735d8f6076f7890 (patch) | |
| tree | 70910197508a860adc505ef545d8d8825d48b98b /vertex.cginc | |
| parent | 5bfbb660c7213cdd14c9bde2349b3a09ccdaff4e (diff) | |
tessellate in screen space, and add sine wave deformation effect
Diffstat (limited to 'vertex.cginc')
| -rw-r--r-- | vertex.cginc | 31 |
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) { |
