1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Shader"MyShader/03shader" { Properties{ _Float("Float",Float)=0.0 _Range("Range",Range(0,1))=0.0 _Vector("Vector",Vector)=(1,1,1,1) _Color("Color",Color)=(0.5,0.5,0.5,0.5) _Texture("Texture",2D)="white"{} _NoiseTex("NoiseTex",2D)="white"{} [Enum(UnityEngine.Rendering.CullMode)]_CullMode("CullMode",Float)=2 } SubShader{ Pass{ Cull [_CullMode] CGPROGRAM #pragma vertex vert #pragma fragment frag #include"UnityCG.cginc" struct appdata{ float4 vertex:POSITION; float2 uv:TEXCOORD0; }; struct v2f{ float4 pos:SV_POSITION; float2 uv:TEXCOORD0; }; sampler2D _Texture; float4 _Texture_ST; float _Float; float4 _Vector; sampler2D _NoiseTex; float2 _NoiseTex_ST; fixed4 _Color;
v2f vert(appdata v) { v2f o; float4 pos_world = mul(unity_ObjectToWorld, v.vertex); float4 pos_view = mul(UNITY_MATRIX_V,pos_world); float4 pos_clip = mul(UNITY_MATRIX_P,pos_view); o.pos=UnityObjectToClipPos(v.vertex); o.uv=v.uv.xy*_Texture_ST.xy+_Texture_ST.zw; return o; } half4 frag(v2f i):SV_Target { half gradient=tex2D(_Texture,i.uv+_Time.y*_Vector.xy).x; half noise=1.0f-tex2D(_NoiseTex,i.uv+_Time.y*_Vector.wz).x; clip(gradient-_Float-noise); return _Color; } ENDCG }
} }
|