Sprites-Default.shader 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. Shader /*ase_name*/"Hidden/Templates/Legacy/Sprites Default"/*end*/
  2. {
  3. Properties
  4. {
  5. [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
  6. _Color ("Tint", Color) = (1,1,1,1)
  7. [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
  8. [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}
  9. /*ase_props*/
  10. }
  11. SubShader
  12. {
  13. Tags
  14. {
  15. "Queue"="Transparent"
  16. "IgnoreProjector"="True"
  17. "RenderType"="Transparent"
  18. "PreviewType"="Plane"
  19. "CanUseSpriteAtlas"="True"
  20. }
  21. Cull Off
  22. Lighting Off
  23. ZWrite Off
  24. Blend One OneMinusSrcAlpha
  25. /*ase_pass*/
  26. Pass
  27. {
  28. CGPROGRAM
  29. #ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX
  30. #define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input)
  31. #endif
  32. #pragma vertex vert
  33. #pragma fragment frag
  34. #pragma target 3.5
  35. #pragma multi_compile _ PIXELSNAP_ON
  36. #pragma multi_compile _ ETC1_EXTERNAL_ALPHA
  37. #include "UnityCG.cginc"
  38. /*ase_pragma*/
  39. struct appdata_t
  40. {
  41. float4 vertex : POSITION;
  42. float4 color : COLOR;
  43. float2 texcoord : TEXCOORD0;
  44. UNITY_VERTEX_INPUT_INSTANCE_ID
  45. /*ase_vdata:p=p;uv0=tc0.xy;c=c*/
  46. };
  47. struct v2f
  48. {
  49. float4 vertex : SV_POSITION;
  50. fixed4 color : COLOR;
  51. float2 texcoord : TEXCOORD0;
  52. UNITY_VERTEX_INPUT_INSTANCE_ID
  53. UNITY_VERTEX_OUTPUT_STEREO
  54. /*ase_interp(1,):sp=sp.xyzw;uv0=tc0.xy;c=c*/
  55. };
  56. uniform fixed4 _Color;
  57. uniform float _EnableExternalAlpha;
  58. uniform sampler2D _MainTex;
  59. uniform sampler2D _AlphaTex;
  60. /*ase_globals*/
  61. v2f vert( appdata_t IN /*ase_vert_input*/ )
  62. {
  63. v2f OUT;
  64. UNITY_SETUP_INSTANCE_ID(IN);
  65. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
  66. UNITY_TRANSFER_INSTANCE_ID(IN, OUT);
  67. /*ase_vert_code:IN=appdata_t;OUT=v2f*/
  68. IN.vertex.xyz += /*ase_vert_out:Offset;Float3*/ float3(0,0,0) /*end*/;
  69. OUT.vertex = UnityObjectToClipPos(IN.vertex);
  70. OUT.texcoord = IN.texcoord;
  71. OUT.color = IN.color * _Color;
  72. #ifdef PIXELSNAP_ON
  73. OUT.vertex = UnityPixelSnap (OUT.vertex);
  74. #endif
  75. return OUT;
  76. }
  77. fixed4 SampleSpriteTexture (float2 uv)
  78. {
  79. fixed4 color = tex2D (_MainTex, uv);
  80. #if ETC1_EXTERNAL_ALPHA
  81. // get the color from an external texture (usecase: Alpha support for ETC1 on android)
  82. fixed4 alpha = tex2D (_AlphaTex, uv);
  83. color.a = lerp (color.a, alpha.r, _EnableExternalAlpha);
  84. #endif //ETC1_EXTERNAL_ALPHA
  85. return color;
  86. }
  87. fixed4 frag(v2f IN /*ase_frag_input*/ ) : SV_Target
  88. {
  89. UNITY_SETUP_INSTANCE_ID( IN );
  90. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  91. /*ase_frag_code:IN=v2f*/
  92. fixed4 c = /*ase_frag_out:Color;Float4*/SampleSpriteTexture (IN.texcoord) * IN.color/*end*/;
  93. c.rgb *= c.a;
  94. return c;
  95. }
  96. ENDCG
  97. }
  98. }
  99. CustomEditor "AmplifyShaderEditor.MaterialInspector"
  100. }