NMWindTouchRect.cginc 609 B

123456789101112131415161718
  1. uniform half _TouchReactActive;
  2. sampler2D _TouchReact_Buffer;
  3. float4 _TouchReact_Pos;
  4. float3 TouchReactAdjustVertex(float3 pos)
  5. {
  6. float3 worldPos = mul(unity_ObjectToWorld, float4(pos, 1));
  7. float2 tbPos = saturate((float2(worldPos.x, -worldPos.z) - _TouchReact_Pos.xz) / _TouchReact_Pos.w);
  8. float2 touchBend = tex2Dlod(_TouchReact_Buffer, float4(tbPos, 0, 0));
  9. touchBend.y *= 1.0 - length(tbPos - 0.5) * 2;
  10. if (touchBend.y > 0.01)
  11. {
  12. worldPos.y = min(worldPos.y, touchBend.x * 10000);
  13. }
  14. float3 changedLocalPos = mul(unity_WorldToObject, float4(worldPos, 1)).xyz;
  15. return changedLocalPos - pos;
  16. }