Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Shader created with Shader Forge v1.26
- // Shader Forge (c) Neat Corporation / Joachim Holmer - http://www.acegikmo.com/shaderforge/
- // Note: Manually altering this data may prevent you from opening it in Shader Forge
- /*SF_DATA;ver:1.26;sub:START;pass:START;ps:flbk:,iptp:0,cusa:False,bamd:0,lico:1,lgpr:1,limd:1,spmd:1,trmd:0,grmd:0,uamb:True,mssp:True,bkdf:False,hqlp:False,rprd:False,enco:False,rmgx:True,rpth:0,vtps:0,hqsc:True,nrmq:1,nrsp:0,vomd:0,spxs:False,tesm:0,olmd:1,culm:0,bsrc:0,bdst:1,dpts:2,wrdp:True,dith:0,rfrpo:True,rfrpn:Refraction,coma:15,ufog:True,aust:False,igpj:True,qofs:500,qpre:2,rntp:1,fgom:False,fgoc:False,fgod:False,fgor:False,fgmd:0,fgcr:0.5,fgcg:0.5,fgcb:0.5,fgca:1,fgde:0.01,fgrn:0,fgrf:300,stcl:False,stva:128,stmr:255,stmw:255,stcp:6,stps:0,stfa:0,stfz:0,ofsf:0,ofsu:0,f2p0:False,fnsp:False,fnfb:False;n:type:ShaderForge.SFN_Final,id:3819,x:33263,y:32669,varname:node_3819,prsc:2|emission-486-OUT,clip-2851-OUT,voffset-8002-OUT;n:type:ShaderForge.SFN_Color,id:2852,x:32452,y:32663,ptovrint:False,ptlb:Color,ptin:_Color,varname:node_2852,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.5019608,c2:0.5019608,c3:1,c4:1;n:type:ShaderForge.SFN_Fresnel,id:3471,x:31578,y:33087,varname:node_3471,prsc:2;n:type:ShaderForge.SFN_Step,id:8196,x:32016,y:33109,varname:node_8196,prsc:2|A-5237-OUT,B-3471-OUT;n:type:ShaderForge.SFN_Multiply,id:8189,x:32535,y:32923,varname:node_8189,prsc:2|A-2852-A,B-8196-OUT;n:type:ShaderForge.SFN_Slider,id:5237,x:31605,y:33414,ptovrint:False,ptlb:Hard Cutoff,ptin:_HardCutoff,varname:node_5237,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:0,cur:0.5,max:1;n:type:ShaderForge.SFN_Multiply,id:486,x:32756,y:32528,varname:node_486,prsc:2|A-6775-OUT,B-2852-RGB;n:type:ShaderForge.SFN_ValueProperty,id:6775,x:32559,y:32509,ptovrint:False,ptlb:Brightness Multiplier,ptin:_BrightnessMultiplier,varname:node_6775,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_DepthBlend,id:6847,x:31034,y:33060,varname:node_6847,prsc:2|DIST-9466-OUT;n:type:ShaderForge.SFN_ValueProperty,id:9466,x:30778,y:33016,ptovrint:False,ptlb:Depth Distance,ptin:_DepthDistance,varname:node_9466,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_Add,id:9659,x:32807,y:32762,varname:node_9659,prsc:2|A-1548-OUT,B-8189-OUT;n:type:ShaderForge.SFN_NormalVector,id:614,x:32484,y:33302,prsc:2,pt:False;n:type:ShaderForge.SFN_RemapRange,id:7643,x:32659,y:33432,varname:node_7643,prsc:2,frmn:0,frmx:1,tomn:-3.5,tomx:0|IN-9543-OUT;n:type:ShaderForge.SFN_Noise,id:9283,x:33203,y:33728,varname:node_9283,prsc:2|XY-8498-OUT;n:type:ShaderForge.SFN_Multiply,id:9222,x:33384,y:33547,varname:node_9222,prsc:2|A-5700-OUT,B-9283-OUT;n:type:ShaderForge.SFN_OneMinus,id:4253,x:32899,y:33640,varname:node_4253,prsc:2|IN-9543-OUT;n:type:ShaderForge.SFN_Slider,id:9543,x:32482,y:33638,ptovrint:False,ptlb:Vertex Explosion,ptin:_VertexExplosion,varname:node_9543,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:0,cur:0,max:1;n:type:ShaderForge.SFN_Multiply,id:8002,x:33095,y:33033,varname:node_8002,prsc:2|A-614-OUT,B-40-OUT;n:type:ShaderForge.SFN_Add,id:40,x:32918,y:33265,varname:node_40,prsc:2|A-7643-OUT,B-9222-OUT;n:type:ShaderForge.SFN_Multiply,id:5700,x:33086,y:33497,varname:node_5700,prsc:2|A-5361-OUT,B-4253-OUT;n:type:ShaderForge.SFN_Vector1,id:5361,x:32923,y:33535,varname:node_5361,prsc:2,v1:2;n:type:ShaderForge.SFN_Multiply,id:2851,x:33027,y:32838,varname:node_2851,prsc:2|A-9659-OUT,B-9543-OUT;n:type:ShaderForge.SFN_Append,id:8498,x:32995,y:33802,varname:node_8498,prsc:2|A-3370-OUT,B-5818-OUT;n:type:ShaderForge.SFN_FragmentPosition,id:959,x:32515,y:33754,varname:node_959,prsc:2;n:type:ShaderForge.SFN_Step,id:1553,x:31404,y:33481,varname:node_1553,prsc:2|A-5138-OUT,B-6847-OUT;n:type:ShaderForge.SFN_ValueProperty,id:5138,x:31125,y:33496,ptovrint:False,ptlb:Depth Test Step,ptin:_DepthTestStep,varname:node_5138,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.1;n:type:ShaderForge.SFN_OneMinus,id:1548,x:31651,y:33559,varname:node_1548,prsc:2|IN-1553-OUT;n:type:ShaderForge.SFN_Floor,id:3370,x:32762,y:33724,varname:node_3370,prsc:2|IN-959-X;n:type:ShaderForge.SFN_Floor,id:5818,x:32720,y:33865,varname:node_5818,prsc:2|IN-959-Z;proporder:2852-5237-6775-9466-9543-5138;pass:END;sub:END;*/
- Shader "Custom/EdgeGlow" {
- Properties {
- _Color ("Color", Color) = (0.5019608,0.5019608,1,1)
- _HardCutoff ("Hard Cutoff", Range(0, 1)) = 0.5
- _BrightnessMultiplier ("Brightness Multiplier", Float ) = 1
- _DepthDistance ("Depth Distance", Float ) = 1
- _VertexExplosion ("Vertex Explosion", Range(0, 1)) = 0
- _DepthTestStep ("Depth Test Step", Float ) = 0.1
- [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
- }
- SubShader {
- Tags {
- "IgnoreProjector"="True"
- "Queue"="AlphaTest+500"
- "RenderType"="Opaque"
- }
- LOD 200
- Pass {
- Name "FORWARD"
- Tags {
- "LightMode"="ForwardBase"
- }
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #define UNITY_PASS_FORWARDBASE
- #include "UnityCG.cginc"
- #pragma multi_compile_fwdbase
- #pragma multi_compile_fog
- #pragma exclude_renderers xbox360 ps3
- #pragma target 3.0
- uniform sampler2D _CameraDepthTexture;
- uniform float4 _Color;
- uniform float _HardCutoff;
- uniform float _BrightnessMultiplier;
- uniform float _DepthDistance;
- uniform float _VertexExplosion;
- uniform float _DepthTestStep;
- struct VertexInput {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- };
- struct VertexOutput {
- float4 pos : SV_POSITION;
- float4 posWorld : TEXCOORD0;
- float3 normalDir : TEXCOORD1;
- float4 projPos : TEXCOORD2;
- UNITY_FOG_COORDS(3)
- };
- VertexOutput vert (VertexInput v) {
- VertexOutput o = (VertexOutput)0;
- o.normalDir = UnityObjectToWorldNormal(v.normal);
- float2 node_8498 = float2(floor(mul(_Object2World, v.vertex).r),floor(mul(_Object2World, v.vertex).b));
- float2 node_9283_skew = node_8498 + 0.2127+node_8498.x*0.3713*node_8498.y;
- float2 node_9283_rnd = 4.789*sin(489.123*(node_9283_skew));
- float node_9283 = frac(node_9283_rnd.x*node_9283_rnd.y*(1+node_9283_skew.x));
- v.vertex.xyz += (v.normal*((_VertexExplosion*3.5+-3.5)+((2.0*(1.0 - _VertexExplosion))*node_9283)));
- o.posWorld = mul(_Object2World, v.vertex);
- o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
- UNITY_TRANSFER_FOG(o,o.pos);
- o.projPos = ComputeScreenPos (o.pos);
- COMPUTE_EYEDEPTH(o.projPos.z);
- return o;
- }
- float4 frag(VertexOutput i) : COLOR {
- i.normalDir = normalize(i.normalDir);
- float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
- float3 normalDirection = i.normalDir;
- float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
- float partZ = max(0,i.projPos.z - _ProjectionParams.g);
- clip((((1.0 - step(_DepthTestStep,saturate((sceneZ-partZ)/_DepthDistance)))+(_Color.a*step(_HardCutoff,(1.0-max(0,dot(normalDirection, viewDirection))))))*_VertexExplosion) - 0.5);
- ////// Lighting:
- ////// Emissive:
- float3 emissive = (_BrightnessMultiplier*_Color.rgb);
- float3 finalColor = emissive;
- fixed4 finalRGBA = fixed4(finalColor,1);
- UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
- return finalRGBA;
- }
- ENDCG
- }
- Pass {
- Name "ShadowCaster"
- Tags {
- "LightMode"="ShadowCaster"
- }
- Offset 1, 1
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #define UNITY_PASS_SHADOWCASTER
- #include "UnityCG.cginc"
- #include "Lighting.cginc"
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma multi_compile_shadowcaster
- #pragma multi_compile_fog
- #pragma exclude_renderers xbox360 ps3
- #pragma target 3.0
- uniform sampler2D _CameraDepthTexture;
- uniform float4 _Color;
- uniform float _HardCutoff;
- uniform float _DepthDistance;
- uniform float _VertexExplosion;
- uniform float _DepthTestStep;
- struct VertexInput {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- };
- struct VertexOutput {
- V2F_SHADOW_CASTER;
- float4 posWorld : TEXCOORD1;
- float3 normalDir : TEXCOORD2;
- float4 projPos : TEXCOORD3;
- };
- VertexOutput vert (VertexInput v) {
- VertexOutput o = (VertexOutput)0;
- o.normalDir = UnityObjectToWorldNormal(v.normal);
- float2 node_8498 = float2(floor(mul(_Object2World, v.vertex).r),floor(mul(_Object2World, v.vertex).b));
- float2 node_9283_skew = node_8498 + 0.2127+node_8498.x*0.3713*node_8498.y;
- float2 node_9283_rnd = 4.789*sin(489.123*(node_9283_skew));
- float node_9283 = frac(node_9283_rnd.x*node_9283_rnd.y*(1+node_9283_skew.x));
- v.vertex.xyz += (v.normal*((_VertexExplosion*3.5+-3.5)+((2.0*(1.0 - _VertexExplosion))*node_9283)));
- o.posWorld = mul(_Object2World, v.vertex);
- o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
- o.projPos = ComputeScreenPos (o.pos);
- COMPUTE_EYEDEPTH(o.projPos.z);
- TRANSFER_SHADOW_CASTER(o)
- return o;
- }
- float4 frag(VertexOutput i) : COLOR {
- i.normalDir = normalize(i.normalDir);
- float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
- float3 normalDirection = i.normalDir;
- float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
- float partZ = max(0,i.projPos.z - _ProjectionParams.g);
- clip((((1.0 - step(_DepthTestStep,saturate((sceneZ-partZ)/_DepthDistance)))+(_Color.a*step(_HardCutoff,(1.0-max(0,dot(normalDirection, viewDirection))))))*_VertexExplosion) - 0.5);
- SHADOW_CASTER_FRAGMENT(i)
- }
- ENDCG
- }
- }
- FallBack "Diffuse"
- CustomEditor "ShaderForgeMaterialInspector"
- }
Advertisement
Add Comment
Please, Sign In to add comment