Guest User

Warpy UI Shader

a guest
Apr 4th, 2020
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.82 KB | None | 0 0
  1. // Inspired by Nintendo's Animal Crossing and UI Shader by Mix and Jam
  2. // Support Metkis https://www.patreon.com/metkis
  3. // Support Mix & Jam https://www.patreon.com/mixandjam
  4.  
  5. Shader "UIOffset"
  6. {
  7. Properties
  8. {
  9. [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
  10. _Color ("Tint", Color) = (1,1,1,1)
  11.  
  12. [HideInInspector] _StencilComp ("Stencil Comparison", Float) = 8
  13. [HideInInspector] _Stencil ("Stencil ID", Float) = 0
  14. [HideInInspector] _StencilOp ("Stencil Operation", Float) = 0
  15. [HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
  16. [HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
  17.  
  18. [HideInInspector] _ColorMask ("Color Mask", Float) = 15
  19.  
  20. [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
  21. _Strength("Strength", Float) = 10
  22. _Scale("Scale", Float) = 3
  23. _Speed("Speed", Float) = 0.2
  24. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  25.  
  26. }
  27.  
  28. SubShader
  29. {
  30. LOD 0
  31.  
  32. Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
  33.  
  34. Stencil
  35. {
  36. Ref [_Stencil]
  37. ReadMask [_StencilReadMask]
  38. WriteMask [_StencilWriteMask]
  39. CompFront [_StencilComp]
  40. PassFront [_StencilOp]
  41. FailFront Keep
  42. ZFailFront Keep
  43. CompBack Always
  44. PassBack Keep
  45. FailBack Keep
  46. ZFailBack Keep
  47. }
  48.  
  49.  
  50. Cull Off
  51. Lighting Off
  52. ZWrite Off
  53. ZTest [unity_GUIZTestMode]
  54. Blend SrcAlpha OneMinusSrcAlpha
  55. ColorMask [_ColorMask]
  56.  
  57.  
  58. Pass
  59. {
  60. Name "Default"
  61. CGPROGRAM
  62.  
  63. #pragma vertex vert
  64. #pragma fragment frag
  65. #pragma target 3.0
  66.  
  67. #include "UnityCG.cginc"
  68. #include "UnityUI.cginc"
  69.  
  70. #pragma multi_compile __ UNITY_UI_CLIP_RECT
  71. #pragma multi_compile __ UNITY_UI_ALPHACLIP
  72.  
  73. #include "UnityShaderVariables.cginc"
  74.  
  75.  
  76. struct appdata_t
  77. {
  78. float4 vertex : POSITION;
  79. float4 color : COLOR;
  80. float2 texcoord : TEXCOORD0;
  81. UNITY_VERTEX_INPUT_INSTANCE_ID
  82.  
  83. };
  84.  
  85. struct v2f
  86. {
  87. float4 vertex : SV_POSITION;
  88. fixed4 color : COLOR;
  89. half2 texcoord : TEXCOORD0;
  90. float4 worldPosition : TEXCOORD1;
  91. UNITY_VERTEX_INPUT_INSTANCE_ID
  92. UNITY_VERTEX_OUTPUT_STEREO
  93.  
  94. };
  95.  
  96. uniform fixed4 _Color;
  97. uniform fixed4 _TextureSampleAdd;
  98. uniform float4 _ClipRect;
  99. uniform sampler2D _MainTex;
  100. uniform float _Speed;
  101. uniform float _Scale;
  102. uniform float _Strength;
  103. uniform float4 _MainTex_ST;
  104. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  105. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  106. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  107. float snoise( float2 v )
  108. {
  109. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  110. float2 i = floor( v + dot( v, C.yy ) );
  111. float2 x0 = v - i + dot( i, C.xx );
  112. float2 i1;
  113. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  114. float4 x12 = x0.xyxy + C.xxzz;
  115. x12.xy -= i1;
  116. i = mod2D289( i );
  117. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  118. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  119. m = m * m;
  120. m = m * m;
  121. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  122. float3 h = abs( x ) - 0.5;
  123. float3 ox = floor( x + 0.5 );
  124. float3 a0 = x - ox;
  125. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  126. float3 g;
  127. g.x = a0.x * x0.x + h.x * x0.y;
  128. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  129. return 130.0 * dot( m, g );
  130. }
  131.  
  132.  
  133.  
  134. v2f vert( appdata_t IN )
  135. {
  136. v2f OUT;
  137. UNITY_SETUP_INSTANCE_ID( IN );
  138. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
  139. UNITY_TRANSFER_INSTANCE_ID(IN, OUT);
  140. OUT.worldPosition = IN.vertex;
  141. float4 ase_clipPos = UnityObjectToClipPos(IN.vertex);
  142. float4 screenPos = ComputeScreenPos(ase_clipPos);
  143. float4 ase_screenPosNorm = screenPos / screenPos.w;
  144. ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
  145. float2 temp_cast_0 = (( _Time.y * _Speed )).xx;
  146. float2 uv05 = IN.texcoord.xy * float2( 1,1 ) + temp_cast_0;
  147. float simplePerlin2D6 = snoise( uv05*_Scale );
  148. simplePerlin2D6 = simplePerlin2D6*0.5 + 0.5;
  149.  
  150.  
  151. OUT.worldPosition.xyz += ( ase_screenPosNorm + ( simplePerlin2D6 * _Strength ) ).xyz;
  152. OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
  153.  
  154. OUT.texcoord = IN.texcoord;
  155.  
  156. OUT.color = IN.color * _Color;
  157. return OUT;
  158. }
  159.  
  160. fixed4 frag(v2f IN ) : SV_Target
  161. {
  162. float2 uv_MainTex = IN.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
  163.  
  164. half4 color = ( tex2D( _MainTex, uv_MainTex ) * _Color * IN.color);
  165.  
  166. #ifdef UNITY_UI_CLIP_RECT
  167. color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
  168. #endif
  169.  
  170. #ifdef UNITY_UI_ALPHACLIP
  171. clip (color.a - 0.001);
  172. #endif
  173.  
  174. return color;
  175. }
  176. ENDCG
  177. }
  178. }
  179. CustomEditor "ASEMaterialInspector"
  180.  
  181.  
  182. }
  183. /*ASEBEGIN
  184. Version=17800
  185. 1117.6;799.2;1832;551;-770.4377;457.9857;1.324218;True;True
  186. Node;AmplifyShaderEditor.RangedFloatNode;2;472.0559,283.983;Inherit;False;Property;_Speed;Speed;2;0;Create;True;0;0;False;0;0.2;0.2;0;0;0;1;FLOAT;0
  187. Node;AmplifyShaderEditor.SimpleTimeNode;1;487.2901,134.2589;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
  188. Node;AmplifyShaderEditor.Vector2Node;27;642.5088,-108.3966;Inherit;False;Constant;_Vector1;Vector 1;5;0;Create;True;0;0;False;0;1,1;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  189. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;3;725.4282,184.6313;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  190. Node;AmplifyShaderEditor.TextureCoordinatesNode;5;945.0638,-39.03014;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  191. Node;AmplifyShaderEditor.RangedFloatNode;8;966,249.5;Inherit;False;Property;_Scale;Scale;1;0;Create;True;0;0;False;0;3;3;0;0;0;1;FLOAT;0
  192. Node;AmplifyShaderEditor.NoiseGeneratorNode;6;1238.955,10.7599;Inherit;False;Simplex2D;True;False;2;0;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT;0
  193. Node;AmplifyShaderEditor.RangedFloatNode;10;1377,250.5;Inherit;False;Property;_Strength;Strength;0;0;Create;True;0;0;False;0;10;10.06;0;0;0;1;FLOAT;0
  194. Node;AmplifyShaderEditor.TemplateShaderPropertyNode;37;1507.915,-602.8209;Inherit;False;0;0;_MainTex;Shader;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  195. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;1509.457,-9.171837;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  196. Node;AmplifyShaderEditor.SamplerNode;44;1892.943,-625.6439;Inherit;True;Property;_TextureSample1;Texture Sample 1;3;0;Create;True;0;0;False;0;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  197. Node;AmplifyShaderEditor.TemplateShaderPropertyNode;39;1910.176,-371.289;Inherit;False;0;0;_Color;Shader;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  198. Node;AmplifyShaderEditor.ScreenPosInputsNode;49;1268.344,-307.0249;Float;False;0;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  199. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;45;2189.959,-401.6519;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  200. Node;AmplifyShaderEditor.SimpleAddOpNode;14;1726.319,-45.76727;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0
  201. Node;AmplifyShaderEditor.PosVertexDataNode;32;1449.611,-290.5601;Inherit;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  202. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;35;2550.877,-68.04276;Float;False;True;-1;2;ASEMaterialInspector;0;4;UIOffset;5056123faa0c79b47ab6ad7e8bf059a4;True;Default;0;0;Default;2;True;2;5;False;-1;10;False;-1;0;5;False;-1;10;False;-1;False;False;True;2;False;-1;True;True;True;True;True;0;True;-9;True;True;0;True;-5;255;True;-8;255;True;-7;0;True;-4;0;True;-6;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;2;False;-1;True;0;True;-11;False;True;5;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;CanUseSpriteAtlas=True;False;0;False;False;False;False;False;False;False;False;False;False;True;2;0;;0;0;Standard;0;0;1;True;False;;0
  203. WireConnection;3;0;1;0
  204. WireConnection;3;1;2;0
  205. WireConnection;5;0;27;0
  206. WireConnection;5;1;3;0
  207. WireConnection;6;0;5;0
  208. WireConnection;6;1;8;0
  209. WireConnection;9;0;6;0
  210. WireConnection;9;1;10;0
  211. WireConnection;44;0;37;0
  212. WireConnection;45;0;44;0
  213. WireConnection;45;1;39;0
  214. WireConnection;14;0;49;0
  215. WireConnection;14;1;9;0
  216. WireConnection;35;0;45;0
  217. WireConnection;35;1;14;0
  218. ASEEND*/
  219. //CHKSM=E561CBDDAC1458210326A1DFAFC7F7FEFFE21D97
Add Comment
Please, Sign In to add comment