zoukankan      html  css  js  c++  java
  • shader

    Shader "Custom/logo" {
    	Properties {
    		_MainTex ("Texture", 2D) = "white" { }
    	}
    	SubShader
    	{
    		Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    		Tags { "LightMode" = "Vertex" }
    		Cull Off
    		Lighting On
    		Material { Emission [_EmisColor] }
    		ColorMaterial AmbientAndDiffuse
    		ZWrite Off
    		ColorMask RGB
    		AlphaTest Greater .001
    		
    		// This 1 line of code make texture transparent 
    		Blend SrcAlpha OneMinusSrcAlpha
    		
    		pass
    		{
    			CGPROGRAM
    			#pragma vertex vert
    			#pragma fragment frag
    			
    			#include "UnityCG.cginc"
    			
    			
    			sampler2D _MainTex;
    			float4 _MainTex_ST;
    			
    			
    			struct v2f {
    			    float4  pos : SV_POSITION;
    			    float2  uv : TEXCOORD0;
    			};
    			
    			
    			
    			v2f vert (appdata_base v)
    			{
    			    v2f o;
    			   	o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
    				o.uv =	TRANSFORM_TEX(v.texcoord,_MainTex);
    			    return o;
    			}
    			
    			float inFlash(float angle,float2 uv,float xLength,int interval,int beginTime, float offX, float loopTime )
    			{
    				float brightness =0;
    				float angleInRad = 0.0174444 * angle;
    				float currentTime = _Time.y;
    			
    				int currentTimeInt = _Time.y/interval;
    				currentTimeInt *=interval;
    				float currentTimeRemainder = currentTime -currentTimeInt;
    				if(currentTimeRemainder >beginTime)
    				{
    					float xLeftBound; 
    					float xRightBound;
    			
    					float xProjL;
    					float xPointLeftBound; 
    					float xPointRightBound;
    					
    					float x0 = currentTimeRemainder-beginTime; 
    					x0 /= loopTime;
    			
    					xRightBound = x0;
    					xLeftBound = x0 - xLength;
    					
    					xProjL= (uv.y)/tan(angleInRad);
    
    					
    					xPointLeftBound = xLeftBound - xProjL;
    					xPointRightBound = xRightBound - xProjL;
    					
    					xPointLeftBound += offX;
    					xPointRightBound += offX;
    					if(uv.x > xPointLeftBound && uv.x < xPointRightBound)
    					{
    						float midness = (xPointLeftBound + xPointRightBound)/2;
    						float rate= (xLength -2*abs(uv.x - midness))/ (xLength);
    						brightness = rate;
    					}
    				}
    				brightness= max(brightness,0);
    				float4 col = float4(1,1,1,1) *brightness;
    				return brightness;
    			}
    			float4 frag (v2f i) : COLOR
    			{
    				bool inRegion;
    				inRegion = false;
    				
    				float tmpBrightness;
    //				tmpBrightness =inFlash(75,i.uv,0.05f,5f,2f,0,0.7f);
    //				if(tmpBrightness ==0)
    //					tmpBrightness =inFlash(75,i.uv,0.25f,5f,2f,0.15,0.7f);
    				
    				tmpBrightness =inFlash(75,i.uv,0.25f,5f,2f,0.15,0.7f);
    				
    				float4 texCol = tex2D(_MainTex,i.uv);
    			    float4 outp;
    			
    			    if(texCol.w >0.5)
    			    {
    				    	outp  =texCol+float4(1,1,1,1)*tmpBrightness;
    			    }
    			    else
    			    	outp =float4(0,0,0,0);
    			    	
    			    //int uu = _Time.y;
    			    //outp = float4(uu%5 * 0.1,0,0,1);
    			    return outp;
    			}
    			ENDCG
    		}
    	}
    }
  • 相关阅读:
    理解z-index
    别在最好的年纪辜负最好的自己
    一劳永逸的flex布局
    移动端常见的兼容性问题
    css代码颜色十六进制大全
    把select的小图标替换成 自己想要的图片
    HTML中的<select>标签如何设置默认选中的选项
    js获取元素,窗口的宽度、高度
    jQuery.NiceScroll简单的API
    Linux搭建ftp服务器简单教程及使用方法
  • 原文地址:https://www.cnblogs.com/U-tansuo/p/2807735.html
Copyright © 2011-2022 走看看