Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Palette Cycle" {
- Properties{
- _Color("Base Color", Color) = (1,1,1,1)
- _EmissiveColor("Emissive Color", Color) = (1,1,1,1)
- [Toggle]_EmissiveOnly("Show Emissive Only", Float) = 0
- _MainTex("Albedo (RGB)", 2D) = "white" {}
- _NormalMap("Normal Map", 2D) = "bump" {}
- _IntensityMap("Intensity Map", 2D) = "none" {}
- _CycleGuide("Cycle Guide", 2D) = "none" {}
- _AlphaMap("Alpha Map", 2D) = "white" {}
- _EmissiveAmp("Emissive Multiplier", Range(1,99)) = 1
- _TimeMult("Time Multiplier", Range(0.1, 2)) = 1
- _Fade("Fade", Range(0.1, 0.99)) = 0.5
- _IXShift("Inten. X Slide Speed", Range(-3, 3)) = 0
- _IYShift("Inten. Y Slide Speed", Range(-3, 3)) = 0
- _CXShift("Cycle. X Slide Speed", Range(-3, 3)) = 0
- _CYShift("Cycle. Y Slide Speed", Range(-3, 3)) = 0
- _Metallic("Metallic", Range(0,1)) = 0
- _Smoothness("Smoothness", Range(0,1)) = 0
- [Enum(Off, 0, Front, 1, Back , 2)] _Cull ("Cull", Int) = 1
- }
- SubShader{
- Tags
- {
- "Queue" = "Transparent"
- "RenderType" = "Transparent"
- "IgnoreProjector" = "True"
- }
- //Blend SrcAlpha OneMinusSarcAlpha
- Cull [_Cull]
- LOD 200
- CGPROGRAM
- // Physically based Standard lighting model, and enable shadows on all light types
- #pragma surface surf Standard fullforwardshadows alpha:fade
- // Use shader model 3.0 target, to get nicer looking lighting
- #pragma target 3.0
- sampler2D _MainTex;
- sampler2D _CycleGuide;
- sampler2D _NormalMap;
- sampler2D _AlphaMap;
- sampler2D _IntensityMap;
- struct Input
- {
- float2 uv_MainTex;
- float2 uv_CycleGuide;
- float2 uv_NormalMap;
- float2 uv_AlphaMap;
- float2 uv_IntensityMap;
- };
- half _Metallic;
- half _Smoothness;
- float _Fade;
- float _TimeMult;
- float _IYShift;
- float _IXShift;
- float _CYShift;
- float _CXShift;
- fixed4 _Color;
- fixed4 _EmissiveColor;
- float _EmissiveAmp;
- bool _EmissiveOnly;
- void surf(Input IN, inout SurfaceOutputStandard o)
- {
- //Incriment the UVValues by time.
- IN.uv_IntensityMap.x += sin(_Time * _TimeMult * _IXShift);
- IN.uv_IntensityMap.y += sin(_Time * _TimeMult * _IYShift);
- IN.uv_CycleGuide.x += sin(_Time * _TimeMult * _CXShift);
- IN.uv_CycleGuide.y += sin(_Time * _TimeMult * _CYShift);
- // Metallic and Smoothness
- o.Metallic = _Metallic;
- o.Smoothness = _Smoothness;
- // Albedo comes from a texture tinted by color
- fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
- fixed4 e = tex2D(_CycleGuide, IN.uv_CycleGuide);
- o.Normal = UnpackNormal(tex2D(_NormalMap, IN.uv_NormalMap));
- o.Alpha = tex2D(_AlphaMap, IN.uv_AlphaMap) * _Color.a;
- half4 intense = tex2D(_IntensityMap, IN.uv_IntensityMap);
- o.Albedo = c.rgb;
- if (e.a > 0.01)
- {
- e.r = (fmod(e.r + _Time.y * _TimeMult + intense.r, 1));
- e.b = (fmod(e.b + _Time.y * _TimeMult + intense.b, 1));
- e.g = (fmod(e.g + _Time.y * _TimeMult + intense.g, 1));
- o.Emission = ((saturate(e.rgb - _Fade) * _EmissiveColor) * _EmissiveAmp);
- }
- if (_EmissiveOnly)
- {
- o.Alpha = tex2D(_AlphaMap, IN.uv_AlphaMap);
- if ((o.Emission.r == 0) && (o.Emission.b == 0) && (o.Emission.g == 0))
- {
- clip(-1);
- }
- }
- }
- ENDCG
- }
- FallBack "Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement