LethalCompany/Lethal Company/ExportedProject/Assets/Shader/Custom_LightningBoltShaderMesh.shader

113 lines
3.3 KiB
Text
Raw Normal View History

2023-12-22 22:51:17 +00:00
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
}
}
}
}