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
    		}
    	}
    }
    

  • 相关阅读:
    86. Partition List
    328. Odd Even Linked List
    19. Remove Nth Node From End of List(移除倒数第N的结点, 快慢指针)
    24. Swap Nodes in Pairs
    2. Add Two Numbers(2个链表相加)
    92. Reverse Linked List II(链表部分反转)
    109. Convert Sorted List to Binary Search Tree
    138. Copy List with Random Pointer
    为Unity的新版ugui的Prefab生成预览图
    ArcEngine生成矩形缓冲区
  • 原文地址:https://www.cnblogs.com/nafio/p/9137269.html
Copyright © 2011-2022 走看看