zoukankan      html  css  js  c++  java
  • Shader播放序列帧

    <1>代码

    Shader "Tang/622/FrameAnim"{
    
    	Properties{
    		_MainTex("序列帧",2D) = "white" { }
    		_Row("行",Float) = 8
    	    _Col("列",Float) = 8
    		_Speed("速度",Float) = 80
    	}
    
    	SubShader{
    		Tags {"Queue" = "Transparent" "RenderType" = "Transparent"}
    		Pass{
    			Tags { "LightMode" = "ForwardBase" }
    			ZWrite off
    			cull off 
    			Blend SrcAlpha OneMinusSrcAlpha 
    			CGPROGRAM
    			#pragma vertex vert 
    			#pragma fragment frag 
    			#include "UnityCG.cginc"
    
    			struct a2v{
    				float4 vertex:POSITION;
    				float4 texcoord:TEXCOORD0;
    			};
    			struct v2f{
    				float4 pos:SV_POSITION;
    				float2 uv:TEXCOORD0;
    			};
    			sampler2D _MainTex;float4 _MainTex_ST;
    			float _Row;
    			float _Col;
    			float _Speed;
    
    			v2f vert(a2v v){
    				v2f o;
    				o.pos = UnityObjectToClipPos(v.vertex);
    				o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
    				return o;
    			}
    
    			fixed4 frag(v2f i):SV_Target{
                    float time = floor(_Time.y*_Speed);
    				//求行
    				float row = floor(time/_Col);
    				//求列
    				float column = time - row*_Row;
    				half2 uv  = i.uv +half2(column,-row);
    				//列
    				uv.x/=_Col;
    				//行 row/_Row = 起始行uv i.uv.y/_Row = i.uv.y缩放  相加 = 当前uv.y
    				uv.y/=_Row;
    				return tex2D(_MainTex,uv);
    			}
    
    			ENDCG
    		}
    	}
    
    	FallBack "Diffuse"
    }
    

      

  • 相关阅读:
    浏览器默认样式
    display
    JS中的!=、== 、!==、===的用法和区别。
    getElementsByName
    让DIV的滚动条自动滚动到最底部
    uoj118 【UR #8】赴京赶考
    [MtOI2019]幽灵乐团
    uoj213 【UNR #1】争夺圣杯
    loj6198 谢特
    [CTSC2017]密钥
  • 原文地址:https://www.cnblogs.com/cocotang/p/11060214.html
Copyright © 2011-2022 走看看