WATER.shader 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. // Shader created with Shader Forge v1.36
  3. // Shader Forge (c) Neat Corporation / Joachim Holmer - http://www.acegikmo.com/shaderforge/
  4. // Note: Manually altering this data may prevent you from opening it in Shader Forge
  5. /*SF_DATA;ver:1.36;sub:START;pass:START;ps:flbk:,iptp:0,cusa:False,bamd:0,cgin:,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,imps:True,rpth:0,vtps:0,hqsc:True,nrmq:0,nrsp:0,vomd:0,spxs:False,tesm:0,olmd:1,culm:0,bsrc:3,bdst:7,dpts:2,wrdp:False,dith:0,atcv:False,rfrpo:True,rfrpn:Refraction,coma:15,ufog:True,aust:False,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,fsmp:False;n:type:ShaderForge.SFN_Final,id:4013,x:35075,y:32860,varname:node_4013,prsc:2|diff-4747-OUT,spec-8257-OUT,gloss-7570-OUT,emission-1332-OUT,alpha-1921-OUT,refract-9646-OUT;n:type:ShaderForge.SFN_Tex2d,id:828,x:32470,y:32123,ptovrint:False,ptlb:base_1,ptin:_base_1,varname:_base_1,prsc:0,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False|UVIN-1405-UVOUT;n:type:ShaderForge.SFN_Tex2d,id:3453,x:30909,y:32875,ptovrint:False,ptlb:Normal_1,ptin:_Normal_1,varname:_Normal_1,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:2,isnm:False|UVIN-1405-UVOUT;n:type:ShaderForge.SFN_Multiply,id:3812,x:32748,y:32215,varname:node_3812,prsc:2|A-828-RGB,B-2423-RGB;n:type:ShaderForge.SFN_Tex2d,id:2423,x:32470,y:32363,ptovrint:False,ptlb:base_2,ptin:_base_2,varname:_base_2,prsc:0,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:0,isnm:False|UVIN-6402-UVOUT;n:type:ShaderForge.SFN_Panner,id:1405,x:30299,y:32686,varname:node_1405,prsc:1,spu:1,spv:1|UVIN-5798-UVOUT,DIST-8538-OUT;n:type:ShaderForge.SFN_Panner,id:6402,x:30290,y:33341,varname:node_6402,prsc:1,spu:1,spv:1|UVIN-2661-UVOUT,DIST-4142-OUT;n:type:ShaderForge.SFN_TexCoord,id:5798,x:30009,y:32541,varname:node_5798,prsc:2,uv:0,uaff:False;n:type:ShaderForge.SFN_Multiply,id:3902,x:31177,y:33003,varname:node_3902,prsc:1|A-3453-RGB,B-7633-RGB;n:type:ShaderForge.SFN_Tex2d,id:7633,x:30909,y:33128,ptovrint:False,ptlb:Normal_2,ptin:_Normal_2,varname:_Normal_2,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,ntxv:2,isnm:False|UVIN-6402-UVOUT;n:type:ShaderForge.SFN_Multiply,id:504,x:32499,y:33827,varname:node_504,prsc:2|A-6953-OUT,B-8249-OUT;n:type:ShaderForge.SFN_ComponentMask,id:6953,x:31840,y:33616,varname:node_6953,prsc:2,cc1:0,cc2:1,cc3:-1,cc4:-1|IN-3902-OUT;n:type:ShaderForge.SFN_Multiply,id:8249,x:31965,y:33872,varname:node_8249,prsc:2|A-9562-OUT,B-3347-OUT;n:type:ShaderForge.SFN_Multiply,id:1332,x:33031,y:32299,varname:node_1332,prsc:2|A-3812-OUT,B-4448-OUT;n:type:ShaderForge.SFN_Multiply,id:8257,x:34496,y:31974,varname:node_8257,prsc:2|A-6870-OUT,B-1120-RGB,C-9646-OUT;n:type:ShaderForge.SFN_Tex2d,id:6630,x:32356,y:33375,ptovrint:False,ptlb:Aplha,ptin:_Aplha,cmnt:uv2,varname:_Aplha,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,tex:5eda1afd02b1bc34a885be98fe98cc8f,ntxv:0,isnm:False|UVIN-3206-UVOUT;n:type:ShaderForge.SFN_Multiply,id:877,x:32553,y:33392,varname:node_877,prsc:1|A-6630-R,B-6630-B;n:type:ShaderForge.SFN_Multiply,id:6656,x:32877,y:33159,varname:node_6656,prsc:2|A-2011-OUT,B-877-OUT;n:type:ShaderForge.SFN_TexCoord,id:3206,x:32127,y:33375,varname:node_3206,prsc:2,uv:2,uaff:False;n:type:ShaderForge.SFN_Time,id:3801,x:29806,y:32773,varname:time_1,prsc:1;n:type:ShaderForge.SFN_ComponentMask,id:825,x:29806,y:32589,varname:node_825,prsc:2,cc1:0,cc2:1,cc3:-1,cc4:-1|IN-9924-XYZ;n:type:ShaderForge.SFN_Multiply,id:8538,x:30009,y:32752,varname:node_8538,prsc:2|A-825-OUT,B-3801-TSL;n:type:ShaderForge.SFN_Vector4Property,id:9924,x:29602,y:32589,ptovrint:False,ptlb:Panner_01,ptin:_Panner_01,varname:_Panner_01,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1,v2:1,v3:0,v4:0;n:type:ShaderForge.SFN_Multiply,id:4142,x:30049,y:33444,varname:node_4142,prsc:2|A-1078-OUT,B-4164-TSL;n:type:ShaderForge.SFN_ComponentMask,id:1078,x:29854,y:33245,varname:node_1078,prsc:2,cc1:0,cc2:1,cc3:-1,cc4:-1|IN-8471-XYZ;n:type:ShaderForge.SFN_Vector4Property,id:8471,x:29654,y:33245,ptovrint:False,ptlb:Panner_02,ptin:_Panner_02,varname:_Panner_02,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1,v2:1,v3:0,v4:0;n:type:ShaderForge.SFN_Time,id:4164,x:29854,y:33469,varname:time,prsc:1;n:type:ShaderForge.SFN_TexCoord,id:2661,x:30049,y:33245,varname:node_2661,prsc:2,uv:0,uaff:False;n:type:ShaderForge.SFN_ValueProperty,id:4448,x:32774,y:32524,ptovrint:False,ptlb:Emission,ptin:_Emission,varname:_Emission,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0;n:type:ShaderForge.SFN_Color,id:4182,x:33537,y:32482,ptovrint:False,ptlb:Color_02,ptin:_Color_02,varname:_Color_02,prsc:1,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_ValueProperty,id:6870,x:34283,y:31907,ptovrint:False,ptlb:Specular,ptin:_Specular,varname:_Specular,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_Color,id:1120,x:34075,y:32002,ptovrint:False,ptlb:Specular_Color,ptin:_Specular_Color,varname:_Specular_Color,prsc:1,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_ValueProperty,id:2011,x:32484,y:33207,ptovrint:False,ptlb:Opacity,ptin:_Opacity,varname:_Opacity,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0.5;n:type:ShaderForge.SFN_Slider,id:3347,x:31536,y:34040,ptovrint:False,ptlb:Refraction Intensity,ptin:_RefractionIntensity,varname:_RefractionIntensity,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,min:0,cur:0,max:1;n:type:ShaderForge.SFN_Vector1,id:9562,x:31665,y:33886,varname:node_9562,prsc:2,v1:0.2;n:type:ShaderForge.SFN_Lerp,id:5234,x:33115,y:33807,varname:node_5234,prsc:2|A-4198-OUT,B-504-OUT,T-877-OUT;n:type:ShaderForge.SFN_ComponentMask,id:4198,x:32584,y:33669,varname:node_4198,prsc:2,cc1:0,cc2:-1,cc3:-1,cc4:-1|IN-4884-OUT;n:type:ShaderForge.SFN_Vector3,id:4884,x:32356,y:33638,varname:node_4884,prsc:1,v1:0,v2:0,v3:1;n:type:ShaderForge.SFN_VertexColor,id:5849,x:32772,y:32990,varname:node_5849,prsc:2;n:type:ShaderForge.SFN_Multiply,id:1921,x:33258,y:32920,varname:node_1921,prsc:2|A-5849-R,B-6656-OUT;n:type:ShaderForge.SFN_Multiply,id:9646,x:33448,y:33547,varname:node_9646,prsc:1|A-5849-R,B-5234-OUT;n:type:ShaderForge.SFN_Add,id:5264,x:34236,y:32466,varname:node_5264,prsc:2|A-1332-OUT,B-4747-OUT;n:type:ShaderForge.SFN_Multiply,id:4747,x:33866,y:32721,varname:node_4747,prsc:2|A-4182-RGB,B-5848-OUT;n:type:ShaderForge.SFN_ValueProperty,id:5848,x:33549,y:32787,ptovrint:False,ptlb:Color_Power,ptin:_Color_Power,varname:_Color_Power,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;n:type:ShaderForge.SFN_ValueProperty,id:7570,x:34606,y:32886,ptovrint:False,ptlb:Gloss,ptin:_Gloss,varname:_Gloss,prsc:1,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:1;proporder:828-2423-3453-7633-6630-9924-8471-4448-4182-6870-1120-2011-3347-5848-7570;pass:END;sub:END;*/
  6. Shader "Shader Forge/water" {
  7. Properties {
  8. _base_1 ("base_1", 2D) = "white" {}
  9. _base_2 ("base_2", 2D) = "white" {}
  10. _Normal_1 ("Normal_1", 2D) = "black" {}
  11. _Normal_2 ("Normal_2", 2D) = "black" {}
  12. _Aplha ("Aplha", 2D) = "white" {}
  13. _Panner_01 ("Panner_01", Vector) = (1,1,0,0)
  14. _Panner_02 ("Panner_02", Vector) = (1,1,0,0)
  15. _Emission ("Emission", Float ) = 0
  16. _Color_02 ("Color_02", Color) = (0.5,0.5,0.5,1)
  17. _Specular ("Specular", Float ) = 1
  18. _Specular_Color ("Specular_Color", Color) = (0.5,0.5,0.5,1)
  19. _Opacity ("Opacity", Float ) = 0.5
  20. _RefractionIntensity ("Refraction Intensity", Range(0, 1)) = 0
  21. _Color_Power ("Color_Power", Float ) = 1
  22. _Gloss ("Gloss", Float ) = 1
  23. [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
  24. }
  25. SubShader {
  26. Tags {
  27. "IgnoreProjector"="True"
  28. "Queue"="Transparent"
  29. "RenderType"="Transparent"
  30. }
  31. GrabPass{ }
  32. Pass {
  33. Name "FORWARD"
  34. Tags {
  35. "LightMode"="ForwardBase"
  36. }
  37. Blend SrcAlpha OneMinusSrcAlpha
  38. ZWrite Off
  39. CGPROGRAM
  40. #pragma vertex vert
  41. #pragma fragment frag
  42. #define UNITY_PASS_FORWARDBASE
  43. #include "UnityCG.cginc"
  44. #pragma multi_compile_fwdbase
  45. #pragma multi_compile_fog
  46. #pragma only_renderers d3d9 d3d11 glcore gles gles3 metal d3d11_9x
  47. #pragma target 3.0
  48. uniform float4 _LightColor0;
  49. uniform sampler2D _GrabTexture;
  50. uniform float4 _TimeEditor;
  51. uniform sampler2D _base_1; uniform float4 _base_1_ST;
  52. uniform sampler2D _Normal_1; uniform float4 _Normal_1_ST;
  53. uniform sampler2D _base_2; uniform float4 _base_2_ST;
  54. uniform sampler2D _Normal_2; uniform float4 _Normal_2_ST;
  55. uniform sampler2D _Aplha; uniform float4 _Aplha_ST;
  56. uniform half4 _Panner_01;
  57. uniform half4 _Panner_02;
  58. uniform half _Emission;
  59. uniform half4 _Color_02;
  60. uniform half _Specular;
  61. uniform half4 _Specular_Color;
  62. uniform half _Opacity;
  63. uniform half _RefractionIntensity;
  64. uniform half _Color_Power;
  65. uniform half _Gloss;
  66. struct VertexInput {
  67. float4 vertex : POSITION;
  68. float3 normal : NORMAL;
  69. float2 texcoord0 : TEXCOORD0;
  70. float2 texcoord2 : TEXCOORD2;
  71. float4 vertexColor : COLOR;
  72. };
  73. struct VertexOutput {
  74. float4 pos : SV_POSITION;
  75. float2 uv0 : TEXCOORD0;
  76. float2 uv2 : TEXCOORD1;
  77. float4 posWorld : TEXCOORD2;
  78. float3 normalDir : TEXCOORD3;
  79. float4 screenPos : TEXCOORD4;
  80. float4 vertexColor : COLOR;
  81. UNITY_FOG_COORDS(5)
  82. };
  83. VertexOutput vert (VertexInput v) {
  84. VertexOutput o = (VertexOutput)0;
  85. o.uv0 = v.texcoord0;
  86. o.uv2 = v.texcoord2;
  87. o.vertexColor = v.vertexColor;
  88. o.normalDir = UnityObjectToWorldNormal(v.normal);
  89. o.posWorld = mul(unity_ObjectToWorld, v.vertex);
  90. float3 lightColor = _LightColor0.rgb;
  91. o.pos = UnityObjectToClipPos(v.vertex );
  92. UNITY_TRANSFER_FOG(o,o.pos);
  93. o.screenPos = o.pos;
  94. return o;
  95. }
  96. float4 frag(VertexOutput i) : COLOR {
  97. #if UNITY_UV_STARTS_AT_TOP
  98. float grabSign = -_ProjectionParams.x;
  99. #else
  100. float grabSign = _ProjectionParams.x;
  101. #endif
  102. i.screenPos = float4( i.screenPos.xy / i.screenPos.w, 0, 0 );
  103. i.screenPos.y *= _ProjectionParams.x;
  104. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  105. float3 normalDirection = i.normalDir;
  106. float node_4198 = half3(0,0,1).r;
  107. half4 time_1 = _Time + _TimeEditor;
  108. half2 node_1405 = (i.uv0+(_Panner_01.rgb.rg*time_1.r)*float2(1,1));
  109. half4 _Normal_1_var = tex2D(_Normal_1,TRANSFORM_TEX(node_1405, _Normal_1));
  110. half4 time = _Time + _TimeEditor;
  111. half2 node_6402 = (i.uv0+(_Panner_02.rgb.rg*time.r)*float2(1,1));
  112. half4 _Normal_2_var = tex2D(_Normal_2,TRANSFORM_TEX(node_6402, _Normal_2));
  113. half4 _Aplha_var = tex2D(_Aplha,TRANSFORM_TEX(i.uv2, _Aplha)); // uv2
  114. half node_877 = (_Aplha_var.r*_Aplha_var.b);
  115. half2 node_9646 = (i.vertexColor.r*lerp(float2(node_4198,node_4198),((_Normal_1_var.rgb*_Normal_2_var.rgb).rg*(0.2*_RefractionIntensity)),node_877));
  116. float2 sceneUVs = float2(1,grabSign)*i.screenPos.xy*0.5+0.5 + node_9646;
  117. float4 sceneColor = tex2D(_GrabTexture, sceneUVs);
  118. float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  119. float3 lightColor = _LightColor0.rgb;
  120. float3 halfDirection = normalize(viewDirection+lightDirection);
  121. ////// Lighting:
  122. float attenuation = 1;
  123. float3 attenColor = attenuation * _LightColor0.xyz;
  124. ///////// Gloss:
  125. float gloss = _Gloss;
  126. float specPow = exp2( gloss * 10.0 + 1.0 );
  127. ////// Specular:
  128. float NdotL = saturate(dot( normalDirection, lightDirection ));
  129. float3 specularColor = (_Specular*_Specular_Color.rgb*float3(node_9646,0.0));
  130. float3 directSpecular = attenColor * pow(max(0,dot(halfDirection,normalDirection)),specPow)*specularColor;
  131. float3 specular = directSpecular;
  132. /////// Diffuse:
  133. NdotL = max(0.0,dot( normalDirection, lightDirection ));
  134. float3 directDiffuse = max( 0.0, NdotL) * attenColor;
  135. float3 indirectDiffuse = float3(0,0,0);
  136. indirectDiffuse += UNITY_LIGHTMODEL_AMBIENT.rgb; // Ambient Light
  137. float3 node_4747 = (_Color_02.rgb*_Color_Power);
  138. float3 diffuseColor = node_4747;
  139. float3 diffuse = (directDiffuse + indirectDiffuse) * diffuseColor;
  140. ////// Emissive:
  141. fixed4 _base_1_var = tex2D(_base_1,TRANSFORM_TEX(node_1405, _base_1));
  142. fixed4 _base_2_var = tex2D(_base_2,TRANSFORM_TEX(node_6402, _base_2));
  143. float3 node_1332 = ((_base_1_var.rgb*_base_2_var.rgb)*_Emission);
  144. float3 emissive = node_1332;
  145. /// Final Color:
  146. float3 finalColor = diffuse + specular + emissive;
  147. fixed4 finalRGBA = fixed4(lerp(sceneColor.rgb, finalColor,(i.vertexColor.r*(_Opacity*node_877))),1);
  148. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  149. return finalRGBA;
  150. }
  151. ENDCG
  152. }
  153. Pass {
  154. Name "FORWARD_DELTA"
  155. Tags {
  156. "LightMode"="ForwardAdd"
  157. }
  158. Blend One One
  159. ZWrite Off
  160. CGPROGRAM
  161. #pragma vertex vert
  162. #pragma fragment frag
  163. #define UNITY_PASS_FORWARDADD
  164. #include "UnityCG.cginc"
  165. #include "AutoLight.cginc"
  166. #pragma multi_compile_fwdadd
  167. #pragma multi_compile_fog
  168. #pragma only_renderers d3d9 d3d11 glcore gles gles3 metal d3d11_9x
  169. #pragma target 3.0
  170. uniform float4 _LightColor0;
  171. uniform sampler2D _GrabTexture;
  172. uniform float4 _TimeEditor;
  173. uniform sampler2D _base_1; uniform float4 _base_1_ST;
  174. uniform sampler2D _Normal_1; uniform float4 _Normal_1_ST;
  175. uniform sampler2D _base_2; uniform float4 _base_2_ST;
  176. uniform sampler2D _Normal_2; uniform float4 _Normal_2_ST;
  177. uniform sampler2D _Aplha; uniform float4 _Aplha_ST;
  178. uniform half4 _Panner_01;
  179. uniform half4 _Panner_02;
  180. uniform half _Emission;
  181. uniform half4 _Color_02;
  182. uniform half _Specular;
  183. uniform half4 _Specular_Color;
  184. uniform half _Opacity;
  185. uniform half _RefractionIntensity;
  186. uniform half _Color_Power;
  187. uniform half _Gloss;
  188. struct VertexInput {
  189. float4 vertex : POSITION;
  190. float3 normal : NORMAL;
  191. float2 texcoord0 : TEXCOORD0;
  192. float2 texcoord2 : TEXCOORD2;
  193. float4 vertexColor : COLOR;
  194. };
  195. struct VertexOutput {
  196. float4 pos : SV_POSITION;
  197. float2 uv0 : TEXCOORD0;
  198. float2 uv2 : TEXCOORD1;
  199. float4 posWorld : TEXCOORD2;
  200. float3 normalDir : TEXCOORD3;
  201. float4 screenPos : TEXCOORD4;
  202. float4 vertexColor : COLOR;
  203. LIGHTING_COORDS(5,6)
  204. UNITY_FOG_COORDS(7)
  205. };
  206. VertexOutput vert (VertexInput v) {
  207. VertexOutput o = (VertexOutput)0;
  208. o.uv0 = v.texcoord0;
  209. o.uv2 = v.texcoord2;
  210. o.vertexColor = v.vertexColor;
  211. o.normalDir = UnityObjectToWorldNormal(v.normal);
  212. o.posWorld = mul(unity_ObjectToWorld, v.vertex);
  213. float3 lightColor = _LightColor0.rgb;
  214. o.pos = UnityObjectToClipPos(v.vertex );
  215. UNITY_TRANSFER_FOG(o,o.pos);
  216. o.screenPos = o.pos;
  217. TRANSFER_VERTEX_TO_FRAGMENT(o)
  218. return o;
  219. }
  220. float4 frag(VertexOutput i) : COLOR {
  221. #if UNITY_UV_STARTS_AT_TOP
  222. float grabSign = -_ProjectionParams.x;
  223. #else
  224. float grabSign = _ProjectionParams.x;
  225. #endif
  226. i.screenPos = float4( i.screenPos.xy / i.screenPos.w, 0, 0 );
  227. i.screenPos.y *= _ProjectionParams.x;
  228. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  229. float3 normalDirection = i.normalDir;
  230. float node_4198 = half3(0,0,1).r;
  231. half4 time_1 = _Time + _TimeEditor;
  232. half2 node_1405 = (i.uv0+(_Panner_01.rgb.rg*time_1.r)*float2(1,1));
  233. half4 _Normal_1_var = tex2D(_Normal_1,TRANSFORM_TEX(node_1405, _Normal_1));
  234. half4 time = _Time + _TimeEditor;
  235. half2 node_6402 = (i.uv0+(_Panner_02.rgb.rg*time.r)*float2(1,1));
  236. half4 _Normal_2_var = tex2D(_Normal_2,TRANSFORM_TEX(node_6402, _Normal_2));
  237. half4 _Aplha_var = tex2D(_Aplha,TRANSFORM_TEX(i.uv2, _Aplha)); // uv2
  238. half node_877 = (_Aplha_var.r*_Aplha_var.b);
  239. half2 node_9646 = (i.vertexColor.r*lerp(float2(node_4198,node_4198),((_Normal_1_var.rgb*_Normal_2_var.rgb).rg*(0.2*_RefractionIntensity)),node_877));
  240. float2 sceneUVs = float2(1,grabSign)*i.screenPos.xy*0.5+0.5 + node_9646;
  241. float4 sceneColor = tex2D(_GrabTexture, sceneUVs);
  242. float3 lightDirection = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.posWorld.xyz,_WorldSpaceLightPos0.w));
  243. float3 lightColor = _LightColor0.rgb;
  244. float3 halfDirection = normalize(viewDirection+lightDirection);
  245. ////// Lighting:
  246. float attenuation = LIGHT_ATTENUATION(i);
  247. float3 attenColor = attenuation * _LightColor0.xyz;
  248. ///////// Gloss:
  249. float gloss = _Gloss;
  250. float specPow = exp2( gloss * 10.0 + 1.0 );
  251. ////// Specular:
  252. float NdotL = saturate(dot( normalDirection, lightDirection ));
  253. float3 specularColor = (_Specular*_Specular_Color.rgb*float3(node_9646,0.0));
  254. float3 directSpecular = attenColor * pow(max(0,dot(halfDirection,normalDirection)),specPow)*specularColor;
  255. float3 specular = directSpecular;
  256. /////// Diffuse:
  257. NdotL = max(0.0,dot( normalDirection, lightDirection ));
  258. float3 directDiffuse = max( 0.0, NdotL) * attenColor;
  259. float3 node_4747 = (_Color_02.rgb*_Color_Power);
  260. float3 diffuseColor = node_4747;
  261. float3 diffuse = directDiffuse * diffuseColor;
  262. /// Final Color:
  263. float3 finalColor = diffuse + specular;
  264. fixed4 finalRGBA = fixed4(finalColor * (i.vertexColor.r*(_Opacity*node_877)),0);
  265. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  266. return finalRGBA;
  267. }
  268. ENDCG
  269. }
  270. }
  271. //FallBack "Diffuse"
  272. CustomEditor "ShaderForgeMaterialInspector"
  273. }