ユニティシェーダフレームアニメーションシーケンス

テクスチャシェーダアニメーションの1つに属するフレームアニメーションシーケンスは、主な原理は、等分テクスチャーを与えられ、その後、等価時にループの部分を変更しています。

 

ユニティシェーダーは内蔵の時間変数
名前 タイプ 説明
_時間 float4 Tは、シーンのロード時から経過した(T / 20、T、2T、3T)
_SinTime float4 (T / 8、T / 4、T / 2、T)Tはローディングシナリオサインの時間から経過した場合
_CosTime float4 Tは、シーンの自己荷重経過時間の余弦である(T / 8、T / 4、T / 2、T)
unity_DeltaTime float4 時間増分用(DT、1 / dtは、SDT、1 / SDT)dtは時間増分であり、SDT平滑化値

 

 

 

 

 

 

 

 

次のようにスクリプトは次のとおりです。

1シェーダ" MyUnlit / FrameAnimation " 
2  {
 3つの     プロパティ
 4      {
 5          _Color(" 色味"、色)=(1111 6          _MainTex(" テクスチャ"、2D)= " " {}
 7          _CutX (" CutX量"フロート)= 4 
8          _CutY(CUTY量" フロート)= 4 
。9          _SPEED(" スピード、範囲(1100))= 30 
10      }
 11      SubShader
 12は     {
 13は         // テクスチャアルファチャンネルとアニメーションシーケンスの一般的なフレームは、従ってYaoanの透明性をレンダリングタグが近い深い書き込みを設定する必要があり、混合使用して設定
14個の          タグを{ RenderType  = 透明 キュー = 透明 ignoreprojector  = "真の"}
 15          オフZWRITE
 16          oneminussrcalphaブレンドSRCALPHA
 17  
18          パス
 19          {
 20個の              タグ{ " lightmode " = " forwardbase " }
 21  
22              CGPROGRAM
 23              の#pragma頂点VERT
 24              の#pragma断片FRAG
 25              の#pragmaは multi_compile_fog
 26  
27              の#include " UnityCG.cgincを" 
28  
29              構造体APPDATA
30              {
 31                  のfloat4頂点:POSITION。
32                  するfloat2 UV:TEXCOORD0。
33              }。
34  
35              構造体V2F
 36              {
 37                  するfloat2 UV:TEXCOORD0。
38                  UNITY_FOG_COORDS(1 39                  のfloat4頂点:SV_POSITION。
40              }。
41  
42              sampler2D _MainTex。
43              のfloat4 _MainTex_ST。
44              fixed4 _Color。
45              フロート_CutX。
46              フロート_CutY。
47              フロート_Speed。
48  
49              (APPDATA V)V2FのVERT
 50              {
 51                  V2F O。
52                  o.vertex = UnityObjectToClipPos(v.vertex)。
53                  o.uv = TRANSFORM_TEX(v.uv、_MainTex)。
54                  UNITY_TRANSFER_FOG(O、o.vertex)。
55                  リターンO;
56              }
 57  
58              fixed4 FRAG(V2F I):SV_Target
 59              {
 60                  // 取得整数的时间
61                  フロート=床時間(_Time.y * _SPEED);
 62である                 // アリコート部分列(左から右に再生シーケンス、最初の列ので)
63が                 フロート床(時間/ =行_CutX);
 64                  // カラムの残りの部分
65                  フロートカラム=時間- *行_CutX;
 66  
67                  // オフセット値が算出され、uが値の列インデックスであり、vは原点は左上隅が表示され、UVサンプル原点は左下隅である(行インデックスの反対です、オフセットV)ようにそれが否定されるべきである
68                  - half2 UV + = i.uv half2(カラム;行)
 69                  // 最終行取得するためにサンプル値で割った
70                  uv.x / = _CutXを、
 71である                  uv.y / = _CutY;
 72  
73である                  fixed4 COL =tex2D(_MainTex、UV)。
74                  col.rgb * = _Color。
75                  UNITY_APPLY_FOG(i.fogCoord、COL)。
76                  リターンCOL。
77              }
 78              ENDCG
 79          }
 80      }
 81      フォールバック" 透明/ VertexLit " 
82 }

 

おすすめ

転載: www.cnblogs.com/koshio0219/p/11119787.html
おすすめ