Advertisement
Guest User

Untitled

a guest
Mar 21st, 2016
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.17 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:Standard,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:1,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: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:True;n:type:ShaderForge.SFN_Final,id:4013,x:32719,y:32712,varname:node_4013,prsc:2|diff-2627-OUT,refract-673-OUT,voffset-9336-OUT;n:type:ShaderForge.SFN_Color,id:1304,x:32118,y:32628,ptovrint:False,ptlb: Color A,ptin:_ColorA,varname:_ColorA,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:1,c2:1,c3:1,c4:1;n:type:ShaderForge.SFN_ValueProperty,id:366,x:32613,y:33441,ptovrint:False,ptlb:Tesselletion,ptin:_Tesselletion,varname:_Tesselletion,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:0;n:type:ShaderForge.SFN_DepthBlend,id:7273,x:31483,y:33023,varname:nodeDepth,prsc:2|DIST-5643-OUT;n:type:ShaderForge.SFN_ValueProperty,id:5643,x:31249,y:33023,ptovrint:False,ptlb:Depth,ptin:_Depth,varname:_Depth,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,v1:30;n:type:ShaderForge.SFN_Divide,id:3843,x:31711,y:33128,varname:node_3843,prsc:2|A-7273-OUT,B-9196-OUT;n:type:ShaderForge.SFN_Dot,id:9196,x:31483,y:33215,varname:node_9196,prsc:2,dt:4|A-1173-OUT,B-6234-OUT;n:type:ShaderForge.SFN_NormalVector,id:6234,x:31249,y:33290,prsc:2,pt:False;n:type:ShaderForge.SFN_ViewVector,id:1173,x:31249,y:33152,varname:node_1173,prsc:2;n:type:ShaderForge.SFN_Lerp,id:2627,x:32459,y:32795,varname:node_2627,prsc:2|A-1304-RGB,B-940-RGB,T-3843-OUT;n:type:ShaderForge.SFN_Color,id:940,x:31982,y:32817,ptovrint:False,ptlb:Color B,ptin:_ColorB,varname:_ColorB,prsc:2,glob:False,taghide:False,taghdr:False,tagprd:False,tagnsco:False,tagnrm:False,c1:0,c2:0,c3:0,c4:1;n:type:ShaderForge.SFN_Vector2,id:673,x:32384,y:33004,varname:node_673,prsc:2,v1:0,v2:0;n:type:ShaderForge.SFN_Vector3,id:168,x:32200,y:33338,varname:node_168,prsc:2,v1:0,v2:1,v3:0;n:type:ShaderForge.SFN_Multiply,id:9336,x:32384,y:33213,varname:node_9336,prsc:2|A-3843-OUT,B-168-OUT;n:type:ShaderForge.SFN_Desaturate,id:9957,x:32065,y:33157,varname:node_9957,prsc:2|COL-3843-OUT;n:type:ShaderForge.SFN_Vector1,id:5011,x:32218,y:33191,varname:node_5011,prsc:2,v1:1;proporder:1304-366-5643-940;pass:END;sub:END;*/
  5.  
  6. Shader "Shader Forge/Tesselation Depth Mask" {
  7. Properties {
  8. _ColorA (" Color A", Color) = (1,1,1,1)
  9. _Tesselletion ("Tesselletion", Float ) = 0
  10. _Depth ("Depth", Float ) = 30
  11. _ColorB ("Color B", Color) = (0,0,0,1)
  12. }
  13. SubShader {
  14. Tags {
  15. "IgnoreProjector"="True"
  16. "Queue"="Transparent"
  17. "RenderType"="Transparent"
  18. }
  19. GrabPass{ }
  20. Pass {
  21. Name "FORWARD"
  22. Tags {
  23. "LightMode"="ForwardBase"
  24. }
  25.  
  26.  
  27. CGPROGRAM
  28. #pragma vertex vert
  29. #pragma fragment frag
  30. #define UNITY_PASS_FORWARDBASE
  31. #include "UnityCG.cginc"
  32. #pragma multi_compile_fwdbase
  33. #pragma multi_compile_fog
  34. #pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
  35. #pragma target 3.0
  36. uniform float4 _LightColor0;
  37. uniform sampler2D _GrabTexture;
  38. uniform sampler2D _CameraDepthTexture;
  39. uniform float4 _ColorA;
  40. uniform float _Depth;
  41. uniform float4 _ColorB;
  42. struct VertexInput {
  43. float4 vertex : POSITION;
  44. float3 normal : NORMAL;
  45. };
  46. struct VertexOutput {
  47. float4 pos : SV_POSITION;
  48. float4 posWorld : TEXCOORD0;
  49. float3 normalDir : TEXCOORD1;
  50. float4 screenPos : TEXCOORD2;
  51. float4 projPos : TEXCOORD3;
  52. UNITY_FOG_COORDS(4)
  53. };
  54. VertexOutput vert (VertexInput v) {
  55. VertexOutput o = (VertexOutput)0;
  56. o.normalDir = UnityObjectToWorldNormal(v.normal);
  57. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - mul(_Object2World, v.vertex).xyz);
  58. float nodeDepth = saturate((sceneZ-partZ)/_Depth);
  59. float node_3843 = (nodeDepth/0.5*dot(viewDirection,v.normal)+0.5);
  60. v.vertex.xyz += (node_3843*float3(0,1,0));
  61. o.posWorld = mul(_Object2World, v.vertex);
  62. float3 lightColor = _LightColor0.rgb;
  63. o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
  64. UNITY_TRANSFER_FOG(o,o.pos);
  65. o.projPos = ComputeScreenPos (o.pos);
  66. COMPUTE_EYEDEPTH(o.projPos.z);
  67. o.screenPos = o.pos;
  68. return o;
  69. }
  70. float4 frag(VertexOutput i) : COLOR {
  71. #if UNITY_UV_STARTS_AT_TOP
  72. float grabSign = -_ProjectionParams.x;
  73. #else
  74. float grabSign = _ProjectionParams.x;
  75. #endif
  76. i.normalDir = normalize(i.normalDir);
  77. i.screenPos = float4( i.screenPos.xy / i.screenPos.w, 0, 0 );
  78. i.screenPos.y *= _ProjectionParams.x;
  79. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  80. float3 normalDirection = i.normalDir;
  81. float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
  82. float partZ = max(0,i.projPos.z - _ProjectionParams.g);
  83. float2 sceneUVs = float2(1,grabSign)*i.screenPos.xy*0.5+0.5 + float2(0,0);
  84. float4 sceneColor = tex2D(_GrabTexture, sceneUVs);
  85. float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);
  86. float3 lightColor = _LightColor0.rgb;
  87. ////// Lighting:
  88. float attenuation = 1;
  89. float3 attenColor = attenuation * _LightColor0.xyz;
  90. /////// Diffuse:
  91. float NdotL = max(0.0,dot( normalDirection, lightDirection ));
  92. float3 directDiffuse = max( 0.0, NdotL) * attenColor;
  93. float3 indirectDiffuse = float3(0,0,0);
  94. indirectDiffuse += UNITY_LIGHTMODEL_AMBIENT.rgb; // Ambient Light
  95. float nodeDepth = saturate((sceneZ-partZ)/_Depth);
  96. float node_3843 = (nodeDepth/0.5*dot(viewDirection,i.normalDir)+0.5);
  97. float3 diffuseColor = lerp(_ColorA.rgb,_ColorB.rgb,node_3843);
  98. float3 diffuse = (directDiffuse + indirectDiffuse) * diffuseColor;
  99. /// Final Color:
  100. float3 finalColor = diffuse;
  101. fixed4 finalRGBA = fixed4(lerp(sceneColor.rgb, finalColor,1),1);
  102. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  103. return finalRGBA;
  104. }
  105. ENDCG
  106. }
  107. Pass {
  108. Name "FORWARD_DELTA"
  109. Tags {
  110. "LightMode"="ForwardAdd"
  111. }
  112. Blend One One
  113.  
  114.  
  115. CGPROGRAM
  116. #pragma vertex vert
  117. #pragma fragment frag
  118. #define UNITY_PASS_FORWARDADD
  119. #include "UnityCG.cginc"
  120. #include "AutoLight.cginc"
  121. #pragma multi_compile_fwdadd
  122. #pragma multi_compile_fog
  123. #pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
  124. #pragma target 3.0
  125. uniform float4 _LightColor0;
  126. uniform sampler2D _GrabTexture;
  127. uniform sampler2D _CameraDepthTexture;
  128. uniform float4 _ColorA;
  129. uniform float _Depth;
  130. uniform float4 _ColorB;
  131. struct VertexInput {
  132. float4 vertex : POSITION;
  133. float3 normal : NORMAL;
  134. };
  135. struct VertexOutput {
  136. float4 pos : SV_POSITION;
  137. float4 posWorld : TEXCOORD0;
  138. float3 normalDir : TEXCOORD1;
  139. float4 screenPos : TEXCOORD2;
  140. float4 projPos : TEXCOORD3;
  141. LIGHTING_COORDS(4,5)
  142. UNITY_FOG_COORDS(6)
  143. };
  144. VertexOutput vert (VertexInput v) {
  145. VertexOutput o = (VertexOutput)0;
  146. o.normalDir = UnityObjectToWorldNormal(v.normal);
  147. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - mul(_Object2World, v.vertex).xyz);
  148. float nodeDepth = saturate((sceneZ-partZ)/_Depth);
  149. float node_3843 = (nodeDepth/0.5*dot(viewDirection,v.normal)+0.5);
  150. v.vertex.xyz += (node_3843*float3(0,1,0));
  151. o.posWorld = mul(_Object2World, v.vertex);
  152. float3 lightColor = _LightColor0.rgb;
  153. o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
  154. UNITY_TRANSFER_FOG(o,o.pos);
  155. o.projPos = ComputeScreenPos (o.pos);
  156. COMPUTE_EYEDEPTH(o.projPos.z);
  157. o.screenPos = o.pos;
  158. TRANSFER_VERTEX_TO_FRAGMENT(o)
  159. return o;
  160. }
  161. float4 frag(VertexOutput i) : COLOR {
  162. #if UNITY_UV_STARTS_AT_TOP
  163. float grabSign = -_ProjectionParams.x;
  164. #else
  165. float grabSign = _ProjectionParams.x;
  166. #endif
  167. i.normalDir = normalize(i.normalDir);
  168. i.screenPos = float4( i.screenPos.xy / i.screenPos.w, 0, 0 );
  169. i.screenPos.y *= _ProjectionParams.x;
  170. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  171. float3 normalDirection = i.normalDir;
  172. float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
  173. float partZ = max(0,i.projPos.z - _ProjectionParams.g);
  174. float2 sceneUVs = float2(1,grabSign)*i.screenPos.xy*0.5+0.5 + float2(0,0);
  175. float4 sceneColor = tex2D(_GrabTexture, sceneUVs);
  176. float3 lightDirection = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.posWorld.xyz,_WorldSpaceLightPos0.w));
  177. float3 lightColor = _LightColor0.rgb;
  178. ////// Lighting:
  179. float attenuation = LIGHT_ATTENUATION(i);
  180. float3 attenColor = attenuation * _LightColor0.xyz;
  181. /////// Diffuse:
  182. float NdotL = max(0.0,dot( normalDirection, lightDirection ));
  183. float3 directDiffuse = max( 0.0, NdotL) * attenColor;
  184. float nodeDepth = saturate((sceneZ-partZ)/_Depth);
  185. float node_3843 = (nodeDepth/0.5*dot(viewDirection,i.normalDir)+0.5);
  186. float3 diffuseColor = lerp(_ColorA.rgb,_ColorB.rgb,node_3843);
  187. float3 diffuse = directDiffuse * diffuseColor;
  188. /// Final Color:
  189. float3 finalColor = diffuse;
  190. fixed4 finalRGBA = fixed4(finalColor * 1,0);
  191. UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  192. return finalRGBA;
  193. }
  194. ENDCG
  195. }
  196. Pass {
  197. Name "ShadowCaster"
  198. Tags {
  199. "LightMode"="ShadowCaster"
  200. }
  201. Offset 1, 1
  202.  
  203. CGPROGRAM
  204. #pragma vertex vert
  205. #pragma fragment frag
  206. #define UNITY_PASS_SHADOWCASTER
  207. #include "UnityCG.cginc"
  208. #include "Lighting.cginc"
  209. #pragma fragmentoption ARB_precision_hint_fastest
  210. #pragma multi_compile_shadowcaster
  211. #pragma multi_compile_fog
  212. #pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
  213. #pragma target 3.0
  214. uniform sampler2D _CameraDepthTexture;
  215. uniform float _Depth;
  216. struct VertexInput {
  217. float4 vertex : POSITION;
  218. float3 normal : NORMAL;
  219. };
  220. struct VertexOutput {
  221. V2F_SHADOW_CASTER;
  222. float4 posWorld : TEXCOORD1;
  223. float3 normalDir : TEXCOORD2;
  224. float4 projPos : TEXCOORD3;
  225. };
  226. VertexOutput vert (VertexInput v) {
  227. VertexOutput o = (VertexOutput)0;
  228. o.normalDir = UnityObjectToWorldNormal(v.normal);
  229. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - mul(_Object2World, v.vertex).xyz);
  230. float nodeDepth = saturate((sceneZ-partZ)/_Depth);
  231. float node_3843 = (nodeDepth/0.5*dot(viewDirection,v.normal)+0.5);
  232. v.vertex.xyz += (node_3843*float3(0,1,0));
  233. o.posWorld = mul(_Object2World, v.vertex);
  234. o.pos = mul(UNITY_MATRIX_MVP, v.vertex );
  235. o.projPos = ComputeScreenPos (o.pos);
  236. COMPUTE_EYEDEPTH(o.projPos.z);
  237. TRANSFER_SHADOW_CASTER(o)
  238. return o;
  239. }
  240. float4 frag(VertexOutput i) : COLOR {
  241. i.normalDir = normalize(i.normalDir);
  242. float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  243. float3 normalDirection = i.normalDir;
  244. float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
  245. float partZ = max(0,i.projPos.z - _ProjectionParams.g);
  246. SHADOW_CASTER_FRAGMENT(i)
  247. }
  248. ENDCG
  249. }
  250. }
  251. CustomEditor "ShaderForgeMaterialInspector"
  252. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement