Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Shader Forge/UiShine" {
- Properties {
- [PerRendererData]_MainTex ("MainTex", 2D) = "white" {}
- _Color ("Color", Color) = (1,1,1,1)
- _ShineTex ("ShineTex", 2D) = "white" {}
- _time ("time", Range(0, 1)) = 0
- [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
- [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
- _Stencil ("Stencil ID", Float) = 0
- _StencilReadMask ("Stencil Read Mask", Float) = 255
- _StencilWriteMask ("Stencil Write Mask", Float) = 255
- _StencilComp ("Stencil Comparison", Float) = 8
- _StencilOp ("Stencil Operation", Float) = 0
- _StencilOpFail ("Stencil Fail Operation", Float) = 0
- _StencilOpZFail ("Stencil Z-Fail Operation", Float) = 0
- }
- SubShader {
- Tags {
- "IgnoreProjector"="True"
- "Queue"="Transparent"
- "RenderType"="Transparent"
- "CanUseSpriteAtlas"="True"
- "PreviewType"="Plane"
- }
- Pass {
- Name "FORWARD"
- Tags {
- "LightMode"="ForwardBase"
- }
- Blend One OneMinusSrcAlpha
- Cull Off
- ZWrite Off
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #define UNITY_PASS_FORWARDBASE
- #pragma multi_compile _ PIXELSNAP_ON
- #include "UnityCG.cginc"
- #include "UnityUI.cginc"
- #pragma multi_compile_fwdbase
- #pragma only_renderers d3d9 d3d11 glcore gles gles3 metal n3ds wiiu
- #pragma target 3.0
- uniform sampler2D _MainTex; uniform float4 _MainTex_ST;
- uniform float4 _Color;
- uniform sampler2D _ShineTex; uniform float4 _ShineTex_ST;
- uniform float _time;
- float4 _ClipRect;
- struct VertexInput {
- float4 vertex : POSITION;
- float2 texcoord0 : TEXCOORD0;
- float4 vertexColor : COLOR;
- };
- struct VertexOutput {
- float4 pos : SV_POSITION;
- float2 uv0 : TEXCOORD0;
- float4 vertexColor : COLOR;
- float4 projPos : TEXCOORD1;
- float4 worldPos : TEXCOORD2;
- };
- VertexOutput vert (VertexInput v) {
- VertexOutput o = (VertexOutput)0;
- o.uv0 = v.texcoord0;
- o.vertexColor = v.vertexColor;
- o.pos = UnityObjectToClipPos(v.vertex);
- #ifdef PIXELSNAP_ON
- o.pos = UnityPixelSnap(o.pos);
- #endif
- o.projPos = ComputeScreenPos(o.pos);
- COMPUTE_EYEDEPTH(o.projPos.z);
- o.worldPos = v.vertex;
- return o;
- }
- float4 frag(VertexOutput i, float facing : VFACE) : COLOR {
- float isFrontFace = ( facing >= 0 ? 1 : 0 );
- float faceSign = ( facing >= 0 ? 1 : -1 );
- float2 sceneUVs = (i.projPos.xy / i.projPos.w);
- ////// Lighting:
- ////// Emissive:
- float2 node_1790 = (sceneUVs.rg+_time*float2(1,0));
- float4 _ShineTex_var = tex2D(_ShineTex,TRANSFORM_TEX(node_1790, _ShineTex));
- float4 _MainTex_var = tex2D(_MainTex,TRANSFORM_TEX(i.uv0, _MainTex));
- float node_603 = (_MainTex_var.a*i.vertexColor.a); // A
- float3 emissive = (((_ShineTex_var.rgb*i.vertexColor.rgb*_Color.a)+(_MainTex_var.rgb*(i.vertexColor.rgb*_Color.rgb)))*node_603);
- float3 finalColor = emissive;
- return fixed4(finalColor, node_603 * UnityGet2DClipping(i.worldPos.xy, _ClipRect));
- }
- ENDCG
- }
- Pass {
- Name "ShadowCaster"
- Tags {
- "LightMode"="ShadowCaster"
- }
- Offset 1, 1
- Cull Off
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #define UNITY_PASS_SHADOWCASTER
- #pragma multi_compile _ PIXELSNAP_ON
- #include "UnityCG.cginc"
- #include "Lighting.cginc"
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma multi_compile_shadowcaster
- #pragma only_renderers d3d9 d3d11 glcore gles gles3 metal n3ds wiiu
- #pragma target 3.0
- struct VertexInput {
- float4 vertex : POSITION;
- };
- struct VertexOutput {
- V2F_SHADOW_CASTER;
- };
- VertexOutput vert (VertexInput v) {
- VertexOutput o = (VertexOutput)0;
- o.pos = UnityObjectToClipPos( v.vertex );
- #ifdef PIXELSNAP_ON
- o.pos = UnityPixelSnap(o.pos);
- #endif
- TRANSFER_SHADOW_CASTER(o)
- return o;
- }
- float4 frag(VertexOutput i, float facing : VFACE) : COLOR {
- float isFrontFace = ( facing >= 0 ? 1 : 0 );
- float faceSign = ( facing >= 0 ? 1 : -1 );
- SHADOW_CASTER_FRAGMENT(i)
- }
- ENDCG
- }
- }
- FallBack "Diffuse"
- CustomEditor "ShaderForgeMaterialInspector"
- }
Advertisement
Add Comment
Please, Sign In to add comment