zoukankan      html  css  js  c++  java
  • builtin_shaders-5.3.4f1学习-Sprites-Default

    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_ON
    				OUT.vertex = UnityPixelSnap (OUT.vertex);
    				#endif
    
    				return 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_ALPHA
    
    				return color;
    			}
    
    			fixed4 frag(v2f IN) : SV_Target
    			{
    				fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color;
    				c.rgb *= c.a;
    				return c;
    			}
    		ENDCG
    		}
    	}
    }
    

  • 相关阅读:
    个人博客12
    《梦断代码》阅读笔记03
    个人博客11
    个人博客10
    【Codeforces 404C】Restore Graph
    【Codeforces 476C】Dreamoon and Sums
    【Codeforces 242C】King's Path
    【Codeforces 382C】Arithmetic Progression
    【Codeforces 1096D】Easy Problem
    【Codeforces 494A】Treasure
  • 原文地址:https://www.cnblogs.com/nafio/p/9137269.html
Copyright © 2011-2022 走看看