summaryrefslogtreecommitdiff
path: root/marching/Assets/Bundle/shaders/sprite_skew.shader
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-04 11:25:52 +0800
committerchai <215380520@qq.com>2023-05-04 11:25:52 +0800
commit848097c88bbcf24934a375dff39cf4defa2819dd (patch)
tree85f4cc4d09fbf2a3839752449d21cb3e0bec8fa1 /marching/Assets/Bundle/shaders/sprite_skew.shader
parentba1ad0efd8601dc4af023aca5a78609c55b4d67f (diff)
*misc
Diffstat (limited to 'marching/Assets/Bundle/shaders/sprite_skew.shader')
-rw-r--r--marching/Assets/Bundle/shaders/sprite_skew.shader97
1 files changed, 97 insertions, 0 deletions
diff --git a/marching/Assets/Bundle/shaders/sprite_skew.shader b/marching/Assets/Bundle/shaders/sprite_skew.shader
new file mode 100644
index 0000000..23ff5ac
--- /dev/null
+++ b/marching/Assets/Bundle/shaders/sprite_skew.shader
@@ -0,0 +1,97 @@
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+// Adapted from the built-in Sprites-Default.shader
+// You can download the source for the built-in shaders from:
+// http://unity3d.com/unity/download/archive
+
+Shader "UI/SpriteSkewShader"
+{
+ Properties
+ {
+ [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
+ _Color("Tint", Color) = (1,1,1,1)
+ [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
+
+ _HorizontalSkew("Horizontal Skew", Float) = 0
+ _VerticalSkew("Vertical Skew", Float) = 0
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue" = "Transparent"
+ "IgnoreProjector" = "True"
+ "RenderType" = "Transparent"
+ "PreviewType" = "Plane"
+ "CanUseSpriteAtlas" = "True"
+ }
+
+ Cull Off
+ Lighting Off
+ ZWrite Off
+ Fog { Mode Off }
+ Blend One OneMinusSrcAlpha
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile DUMMY PIXELSNAP_ON
+ #include "UnityCG.cginc"
+
+ struct appdata_t
+ {
+ float4 vertex : POSITION;
+ float4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float4 vertex : SV_POSITION;
+ fixed4 color : COLOR;
+ half2 texcoord : TEXCOORD0;
+ };
+
+ sampler2D _MainTex;
+ fixed4 _Color;
+ float _HorizontalSkew;
+ float _VerticalSkew;
+
+ v2f vert(appdata_t IN)
+ {
+ v2f OUT;
+ OUT.texcoord = IN.texcoord;
+ OUT.color = IN.color * _Color;
+
+ // Create a skew transformation matrix
+ float h = _HorizontalSkew;
+ float v = _VerticalSkew;
+ float4x4 transformMatrix = float4x4(
+ 1,h,0,0,
+ v,1,0,0,
+ 0,0,1,0,
+ 0,0,0,1);
+
+ float4 skewedVertex = mul(transformMatrix, IN.vertex);
+ OUT.vertex = UnityObjectToClipPos(skewedVertex);
+
+ #ifdef PIXELSNAP_ON
+ OUT.vertex = UnityPixelSnap(OUT.vertex);
+ #endif
+
+ return OUT;
+ }
+
+ fixed4 frag(v2f IN) : SV_Target
+ {
+ fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
+ c.rgb *= c.a;
+ return c;
+ }
+ ENDCG
+ }
+ }
+} \ No newline at end of file