Guest User

Untitled

a guest
Jan 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. Shader "BitShiftProgrammer/AnimatedFish"
  2. {
  3. Properties
  4. {
  5. _MainTex ("Texture", 2D) = "white" {}
  6. _EffectRadius("Wave Effect Radius",Range(0.0,1.0)) = 0.5
  7. _WaveSpeed("Wave Speed", Range(0.0,100.0)) = 3.0
  8. _WaveHeight("Wave Height", Range(0.0,30.0)) = 5.0
  9. _WaveDensity("Wave Density", Range(0.0001,1.0)) = 0.007
  10. _Yoffset("Y Offset",Float) = 0.0
  11. _Threshold("Threshold",Range(0,30)) = 3
  12. _StrideSpeed("Stride Speed",Range(0.0,10.0)) = 2.0
  13. _StrideStrength("Stride Strength", Range(0.0,20.0)) = 3.0
  14. _MoveOffset("Move Offset",Float) = 0.0
  15. }
  16. SubShader
  17. {
  18. Tags {"Queue"="Transparent" "RenderType"="Transparent" "IgnoreProjector"="True" }
  19. Cull Off
  20. Blend SrcAlpha OneMinusSrcAlpha
  21. Pass
  22. {
  23. CGPROGRAM
  24. #pragma vertex vert
  25. #pragma fragment frag
  26. #pragma multi_compile_fog
  27.  
  28. #include "UnityCG.cginc"
  29.  
  30. struct appdata
  31. {
  32. float4 vertex : POSITION;
  33. float2 uv : TEXCOORD0;
  34. };
  35.  
  36. struct v2f
  37. {
  38. float2 uv : TEXCOORD0;
  39. UNITY_FOG_COORDS(1)
  40. float4 vertex : SV_POSITION;
  41. };
  42.  
  43. sampler2D _MainTex;
  44. float4 _MainTex_ST;
  45. half _EffectRadius;
  46. half _WaveSpeed;
  47. half _WaveHeight;
  48. half _WaveDensity;
  49. half _Yoffset;
  50. int _Threshold;
  51. half _StrideSpeed;
  52. half _StrideStrength;
  53. half _MoveOffset;
  54.  
  55. v2f vert (appdata v)
  56. {
  57. v2f o;
  58. half sinUse = sin(-_Time.y * _WaveSpeed + _MoveOffset + v.vertex.y * _WaveDensity);
  59. half yValue = v.vertex.y - _Yoffset;
  60. half yDirScaling = clamp(pow(yValue * _EffectRadius,_Threshold),0.0,1.0);
  61. v.vertex.x = v.vertex.x + sinUse * _WaveHeight* yDirScaling;
  62. v.vertex.x = v.vertex.x + sin(-_Time.y * _StrideSpeed + _MoveOffset) * _StrideStrength;
  63. o.vertex = UnityObjectToClipPos(v.vertex);
  64. o.uv = TRANSFORM_TEX(v.uv, _MainTex);
  65. UNITY_TRANSFER_FOG(o,o.vertex);
  66. return o;
  67. }
  68.  
  69. fixed4 frag (v2f i) : SV_Target
  70. {
  71. fixed4 col = tex2D(_MainTex,i.uv);
  72. UNITY_APPLY_FOG(i.fogCoord, col);
  73. return col;
  74. }
  75. ENDCG
  76. }
  77. }
  78. }
Add Comment
Please, Sign In to add comment