builtin_shaders-5.3.4f1学习-Sprites-Default

来源:互联网 发布:java的md5加密 编辑:程序博客网 时间:2024/06/05 14:46
Shader "Sprites/Default"{Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}_Color ("Tint", Color) = (1,1,1,1)[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0}SubShader{Tags{ "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane""CanUseSpriteAtlas"="True"}Cull Off         //关闭背面剔除Lighting Off     //关闭灯光ZWrite Off       //关闭Z缓冲Blend One OneMinusSrcAlpha     //混合源系数one(1)  目标系数OneMinusSrcAlpha(1-one=0)Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile _ PIXELSNAP_ON       //告诉Unity编译不同版本的Shader,这里和后面vert中的PIXELSNAP_ON对应#pragma shader_feature ETC1_EXTERNAL_ALPHA#include "UnityCG.cginc"struct appdata_t                           //vert输入{float4 vertex   : POSITION;float4 color    : COLOR;float2 texcoord : TEXCOORD0;};struct v2f                                 //vert输出数据结构{float4 vertex   : SV_POSITION;fixed4 color    : COLOR;float2 texcoord  : TEXCOORD0;};fixed4 _Color;v2f vert(appdata_t IN){v2f OUT;OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);OUT.texcoord = IN.texcoord;OUT.color = IN.color * _Color;#ifdef PIXELSNAP_ONOUT.vertex = UnityPixelSnap (OUT.vertex);#endifreturn OUT;}sampler2D _MainTex;sampler2D _AlphaTex;fixed4 SampleSpriteTexture (float2 uv){fixed4 color = tex2D (_MainTex, uv);#if ETC1_EXTERNAL_ALPHA         //etc1没有透明通道,从另一图中取a值// get the color from an external texture (usecase: Alpha support for ETC1 on android)color.a = tex2D (_AlphaTex, uv).r;#endif //ETC1_EXTERNAL_ALPHAreturn color;}fixed4 frag(v2f IN) : SV_Target{fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color;c.rgb *= c.a;return c;}ENDCG}}}

0 0