Shader "Custom/LightningBoltShaderMesh" { Properties { [PerRendererData] _MainTex ("Main Texture (RGBA)", 2D) = "white" {} [PerRendererData] _TintColor ("Tint Color (RGB)", Vector) = (1,1,1,1) [PerRendererData] _InvFade ("Soft Particles Factor", Range(0.01, 100)) = 1 [PerRendererData] _JitterMultiplier ("Jitter Multiplier (Float)", Float) = 0 [PerRendererData] _Turbulence ("Turbulence (Float)", Float) = 0 [PerRendererData] _TurbulenceVelocity ("Turbulence Velocity (Vector)", Vector) = (0,0,0,0) [PerRendererData] _IntensityFlicker ("Intensity flicker (Vector)", Vector) = (0,0,0,0) [PerRendererData] _RenderMode ("Render Mode - 0 = perspective, 1 = orthoxy, 2 = orthoxz (Int)", Float) = 0 [PerRendererData] _SrcBlendMode ("SrcBlendMode (Source Blend Mode)", Float) = 5 [PerRendererData] _DstBlendMode ("DstBlendMode (Destination Blend Mode)", Float) = 1 } //DummyShaderTextExporter Category { SubShader { LOD 0 Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } Blend SrcAlpha OneMinusSrcAlpha ColorMask RGB Cull Off Lighting Off ZWrite Off ZTest LEqual Pass { CGPROGRAM #ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX #define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input) #endif #pragma vertex vert #pragma fragment frag #pragma target 2.0 #pragma multi_compile_instancing #pragma multi_compile_particles #pragma multi_compile_fog #include "UnityShaderVariables.cginc" #include "UnityCG.cginc" struct appdata_t { float4 vertex : POSITION; fixed4 color : COLOR; float4 texcoord : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; float4 texcoord : TEXCOORD0; UNITY_FOG_COORDS(1) #ifdef SOFTPARTICLES_ON float4 projPos : TEXCOORD2; #endif UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; #if UNITY_VERSION >= 560 UNITY_DECLARE_DEPTH_TEXTURE( _CameraDepthTexture ); #else uniform sampler2D_float _CameraDepthTexture; #endif uniform sampler2D _MainTex; uniform fixed4 _TintColor; uniform float4 _MainTex_ST; uniform float _InvFade; v2f vert ( appdata_t v ) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); UNITY_TRANSFER_INSTANCE_ID(v, o); v.vertex.xyz += _SinTime.xyz; o.vertex = UnityObjectToClipPos(v.vertex); #ifdef SOFTPARTICLES_ON o.projPos = ComputeScreenPos (o.vertex); COMPUTE_EYEDEPTH(o.projPos.z); #endif o.color = v.color; o.texcoord = v.texcoord; UNITY_TRANSFER_FOG(o,o.vertex); return o; } fixed4 frag ( v2f i ) : SV_Target { UNITY_SETUP_INSTANCE_ID( i ); UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( i ); #ifdef SOFTPARTICLES_ON float sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos))); float partZ = i.projPos.z; float fade = saturate (_InvFade * (sceneZ-partZ)); i.color.a *= fade; #endif fixed4 col = 2.0f * i.color * _TintColor * tex2D(_MainTex, i.texcoord.xy*_MainTex_ST.xy + _MainTex_ST.zw ); UNITY_APPLY_FOG(i.fogCoord, col); return col; } ENDCG } } } }