Advertisement
ylSiew

Untitled

Jun 16th, 2014
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 24.34 KB | None | 0 0
  1. // Shader created with Shader Forge Beta 0.34
  2. // Shader Forge (c) Joachim Holmer - http://www.acegikmo.com/shaderforge/
  3. // Note: Manually altering this data may prevent you from opening it in Shader Forge
  4. /*SF_DATA;ver:0.34;sub:START;pass:START;ps:flbk:,lico:1,lgpr:1,nrmq:1,limd:1,uamb:True,mssp:True,lmpd:False,lprd:False,enco:True,frtr:True,vitr:True,dbil:False,rmgx:True,rpth:0,hqsc:True,hqlp:False,blpr:1,bsrc:3,bdst:7,culm:0,dpts:2,wrdp:True,ufog:True,aust:True,igpj:False,qofs:0,qpre:2,rntp:3,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,ofsf:0,ofsu:0,f2p0:False;n:type:ShaderForge.SFN_Final,id:1,x:29779,y:33523|diff-1219-RGB,spec-2628-OUT,normal-2448-OUT,emission-2355-OUT,transm-2895-OUT,clip-2499-OUT;n:type:ShaderForge.SFN_Tex2d,id:1219,x:31156,y:32533,ptlb:Diffuse,ptin:_Diffuse,tex:1e2f861f111ab7347a6bbd8d2d792117,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Tex2d,id:1300,x:34046,y:32346,ptlb:Crack Normals,ptin:_CrackNormals,tex:139b45b767211a94291d96f416ba2859,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Power,id:2334,x:33468,y:32648|VAL-1300-B,EXP-2335-OUT;n:type:ShaderForge.SFN_Vector1,id:2335,x:33701,y:32707,v1:100;n:type:ShaderForge.SFN_OneMinus,id:2336,x:33229,y:32664|IN-2334-OUT;n:type:ShaderForge.SFN_Multiply,id:2337,x:32956,y:32821|A-2336-OUT,B-2342-OUT;n:type:ShaderForge.SFN_Tex2d,id:2338,x:34312,y:32917,ptlb:glow texture,ptin:_glowtexture,tex:62d73e7af651e4348b3568b7b00c8f78,ntxv:2,isnm:False;n:type:ShaderForge.SFN_Power,id:2339,x:33423,y:32854|VAL-3262-OUT,EXP-2341-OUT;n:type:ShaderForge.SFN_Vector1,id:2341,x:33634,y:33064,v1:6;n:type:ShaderForge.SFN_ComponentMask,id:2342,x:33206,y:32870,cc1:2,cc2:-1,cc3:-1,cc4:-1|IN-2339-OUT;n:type:ShaderForge.SFN_Multiply,id:2343,x:32724,y:32960|A-2337-OUT,B-2344-OUT;n:type:ShaderForge.SFN_Vector1,id:2344,x:33013,y:33081,v1:3;n:type:ShaderForge.SFN_Color,id:2346,x:32750,y:33185,ptlb:glow color,ptin:_glowcolor,glob:False,c1:0.9852941,c2:0.3099779,c3:0.1956099,c4:1;n:type:ShaderForge.SFN_Multiply,id:2347,x:32480,y:33052|A-2343-OUT,B-2346-RGB;n:type:ShaderForge.SFN_Clamp01,id:2355,x:30837,y:33429|IN-2395-OUT;n:type:ShaderForge.SFN_Slider,id:2394,x:32421,y:32667,ptlb:Effect Strength,ptin:_EffectStrength,min:0,cur:1,max:1;n:type:ShaderForge.SFN_Multiply,id:2395,x:31964,y:33177|A-2347-OUT,B-2394-OUT;n:type:ShaderForge.SFN_Multiply,id:2408,x:31747,y:32473|A-1300-RGB,B-2394-OUT;n:type:ShaderForge.SFN_Blend,id:2448,x:31552,y:32768,blmd:10,clmp:True|SRC-2453-OUT,DST-2653-OUT;n:type:ShaderForge.SFN_ComponentMask,id:2453,x:31579,y:32492,cc1:0,cc2:1,cc3:-1,cc4:-1|IN-2408-OUT;n:type:ShaderForge.SFN_ComponentMask,id:2471,x:31555,y:33362,cc1:0,cc2:-1,cc3:-1,cc4:-1|IN-2395-OUT;n:type:ShaderForge.SFN_Clamp01,id:2499,x:30905,y:33569|IN-2764-OUT;n:type:ShaderForge.SFN_Time,id:2517,x:33134,y:33746;n:type:ShaderForge.SFN_Tex2d,id:2520,x:31347,y:33845,ptlb:crack glow,ptin:_crackglow,tex:bd6d4f915979edd4b9b881c29995025f,ntxv:2,isnm:False|UVIN-2914-OUT;n:type:ShaderForge.SFN_TexCoord,id:2596,x:31820,y:33836,uv:0;n:type:ShaderForge.SFN_Power,id:2597,x:31146,y:33835|VAL-2520-RGB,EXP-2599-OUT;n:type:ShaderForge.SFN_Vector1,id:2599,x:31292,y:34082,v1:2;n:type:ShaderForge.SFN_Desaturate,id:2616,x:31443,y:33034|COL-2448-OUT;n:type:ShaderForge.SFN_Power,id:2619,x:31223,y:33107|VAL-2616-OUT,EXP-2620-OUT;n:type:ShaderForge.SFN_Vector1,id:2620,x:31570,y:33159,v1:5;n:type:ShaderForge.SFN_RemapRange,id:2628,x:31008,y:33131,frmn:0,frmx:1,tomn:0,tomx:0.7|IN-2619-OUT;n:type:ShaderForge.SFN_Vector3,id:2653,x:31879,y:32711,v1:0.5,v2:0.5,v3:1;n:type:ShaderForge.SFN_Add,id:2745,x:31318,y:33538|A-2471-OUT,B-2996-OUT;n:type:ShaderForge.SFN_Multiply,id:2764,x:31125,y:33640|A-2745-OUT,B-2996-OUT;n:type:ShaderForge.SFN_RemapRange,id:2774,x:30955,y:34599,frmn:0,frmx:1,tomn:-1,tomx:1|IN-2915-UVOUT;n:type:ShaderForge.SFN_Multiply,id:2775,x:30790,y:34599|A-2774-OUT,B-2774-OUT;n:type:ShaderForge.SFN_ComponentMask,id:2776,x:30652,y:34599,cc1:0,cc2:1,cc3:-1,cc4:-1|IN-2775-OUT;n:type:ShaderForge.SFN_Add,id:2777,x:30467,y:34599|A-2776-R,B-2776-G;n:type:ShaderForge.SFN_Multiply,id:2778,x:30943,y:33894|A-2597-OUT,B-2777-OUT;n:type:ShaderForge.SFN_Vector3,id:2870,x:30906,y:34043,v1:0.9779412,v2:0.4917477,v3:0.05033519;n:type:ShaderForge.SFN_Multiply,id:2871,x:30687,y:33914|A-2778-OUT,B-2870-OUT;n:type:ShaderForge.SFN_Clamp01,id:2895,x:30082,y:33681|IN-3251-OUT;n:type:ShaderForge.SFN_Vector1,id:2910,x:32355,y:34199,v1:0.2;n:type:ShaderForge.SFN_Vector1,id:2911,x:32355,y:34122,v1:0.5;n:type:ShaderForge.SFN_Append,id:2912,x:32124,y:34155|A-2911-OUT,B-2910-OUT;n:type:ShaderForge.SFN_Multiply,id:2913,x:31788,y:34050|A-2912-OUT,B-2517-TSL;n:type:ShaderForge.SFN_Add,id:2914,x:31560,y:33894|A-2596-UVOUT,B-2913-OUT;n:type:ShaderForge.SFN_TexCoord,id:2915,x:31176,y:34599,uv:0;n:type:ShaderForge.SFN_Sin,id:2951,x:31967,y:33647|IN-2517-T;n:type:ShaderForge.SFN_RemapRange,id:2952,x:31799,y:33647,frmn:-1,frmx:1,tomn:0,tomx:1|IN-2951-OUT;n:type:ShaderForge.SFN_SwitchProperty,id:2996,x:31560,y:33698,ptlb:slider controls alpha?,ptin:_slidercontrolsalpha,on:False|A-2952-OUT,B-2394-OUT;n:type:ShaderForge.SFN_Relay,id:3200,x:31839,y:34551|IN-2517-TTR;n:type:ShaderForge.SFN_Sin,id:3201,x:31276,y:34241|IN-3200-OUT;n:type:ShaderForge.SFN_RemapRange,id:3202,x:30668,y:34105,frmn:-1,frmx:1,tomn:0,tomx:1|IN-3201-OUT;n:type:ShaderForge.SFN_Multiply,id:3203,x:30454,y:33843|A-2871-OUT,B-3202-OUT;n:type:ShaderForge.SFN_Tex2d,id:3225,x:34247,y:32721,ptlb:glow texture2,ptin:_glowtexture2,tex:a7a0fe7a1c016ff4ebfa3fdea495a14a,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Lerp,id:3226,x:33911,y:32851|A-3225-RGB,B-2338-RGB,T-3228-OUT;n:type:ShaderForge.SFN_Relay,id:3227,x:34326,y:33308|IN-2517-T;n:type:ShaderForge.SFN_Sin,id:3228,x:34057,y:33204|IN-3227-OUT;n:type:ShaderForge.SFN_Vector3,id:3249,x:30739,y:33718,v1:1,v2:0.6944218,v3:0.03676468;n:type:ShaderForge.SFN_Multiply,id:3250,x:30519,y:33680|A-2628-OUT,B-3249-OUT;n:type:ShaderForge.SFN_Add,id:3251,x:30249,y:33681|A-3203-OUT,B-3250-OUT;n:type:ShaderForge.SFN_Tex2d,id:3259,x:34110,y:33047,ptlb:glow texture3,ptin:_glowtexture3,tex:646b2d0729b618c40a2aa61e2e649b0f,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Lerp,id:3262,x:33701,y:32851,cmnt:switch between 3 glow textures|A-3226-OUT,B-3259-RGB,T-3263-OUT;n:type:ShaderForge.SFN_Cos,id:3263,x:33983,y:33390|IN-3227-OUT;proporder:1219-1300-2338-3225-3259-2346-2394-2520-2996;pass:END;sub:END;*/
  5.  
  6. Shader "Custom/shader_crumble" {
  7.     Properties {
  8.         _Diffuse ("Diffuse", 2D) = "white" {}
  9.         _CrackNormals ("Crack Normals", 2D) = "white" {}
  10.         _glowtexture ("glow texture", 2D) = "black" {}
  11.         _glowtexture2 ("glow texture2", 2D) = "white" {}
  12.         _glowtexture3 ("glow texture3", 2D) = "white" {}
  13.         _glowcolor ("glow color", Color) = (0.9852941,0.3099779,0.1956099,1)
  14.         _EffectStrength ("Effect Strength", Range(0, 1)) = 1
  15.         _crackglow ("crack glow", 2D) = "black" {}
  16.         [MaterialToggle] _slidercontrolsalpha ("slider controls alpha?", Float ) = 0.5
  17.         [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
  18.     }
  19.     SubShader {
  20.         Tags {
  21.             "Queue"="AlphaTest"
  22.             "RenderType"="TransparentCutout"
  23.         }
  24.         LOD 200
  25.         Pass {
  26.             Name "ForwardBase"
  27.             Tags {
  28.                 "LightMode"="ForwardBase"
  29.             }
  30.             Blend SrcAlpha OneMinusSrcAlpha
  31.            
  32.            
  33.             CGPROGRAM
  34.             #pragma vertex vert
  35.             #pragma fragment frag
  36.             #define UNITY_PASS_FORWARDBASE
  37.             #include "UnityCG.cginc"
  38.             #include "AutoLight.cginc"
  39.             #pragma multi_compile_fwdbase_fullshadows
  40.             #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  41.             #pragma target 3.0
  42.             uniform float4 _LightColor0;
  43.             uniform float4 _TimeEditor;
  44.             uniform sampler2D _Diffuse; uniform float4 _Diffuse_ST;
  45.             uniform sampler2D _CrackNormals; uniform float4 _CrackNormals_ST;
  46.             uniform sampler2D _glowtexture; uniform float4 _glowtexture_ST;
  47.             uniform float4 _glowcolor;
  48.             uniform float _EffectStrength;
  49.             uniform sampler2D _crackglow; uniform float4 _crackglow_ST;
  50.             uniform fixed _slidercontrolsalpha;
  51.             uniform sampler2D _glowtexture2; uniform float4 _glowtexture2_ST;
  52.             uniform sampler2D _glowtexture3; uniform float4 _glowtexture3_ST;
  53.             struct VertexInput {
  54.                 float4 vertex : POSITION;
  55.                 float3 normal : NORMAL;
  56.                 float4 tangent : TANGENT;
  57.                 float2 texcoord0 : TEXCOORD0;
  58.             };
  59.             struct VertexOutput {
  60.                 float4 pos : SV_POSITION;
  61.                 float2 uv0 : TEXCOORD0;
  62.                 float4 posWorld : TEXCOORD1;
  63.                 float3 normalDir : TEXCOORD2;
  64.                 float3 tangentDir : TEXCOORD3;
  65.                 float3 binormalDir : TEXCOORD4;
  66.                 LIGHTING_COORDS(5,6)
  67.             };
  68.             VertexOutput vert (VertexInput v) {
  69.                 VertexOutput o;
  70.                 o.uv0 = v.texcoord0;
  71.                 o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  72.                 o.tangentDir = normalize( mul( _Object2World, float4( v.tangent.xyz, 0.0 ) ).xyz );
  73.                 o.binormalDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
  74.                 o.posWorld = mul(_Object2World, v.vertex);
  75.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  76.                 TRANSFER_VERTEX_TO_FRAGMENT(o)
  77.                 return o;
  78.             }
  79.             fixed4 frag(VertexOutput i) : COLOR {
  80.                 i.normalDir = normalize(i.normalDir);
  81.                 float3x3 tangentTransform = float3x3( i.tangentDir, i.binormalDir, i.normalDir);
  82.                 float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  83. /////// Normals:
  84.                 float2 node_3470 = i.uv0;
  85.                 float4 node_1300 = tex2D(_CrackNormals,TRANSFORM_TEX(node_3470.rg, _CrackNormals));
  86.                 float3 node_2448 = saturate(( float3(0.5,0.5,1) > 0.5 ? (1.0-(1.0-2.0*(float3(0.5,0.5,1)-0.5))*(1.0-float3((node_1300.rgb*_EffectStrength).rg,0.0))) : (2.0*float3(0.5,0.5,1)*float3((node_1300.rgb*_EffectStrength).rg,0.0)) ));
  87.                 float3 normalLocal = node_2448;
  88.                 float3 normalDirection =  normalize(mul( normalLocal, tangentTransform )); // Perturbed normals
  89.                 float4 node_2517 = _Time + _TimeEditor;
  90.                 float node_3227 = node_2517.g;
  91.                 float3 node_2395 = (((((1.0 - pow(node_1300.b,100.0))*pow(lerp(lerp(tex2D(_glowtexture2,TRANSFORM_TEX(node_3470.rg, _glowtexture2)).rgb,tex2D(_glowtexture,TRANSFORM_TEX(node_3470.rg, _glowtexture)).rgb,sin(node_3227)),tex2D(_glowtexture3,TRANSFORM_TEX(node_3470.rg, _glowtexture3)).rgb,cos(node_3227)),6.0).b)*3.0)*_glowcolor.rgb)*_EffectStrength);
  92.                 float node_2996 = lerp( (sin(node_2517.g)*0.5+0.5), _EffectStrength, _slidercontrolsalpha );
  93.                 clip(saturate(((node_2395.r+node_2996)*node_2996)) - 0.5);
  94.                 float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  95.                 float3 halfDirection = normalize(viewDirection+lightDirection);
  96. ////// Lighting:
  97.                 float attenuation = LIGHT_ATTENUATION(i);
  98.                 float3 attenColor = attenuation * _LightColor0.xyz;
  99.                 float Pi = 3.141592654;
  100.                 float InvPi = 0.31830988618;
  101. /////// Diffuse:
  102.                 float NdotL = dot( normalDirection, lightDirection );
  103.                 float3 forwardLight = max(0.0, NdotL );
  104.                 float2 node_2914 = (i.uv0.rg+(float2(0.5,0.2)*node_2517.r));
  105.                 float2 node_2774 = (i.uv0.rg*2.0+-1.0);
  106.                 float2 node_2776 = (node_2774*node_2774).rg;
  107.                 float node_2628 = (pow(dot(node_2448,float3(0.3,0.59,0.11)),5.0)*0.7+0.0);
  108.                 float3 backLight = max(0.0, -NdotL ) * saturate(((((pow(tex2D(_crackglow,TRANSFORM_TEX(node_2914, _crackglow)).rgb,2.0)*(node_2776.r+node_2776.g))*float3(0.9779412,0.4917477,0.05033519))*(sin(node_2517.a)*0.5+0.5))+(node_2628*float3(1,0.6944218,0.03676468))));
  109.                 float3 diffuse = (forwardLight+backLight)*InvPi * attenColor + UNITY_LIGHTMODEL_AMBIENT.rgb;
  110. ////// Emissive:
  111.                 float3 emissive = saturate(node_2395);
  112. ///////// Gloss:
  113.                 float gloss = 0.5;
  114.                 float specPow = exp2( gloss * 10.0+1.0);
  115. ////// Specular:
  116.                 NdotL = max(0.0, NdotL);
  117.                 float3 specularColor = float3(node_2628,node_2628,node_2628);
  118.                 float specularMonochrome = dot(specularColor,float3(0.3,0.59,0.11));
  119.                 float normTerm = (specPow + 8.0 ) / (8.0 * Pi);
  120.                 float3 specular = (floor(attenuation) * _LightColor0.xyz) * pow(max(0,dot(halfDirection,normalDirection)),specPow) * specularColor*normTerm;
  121.                 float3 finalColor = 0;
  122.                 float3 diffuseLight = diffuse;
  123.                 diffuseLight *= 1-specularMonochrome;
  124.                 finalColor += diffuseLight * tex2D(_Diffuse,TRANSFORM_TEX(node_3470.rg, _Diffuse)).rgb;
  125.                 finalColor += specular;
  126.                 finalColor += emissive;
  127. /// Final Color:
  128.                 return fixed4(finalColor,1);
  129.             }
  130.             ENDCG
  131.         }
  132.         Pass {
  133.             Name "ForwardAdd"
  134.             Tags {
  135.                 "LightMode"="ForwardAdd"
  136.             }
  137.             Blend One One
  138.            
  139.            
  140.             Fog { Color (0,0,0,0) }
  141.             CGPROGRAM
  142.             #pragma vertex vert
  143.             #pragma fragment frag
  144.             #define UNITY_PASS_FORWARDADD
  145.             #include "UnityCG.cginc"
  146.             #include "AutoLight.cginc"
  147.             #pragma multi_compile_fwdadd_fullshadows
  148.             #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  149.             #pragma target 3.0
  150.             uniform float4 _LightColor0;
  151.             uniform float4 _TimeEditor;
  152.             uniform sampler2D _Diffuse; uniform float4 _Diffuse_ST;
  153.             uniform sampler2D _CrackNormals; uniform float4 _CrackNormals_ST;
  154.             uniform sampler2D _glowtexture; uniform float4 _glowtexture_ST;
  155.             uniform float4 _glowcolor;
  156.             uniform float _EffectStrength;
  157.             uniform sampler2D _crackglow; uniform float4 _crackglow_ST;
  158.             uniform fixed _slidercontrolsalpha;
  159.             uniform sampler2D _glowtexture2; uniform float4 _glowtexture2_ST;
  160.             uniform sampler2D _glowtexture3; uniform float4 _glowtexture3_ST;
  161.             struct VertexInput {
  162.                 float4 vertex : POSITION;
  163.                 float3 normal : NORMAL;
  164.                 float4 tangent : TANGENT;
  165.                 float2 texcoord0 : TEXCOORD0;
  166.             };
  167.             struct VertexOutput {
  168.                 float4 pos : SV_POSITION;
  169.                 float2 uv0 : TEXCOORD0;
  170.                 float4 posWorld : TEXCOORD1;
  171.                 float3 normalDir : TEXCOORD2;
  172.                 float3 tangentDir : TEXCOORD3;
  173.                 float3 binormalDir : TEXCOORD4;
  174.                 LIGHTING_COORDS(5,6)
  175.             };
  176.             VertexOutput vert (VertexInput v) {
  177.                 VertexOutput o;
  178.                 o.uv0 = v.texcoord0;
  179.                 o.normalDir = mul(float4(v.normal,0), _World2Object).xyz;
  180.                 o.tangentDir = normalize( mul( _Object2World, float4( v.tangent.xyz, 0.0 ) ).xyz );
  181.                 o.binormalDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w);
  182.                 o.posWorld = mul(_Object2World, v.vertex);
  183.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  184.                 TRANSFER_VERTEX_TO_FRAGMENT(o)
  185.                 return o;
  186.             }
  187.             fixed4 frag(VertexOutput i) : COLOR {
  188.                 i.normalDir = normalize(i.normalDir);
  189.                 float3x3 tangentTransform = float3x3( i.tangentDir, i.binormalDir, i.normalDir);
  190.                 float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  191. /////// Normals:
  192.                 float2 node_3471 = i.uv0;
  193.                 float4 node_1300 = tex2D(_CrackNormals,TRANSFORM_TEX(node_3471.rg, _CrackNormals));
  194.                 float3 node_2448 = saturate(( float3(0.5,0.5,1) > 0.5 ? (1.0-(1.0-2.0*(float3(0.5,0.5,1)-0.5))*(1.0-float3((node_1300.rgb*_EffectStrength).rg,0.0))) : (2.0*float3(0.5,0.5,1)*float3((node_1300.rgb*_EffectStrength).rg,0.0)) ));
  195.                 float3 normalLocal = node_2448;
  196.                 float3 normalDirection =  normalize(mul( normalLocal, tangentTransform )); // Perturbed normals
  197.                 float4 node_2517 = _Time + _TimeEditor;
  198.                 float node_3227 = node_2517.g;
  199.                 float3 node_2395 = (((((1.0 - pow(node_1300.b,100.0))*pow(lerp(lerp(tex2D(_glowtexture2,TRANSFORM_TEX(node_3471.rg, _glowtexture2)).rgb,tex2D(_glowtexture,TRANSFORM_TEX(node_3471.rg, _glowtexture)).rgb,sin(node_3227)),tex2D(_glowtexture3,TRANSFORM_TEX(node_3471.rg, _glowtexture3)).rgb,cos(node_3227)),6.0).b)*3.0)*_glowcolor.rgb)*_EffectStrength);
  200.                 float node_2996 = lerp( (sin(node_2517.g)*0.5+0.5), _EffectStrength, _slidercontrolsalpha );
  201.                 clip(saturate(((node_2395.r+node_2996)*node_2996)) - 0.5);
  202.                 float3 lightDirection = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.posWorld.xyz,_WorldSpaceLightPos0.w));
  203.                 float3 halfDirection = normalize(viewDirection+lightDirection);
  204. ////// Lighting:
  205.                 float attenuation = LIGHT_ATTENUATION(i);
  206.                 float3 attenColor = attenuation * _LightColor0.xyz;
  207.                 float Pi = 3.141592654;
  208.                 float InvPi = 0.31830988618;
  209. /////// Diffuse:
  210.                 float NdotL = dot( normalDirection, lightDirection );
  211.                 float3 forwardLight = max(0.0, NdotL );
  212.                 float2 node_2914 = (i.uv0.rg+(float2(0.5,0.2)*node_2517.r));
  213.                 float2 node_2774 = (i.uv0.rg*2.0+-1.0);
  214.                 float2 node_2776 = (node_2774*node_2774).rg;
  215.                 float node_2628 = (pow(dot(node_2448,float3(0.3,0.59,0.11)),5.0)*0.7+0.0);
  216.                 float3 backLight = max(0.0, -NdotL ) * saturate(((((pow(tex2D(_crackglow,TRANSFORM_TEX(node_2914, _crackglow)).rgb,2.0)*(node_2776.r+node_2776.g))*float3(0.9779412,0.4917477,0.05033519))*(sin(node_2517.a)*0.5+0.5))+(node_2628*float3(1,0.6944218,0.03676468))));
  217.                 float3 diffuse = (forwardLight+backLight)*InvPi * attenColor;
  218. ///////// Gloss:
  219.                 float gloss = 0.5;
  220.                 float specPow = exp2( gloss * 10.0+1.0);
  221. ////// Specular:
  222.                 NdotL = max(0.0, NdotL);
  223.                 float3 specularColor = float3(node_2628,node_2628,node_2628);
  224.                 float specularMonochrome = dot(specularColor,float3(0.3,0.59,0.11));
  225.                 float normTerm = (specPow + 8.0 ) / (8.0 * Pi);
  226.                 float3 specular = attenColor * pow(max(0,dot(halfDirection,normalDirection)),specPow) * specularColor*normTerm;
  227.                 float3 finalColor = 0;
  228.                 float3 diffuseLight = diffuse;
  229.                 diffuseLight *= 1-specularMonochrome;
  230.                 finalColor += diffuseLight * tex2D(_Diffuse,TRANSFORM_TEX(node_3471.rg, _Diffuse)).rgb;
  231.                 finalColor += specular;
  232. /// Final Color:
  233.                 return fixed4(finalColor * 1,0);
  234.             }
  235.             ENDCG
  236.         }
  237.         Pass {
  238.             Name "ShadowCollector"
  239.             Tags {
  240.                 "LightMode"="ShadowCollector"
  241.             }
  242.            
  243.             Fog {Mode Off}
  244.             CGPROGRAM
  245.             #pragma vertex vert
  246.             #pragma fragment frag
  247.             #define UNITY_PASS_SHADOWCOLLECTOR
  248.             #define SHADOW_COLLECTOR_PASS
  249.             #include "UnityCG.cginc"
  250.             #include "Lighting.cginc"
  251.             #pragma fragmentoption ARB_precision_hint_fastest
  252.             #pragma multi_compile_shadowcollector
  253.             #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  254.             #pragma target 3.0
  255.             uniform float4 _TimeEditor;
  256.             uniform sampler2D _CrackNormals; uniform float4 _CrackNormals_ST;
  257.             uniform sampler2D _glowtexture; uniform float4 _glowtexture_ST;
  258.             uniform float4 _glowcolor;
  259.             uniform float _EffectStrength;
  260.             uniform fixed _slidercontrolsalpha;
  261.             uniform sampler2D _glowtexture2; uniform float4 _glowtexture2_ST;
  262.             uniform sampler2D _glowtexture3; uniform float4 _glowtexture3_ST;
  263.             struct VertexInput {
  264.                 float4 vertex : POSITION;
  265.                 float2 texcoord0 : TEXCOORD0;
  266.             };
  267.             struct VertexOutput {
  268.                 V2F_SHADOW_COLLECTOR;
  269.                 float2 uv0 : TEXCOORD5;
  270.             };
  271.             VertexOutput vert (VertexInput v) {
  272.                 VertexOutput o;
  273.                 o.uv0 = v.texcoord0;
  274.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  275.                 TRANSFER_SHADOW_COLLECTOR(o)
  276.                 return o;
  277.             }
  278.             fixed4 frag(VertexOutput i) : COLOR {
  279.                 float2 node_3472 = i.uv0;
  280.                 float4 node_1300 = tex2D(_CrackNormals,TRANSFORM_TEX(node_3472.rg, _CrackNormals));
  281.                 float4 node_2517 = _Time + _TimeEditor;
  282.                 float node_3227 = node_2517.g;
  283.                 float3 node_2395 = (((((1.0 - pow(node_1300.b,100.0))*pow(lerp(lerp(tex2D(_glowtexture2,TRANSFORM_TEX(node_3472.rg, _glowtexture2)).rgb,tex2D(_glowtexture,TRANSFORM_TEX(node_3472.rg, _glowtexture)).rgb,sin(node_3227)),tex2D(_glowtexture3,TRANSFORM_TEX(node_3472.rg, _glowtexture3)).rgb,cos(node_3227)),6.0).b)*3.0)*_glowcolor.rgb)*_EffectStrength);
  284.                 float node_2996 = lerp( (sin(node_2517.g)*0.5+0.5), _EffectStrength, _slidercontrolsalpha );
  285.                 clip(saturate(((node_2395.r+node_2996)*node_2996)) - 0.5);
  286.                 SHADOW_COLLECTOR_FRAGMENT(i)
  287.             }
  288.             ENDCG
  289.         }
  290.         Pass {
  291.             Name "ShadowCaster"
  292.             Tags {
  293.                 "LightMode"="ShadowCaster"
  294.             }
  295.             Cull Off
  296.             Offset 1, 1
  297.            
  298.             Fog {Mode Off}
  299.             CGPROGRAM
  300.             #pragma vertex vert
  301.             #pragma fragment frag
  302.             #define UNITY_PASS_SHADOWCASTER
  303.             #include "UnityCG.cginc"
  304.             #include "Lighting.cginc"
  305.             #pragma fragmentoption ARB_precision_hint_fastest
  306.             #pragma multi_compile_shadowcaster
  307.             #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  308.             #pragma target 3.0
  309.             uniform float4 _TimeEditor;
  310.             uniform sampler2D _CrackNormals; uniform float4 _CrackNormals_ST;
  311.             uniform sampler2D _glowtexture; uniform float4 _glowtexture_ST;
  312.             uniform float4 _glowcolor;
  313.             uniform float _EffectStrength;
  314.             uniform fixed _slidercontrolsalpha;
  315.             uniform sampler2D _glowtexture2; uniform float4 _glowtexture2_ST;
  316.             uniform sampler2D _glowtexture3; uniform float4 _glowtexture3_ST;
  317.             struct VertexInput {
  318.                 float4 vertex : POSITION;
  319.                 float2 texcoord0 : TEXCOORD0;
  320.             };
  321.             struct VertexOutput {
  322.                 V2F_SHADOW_CASTER;
  323.                 float2 uv0 : TEXCOORD1;
  324.             };
  325.             VertexOutput vert (VertexInput v) {
  326.                 VertexOutput o;
  327.                 o.uv0 = v.texcoord0;
  328.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  329.                 TRANSFER_SHADOW_CASTER(o)
  330.                 return o;
  331.             }
  332.             fixed4 frag(VertexOutput i) : COLOR {
  333.                 float2 node_3473 = i.uv0;
  334.                 float4 node_1300 = tex2D(_CrackNormals,TRANSFORM_TEX(node_3473.rg, _CrackNormals));
  335.                 float4 node_2517 = _Time + _TimeEditor;
  336.                 float node_3227 = node_2517.g;
  337.                 float3 node_2395 = (((((1.0 - pow(node_1300.b,100.0))*pow(lerp(lerp(tex2D(_glowtexture2,TRANSFORM_TEX(node_3473.rg, _glowtexture2)).rgb,tex2D(_glowtexture,TRANSFORM_TEX(node_3473.rg, _glowtexture)).rgb,sin(node_3227)),tex2D(_glowtexture3,TRANSFORM_TEX(node_3473.rg, _glowtexture3)).rgb,cos(node_3227)),6.0).b)*3.0)*_glowcolor.rgb)*_EffectStrength);
  338.                 float node_2996 = lerp( (sin(node_2517.g)*0.5+0.5), _EffectStrength, _slidercontrolsalpha );
  339.                 clip(saturate(((node_2395.r+node_2996)*node_2996)) - 0.5);
  340.                 SHADOW_CASTER_FRAGMENT(i)
  341.             }
  342.             ENDCG
  343.         }
  344.     }
  345.     FallBack "Diffuse"
  346.     CustomEditor "ShaderForgeMaterialInspector"
  347. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement