Edwarddv

lit particles

Feb 29th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.25 KB | None | 0 0
  1. // Shader created with Shader Forge v1.26
  2. // Shader Forge (c) Neat Corporation / 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: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:7,dpts:2,wrdp:False,dith:0,rfrpo:True,rfrpn:Refraction,coma:15,ufog:True,aust:True,igpj:True,qofs:0,qpre:3,rntp:2,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:1861,x:34176,y:32659,varname:node_1861,prsc:2|diff-1304-OUT,lwrap-8380-OUT,alpha-4795-OUT;n:type:ShaderForge.SFN_Tex2d,id:7714,x:32036,y:32784,varname:node_7714,prsc:2,ntxv:0,isnm:False|UVIN-75-UVOUT,TEX-2614-TEX;n:type:ShaderForge.SFN_Tex2dAsset,id:2614,x:31760,y:32928,ptovrint:False,ptlb:Opacity Texture,ptin:_OpacityTexture,varname:node_2614,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Tex2d,id:6422,x:32123,y:33214,varname:node_6422,prsc:2,ntxv:0,isnm:False|UVIN-8696-UVOUT,TEX-2614-TEX;n:type:ShaderForge.SFN_Multiply,id:821,x:32405,y:33052,varname:node_821,prsc:2|A-7714-R,B-6422-R,C-4471-OUT;n:type:ShaderForge.SFN_Vector1,id:4471,x:32216,y:33102,varname:node_4471,prsc:2,v1:2;n:type:ShaderForge.SFN_Panner,id:75,x:31622,y:32775,varname:node_75,prsc:2,spu:0,spv:1|UVIN-9159-OUT,DIST-4341-OUT;n:type:ShaderForge.SFN_Time,id:8632,x:30855,y:33089,varname:node_8632,prsc:2;n:type:ShaderForge.SFN_ValueProperty,id:1409,x:31191,y:33033,ptovrint:False,ptlb:Speed Layer 1,ptin:_SpeedLayer1,varname:node_1409,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.2;n:type:ShaderForge.SFN_Multiply,id:4341,x:31540,y:33111,varname:node_4341,prsc:2|A-8632-T,B-1409-OUT,C-6741-R;n:type:ShaderForge.SFN_TexCoord,id:6231,x:31078,y:32799,varname:node_6231,prsc:2,uv:0;n:type:ShaderForge.SFN_Panner,id:8696,x:31859,y:33347,varname:node_8696,prsc:2,spu:0,spv:1|UVIN-4276-OUT,DIST-880-OUT;n:type:ShaderForge.SFN_Multiply,id:880,x:31440,y:33375,varname:node_880,prsc:2|A-8632-T,B-2349-OUT,C-6741-R;n:type:ShaderForge.SFN_ValueProperty,id:2349,x:31197,y:33392,ptovrint:False,ptlb:Speed Layer 2,ptin:_SpeedLayer2,varname:node_2349,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.2;n:type:ShaderForge.SFN_Tex2d,id:4281,x:32723,y:33283,ptovrint:False,ptlb:Mask,ptin:_Mask,varname:node_4281,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False;n:type:ShaderForge.SFN_Multiply,id:4292,x:31368,y:32665,varname:node_4292,prsc:2|A-6231-UVOUT,B-4392-OUT;n:type:ShaderForge.SFN_ValueProperty,id:4392,x:31051,y:32676,ptovrint:False,ptlb:UV Scale Layer 1,ptin:_UVScaleLayer1,varname:node_4392,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_ValueProperty,id:1034,x:31387,y:33850,ptovrint:False,ptlb:UV Scale Layer 2,ptin:_UVScaleLayer2,varname:node_1034,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.5;n:type:ShaderForge.SFN_Multiply,id:3911,x:31632,y:33438,varname:node_3911,prsc:2|A-6231-UVOUT,B-1034-OUT;n:type:ShaderForge.SFN_VertexColor,id:6741,x:30998,y:33592,varname:node_6741,prsc:2;n:type:ShaderForge.SFN_Tex2d,id:6749,x:32410,y:33915,varname:node_6749,prsc:2,ntxv:0,isnm:False|UVIN-5734-UVOUT,TEX-2614-TEX;n:type:ShaderForge.SFN_Panner,id:5734,x:32120,y:34067,varname:node_5734,prsc:2,spu:0,spv:1|UVIN-6964-OUT,DIST-7197-OUT;n:type:ShaderForge.SFN_ValueProperty,id:5121,x:31336,y:34105,ptovrint:False,ptlb:Speed Layer 3,ptin:_SpeedLayer3,varname:node_5121,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.2;n:type:ShaderForge.SFN_Multiply,id:7197,x:31890,y:34100,varname:node_7197,prsc:2|A-8632-T,B-5121-OUT,C-6741-R;n:type:ShaderForge.SFN_Multiply,id:6438,x:32037,y:34307,varname:node_6438,prsc:2|A-6231-UVOUT,B-4304-OUT;n:type:ShaderForge.SFN_ValueProperty,id:4304,x:31670,y:34341,ptovrint:False,ptlb:UV Scale Layer 3,ptin:_UVScaleLayer3,varname:node_4304,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:2;n:type:ShaderForge.SFN_Multiply,id:3434,x:32990,y:33143,varname:node_3434,prsc:2|A-8249-OUT,B-6741-A,C-4281-R,D-1135-OUT;n:type:ShaderForge.SFN_Multiply,id:8249,x:32738,y:33087,varname:node_8249,prsc:2|A-821-OUT,B-6749-R,C-6379-OUT;n:type:ShaderForge.SFN_Vector1,id:6379,x:32392,y:33521,varname:node_6379,prsc:2,v1:3;n:type:ShaderForge.SFN_Add,id:9159,x:31601,y:32533,varname:node_9159,prsc:2|A-6741-R,B-4292-OUT;n:type:ShaderForge.SFN_Add,id:6964,x:32331,y:34282,varname:node_6964,prsc:2|A-6741-R,B-6438-OUT;n:type:ShaderForge.SFN_Add,id:4276,x:31865,y:33547,varname:node_4276,prsc:2|A-6741-R,B-3911-OUT;n:type:ShaderForge.SFN_ValueProperty,id:1135,x:33177,y:33562,ptovrint:False,ptlb:Opacity Multiplier,ptin:_OpacityMultiplier,varname:node_1135,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_Power,id:1253,x:33189,y:33168,varname:node_1253,prsc:2|VAL-3434-OUT,EXP-5270-OUT;n:type:ShaderForge.SFN_Slider,id:5270,x:32898,y:33507,ptovrint:False,ptlb:Opacity Power,ptin:_OpacityPower,varname:node_5270,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:0,cur:1,max:2;n:type:ShaderForge.SFN_Multiply,id:4795,x:33233,y:32983,varname:node_4795,prsc:2|A-1253-OUT,B-4281-B,C-6741-A;n:type:ShaderForge.SFN_Color,id:5439,x:33358,y:32511,ptovrint:False,ptlb:BaseColour,ptin:_BaseColour,varname:node_5439,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0.5,c2:0.5,c3:0.5,c4:1;n:type:ShaderForge.SFN_Multiply,id:1304,x:33953,y:32662,varname:node_1304,prsc:2|A-6075-OUT,B-4795-OUT;n:type:ShaderForge.SFN_LightAttenuation,id:3136,x:33567,y:33188,varname:node_3136,prsc:2;n:type:ShaderForge.SFN_LightColor,id:2345,x:33193,y:32693,varname:node_2345,prsc:2;n:type:ShaderForge.SFN_ValueProperty,id:8380,x:33954,y:33297,ptovrint:False,ptlb:Light Wrapping,ptin:_LightWrapping,varname:node_8380,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0;n:type:ShaderForge.SFN_Add,id:6075,x:33775,y:32662,varname:node_6075,prsc:2|A-5439-RGB,B-9789-OUT;n:type:ShaderForge.SFN_Multiply,id:9789,x:33477,y:32765,varname:node_9789,prsc:2|A-2345-RGB,B-3136-OUT;proporder:2614-4281-1409-4392-2349-1034-5121-4304-1135-5270-5439-8380;pass:END;sub:END;*/
  5.  
  6. Shader "Custom/ParticleMaskedOverlayDiffuseLit" {
  7. Properties {
  8. _OpacityTexture ("Opacity Texture", 2D) = "white" {}
  9. _Mask ("Mask", 2D) = "white" {}
  10. _SpeedLayer1 ("Speed Layer 1", Float ) = 0.2
  11. _UVScaleLayer1 ("UV Scale Layer 1", Float ) = 1
  12. _SpeedLayer2 ("Speed Layer 2", Float ) = 0.2
  13. _UVScaleLayer2 ("UV Scale Layer 2", Float ) = 0.5
  14. _SpeedLayer3 ("Speed Layer 3", Float ) = 0.2
  15. _UVScaleLayer3 ("UV Scale Layer 3", Float ) = 2
  16. _OpacityMultiplier ("Opacity Multiplier", Float ) = 1
  17. _OpacityPower ("Opacity Power", Range(0, 2)) = 1
  18. _BaseColour ("BaseColour", Color) = (0.5,0.5,0.5,1)
  19. _LightWrapping ("Light Wrapping", Float ) = 0
  20. [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
  21. }
  22. SubShader {
  23. Tags {
  24. "IgnoreProjector"="True"
  25. "Queue"="Transparent"
  26. "RenderType"="Transparent"
  27. }
  28. LOD 200
  29. Pass {
  30. Name "FORWARD"
  31. Tags {
  32. "LightMode"="ForwardBase"
  33. }
  34. Blend One OneMinusSrcAlpha
  35. ZWrite Off
  36.  
  37. CGPROGRAM
  38. #pragma vertex vert
  39. #pragma fragment frag
  40. #define UNITY_PASS_FORWARDBASE
  41. #include "UnityCG.cginc"
  42. #include "Lighting.cginc"
  43. #pragma multi_compile_fwdbase
  44. #pragma multi_compile_fog
  45. #pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
  46. #pragma target 3.0
  47. uniform float4 _TimeEditor;
  48. uniform sampler2D _OpacityTexture; uniform float4 _OpacityTexture_ST;
  49. uniform float _SpeedLayer1;
  50. uniform float _SpeedLayer2;
  51. uniform sampler2D _Mask; uniform float4 _Mask_ST;
  52. uniform float _UVScaleLayer1;
  53. uniform float _UVScaleLayer2;
  54. uniform float _SpeedLayer3;
  55. uniform float _UVScaleLayer3;
  56. uniform float _OpacityMultiplier;
  57. uniform float _OpacityPower;
  58. uniform float4 _BaseColour;
  59. uniform float _LightWrapping;
  60. struct VertexInput {
  61. float4 vertex : POSITION;
  62. float3 normal : NORMAL;
  63. float2 texcoord0 : TEXCOORD0;
  64. float4 vertexColor : COLOR;
  65. };
  66. struct VertexOutput {
  67. float4 pos : SV_POSITION;
  68. float2 uv0 : TEXCOORD0;
  69. float4 posWorld : TEXCOORD1;
  70. float3 normalDir : TEXCOORD2;
  71. float4 vertexColor : COLOR;
  72. UNITY_FOG_COORDS(3)
  73. };
  74. VertexOutput vert (VertexInput v) {
  75. VertexOutput o = (VertexOutput)0;
  76. o.uv0 = v.texcoord0;
  77. o.vertexColor = v.vertexColor;
  78. o.normalDir = UnityObjectToWorldNormal(v.normal);
  79. o.posWorld = mul(_Object2World, v.vertex);
  80. float3 lightColor = _LightColor0.rgb;
  81. o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
  82. UNITY_TRANSFER_FOG(o,o.pos);
  83. return o;
  84. }
  85. float4 frag(VertexOutput i) : COLOR {
  86. i.normalDir = normalize(i.normalDir);
  87. float3 normalDirection = i.normalDir;
  88. float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  89. float3 lightColor = _LightColor0.rgb;
  90. ////// Lighting:
  91. float attenuation = 1;
  92. float3 attenColor = attenuation * _LightColor0.xyz;
  93. /////// Diffuse:
  94. float NdotL = dot( normalDirection, lightDirection );
  95. float3 w = float3(_LightWrapping,_LightWrapping,_LightWrapping)*0.5; // Light wrapping
  96. float3 NdotLWrap = NdotL * ( 1.0 - w );
  97. float3 forwardLight = max(float3(0.0,0.0,0.0), NdotLWrap + w );
  98. NdotL = max(0.0,dot( normalDirection, lightDirection ));
  99. float3 directDiffuse = forwardLight * attenColor;
  100. float3 indirectDiffuse = float3(0,0,0);
  101. indirectDiffuse += UNITY_LIGHTMODEL_AMBIENT.rgb; // Ambient Light
  102. float4 node_8632 = _Time + _TimeEditor;
  103. float2 node_75 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer1))+(node_8632.g*_SpeedLayer1*i.vertexColor.r)*float2(0,1));
  104. float4 node_7714 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_75, _OpacityTexture));
  105. float2 node_8696 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer2))+(node_8632.g*_SpeedLayer2*i.vertexColor.r)*float2(0,1));
  106. float4 node_6422 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_8696, _OpacityTexture));
  107. float2 node_5734 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer3))+(node_8632.g*_SpeedLayer3*i.vertexColor.r)*float2(0,1));
  108. float4 node_6749 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_5734, _OpacityTexture));
  109. float4 _Mask_var = tex2D(_Mask,TRANSFORM_TEX(i.uv0, _Mask));
  110. float node_4795 = (pow((((node_7714.r*node_6422.r*2.0)*node_6749.r*3.0)*i.vertexColor.a*_Mask_var.r*_OpacityMultiplier),_OpacityPower)*_Mask_var.b*i.vertexColor.a);
  111. float3 node_1304 = ((_BaseColour.rgb+(_LightColor0.rgb*attenuation))*node_4795);
  112. float3 diffuseColor = node_1304;
  113. float3 diffuse = (directDiffuse + indirectDiffuse) * diffuseColor;
  114. /// Final Color:
  115. float3 finalColor = diffuse;
  116. fixed4 finalRGBA = fixed4(finalColor,node_4795);
  117. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  118. return finalRGBA;
  119. }
  120. ENDCG
  121. }
  122. Pass {
  123. Name "FORWARD_DELTA"
  124. Tags {
  125. "LightMode"="ForwardAdd"
  126. }
  127. Blend One One
  128. ZWrite Off
  129.  
  130. CGPROGRAM
  131. #pragma vertex vert
  132. #pragma fragment frag
  133. #define UNITY_PASS_FORWARDADD
  134. #include "UnityCG.cginc"
  135. #include "AutoLight.cginc"
  136. #include "Lighting.cginc"
  137. #pragma multi_compile_fwdadd
  138. #pragma multi_compile_fog
  139. #pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
  140. #pragma target 3.0
  141. uniform float4 _TimeEditor;
  142. uniform sampler2D _OpacityTexture; uniform float4 _OpacityTexture_ST;
  143. uniform float _SpeedLayer1;
  144. uniform float _SpeedLayer2;
  145. uniform sampler2D _Mask; uniform float4 _Mask_ST;
  146. uniform float _UVScaleLayer1;
  147. uniform float _UVScaleLayer2;
  148. uniform float _SpeedLayer3;
  149. uniform float _UVScaleLayer3;
  150. uniform float _OpacityMultiplier;
  151. uniform float _OpacityPower;
  152. uniform float4 _BaseColour;
  153. uniform float _LightWrapping;
  154. struct VertexInput {
  155. float4 vertex : POSITION;
  156. float3 normal : NORMAL;
  157. float2 texcoord0 : TEXCOORD0;
  158. float4 vertexColor : COLOR;
  159. };
  160. struct VertexOutput {
  161. float4 pos : SV_POSITION;
  162. float2 uv0 : TEXCOORD0;
  163. float4 posWorld : TEXCOORD1;
  164. float3 normalDir : TEXCOORD2;
  165. float4 vertexColor : COLOR;
  166. LIGHTING_COORDS(3,4)
  167. UNITY_FOG_COORDS(5)
  168. };
  169. VertexOutput vert (VertexInput v) {
  170. VertexOutput o = (VertexOutput)0;
  171. o.uv0 = v.texcoord0;
  172. o.vertexColor = v.vertexColor;
  173. o.normalDir = UnityObjectToWorldNormal(v.normal);
  174. o.posWorld = mul(_Object2World, v.vertex);
  175. float3 lightColor = _LightColor0.rgb;
  176. o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
  177. UNITY_TRANSFER_FOG(o,o.pos);
  178. TRANSFER_VERTEX_TO_FRAGMENT(o)
  179. return o;
  180. }
  181. float4 frag(VertexOutput i) : COLOR {
  182. i.normalDir = normalize(i.normalDir);
  183. float3 normalDirection = i.normalDir;
  184. float3 lightDirection = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.posWorld.xyz,_WorldSpaceLightPos0.w));
  185. float3 lightColor = _LightColor0.rgb;
  186. ////// Lighting:
  187. float attenuation = LIGHT_ATTENUATION(i);
  188. float3 attenColor = attenuation * _LightColor0.xyz;
  189. /////// Diffuse:
  190. float NdotL = dot( normalDirection, lightDirection );
  191. float3 w = float3(_LightWrapping,_LightWrapping,_LightWrapping)*0.5; // Light wrapping
  192. float3 NdotLWrap = NdotL * ( 1.0 - w );
  193. float3 forwardLight = max(float3(0.0,0.0,0.0), NdotLWrap + w );
  194. NdotL = max(0.0,dot( normalDirection, lightDirection ));
  195. float3 directDiffuse = forwardLight * attenColor;
  196. float4 node_8632 = _Time + _TimeEditor;
  197. float2 node_75 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer1))+(node_8632.g*_SpeedLayer1*i.vertexColor.r)*float2(0,1));
  198. float4 node_7714 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_75, _OpacityTexture));
  199. float2 node_8696 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer2))+(node_8632.g*_SpeedLayer2*i.vertexColor.r)*float2(0,1));
  200. float4 node_6422 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_8696, _OpacityTexture));
  201. float2 node_5734 = ((i.vertexColor.r+(i.uv0*_UVScaleLayer3))+(node_8632.g*_SpeedLayer3*i.vertexColor.r)*float2(0,1));
  202. float4 node_6749 = tex2D(_OpacityTexture,TRANSFORM_TEX(node_5734, _OpacityTexture));
  203. float4 _Mask_var = tex2D(_Mask,TRANSFORM_TEX(i.uv0, _Mask));
  204. float node_4795 = (pow((((node_7714.r*node_6422.r*2.0)*node_6749.r*3.0)*i.vertexColor.a*_Mask_var.r*_OpacityMultiplier),_OpacityPower)*_Mask_var.b*i.vertexColor.a);
  205. float3 node_1304 = ((_BaseColour.rgb+(_LightColor0.rgb*attenuation))*node_4795);
  206. float3 diffuseColor = node_1304;
  207. float3 diffuse = directDiffuse * diffuseColor;
  208. /// Final Color:
  209. float3 finalColor = diffuse;
  210. fixed4 finalRGBA = fixed4(finalColor * node_4795,0);
  211. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  212. return finalRGBA;
  213. }
  214. ENDCG
  215. }
  216. }
  217. FallBack "Diffuse"
  218. CustomEditor "ShaderForgeMaterialInspector"
  219. }
Advertisement
Add Comment
Please, Sign In to add comment