Advertisement
netgrind

Gradient

Jul 14th, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. Shader "Cale/TweenGradient" {
  2.     Properties {
  3.         _color1 ("Grad 1 Color 1", Color) = (1,.5,.5,1)
  4.         _color2 ("Grad 1 Color 2", Color) = (.5,1,1,1)
  5.         _color3 ("Grad 2 Color 1", Color) = (.5,1,.5,1)
  6.         _color4 ("Grad 2 Color 2", Color) = (.5,.5,1,1)
  7.         _offset("Interpolation Offset",Float)=0
  8.         _speed("Interpolation Speed",Float)=1
  9.         _MainTex ("SelfIllum Color (RGB) Alpha (A)", 2D) = "white"{}
  10.     }
  11.     Category{
  12.         Blend SrcAlpha OneMinusSrcAlpha
  13.         Tags {Queue=Transparent}
  14.         SubShader {
  15.             Pass{
  16.            
  17.                 CGPROGRAM
  18.                 #pragma vertex vert
  19.                 #pragma fragment frag
  20.  
  21.                 float4 _color1;
  22.                 float4 _color2;
  23.                 float4 _color3;
  24.                 float4 _color4;    
  25.                 float _offset;         
  26.                 float _speed;  
  27.                 sampler2D _MainTex;
  28.                
  29.                 struct appdata {
  30.                     float4 vertex : POSITION;
  31.                     float4 tex : TEXCOORD0;
  32.                 };
  33.                 struct v2f {
  34.                     float4 vertex : TEXCOORD;
  35.                     float4 pos : POSITION;
  36.                 };
  37.                 v2f vert(appdata v) {
  38.                     v2f o;
  39.                     o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  40.                     o.vertex = v.tex;
  41.                     return o;
  42.                 };
  43.                
  44.                 half4 frag(v2f i) : COLOR {
  45.                     float _inter = sin(_offset+_Time.y*_speed)*.5+.5;
  46.                     _color1.rgba = (_color1.rgba*i.vertex.y+_color2.rgba*(1-i.vertex.y))*_inter+(_color3.rgba*i.vertex.y+_color4.rgba*(1-i.vertex.y))*(1-_inter);
  47.                     _color1.rgb = _color1.rgb*tex2D(_MainTex,i.vertex.xy).rgb;
  48.                     return _color1;
  49.                 };
  50.  
  51.                 ENDCG
  52.             }
  53.         }
  54.     }
  55.     FallBack "Diffuse"
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement