blood_blend.shader 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. // Shader created with Shader Forge v1.05
  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.05;sub:START;pass:START;ps:flbk:,lico:1,lgpr:1,nrmq:1,limd:0,uamb:True,mssp:True,lmpd:False,lprd:False,rprd:False,enco:False,frtr:True,vitr:True,dbil:False,rmgx:True,rpth:0,hqsc:True,hqlp:False,tesm:0,blpr:0,bsrc:0,bdst:1,culm:2,dpts:2,wrdp:True,dith:0,ufog:True,aust:False,igpj:False,qofs:1,qpre:2,rntp:3,fgom:True,fgoc:False,fgod:False,fgor:True,fgmd:0,fgcr:0,fgcg:0,fgcb:0,fgca:1,fgde:0.01,fgrn:45,fgrf:100,ofsf:0,ofsu:0,f2p0:False;n:type:ShaderForge.SFN_Final,id:1,x:34814,y:32535,varname:node_1,prsc:2|emission-654-OUT,clip-700-OUT;n:type:ShaderForge.SFN_Tex2d,id:2,x:33740,y:32516,ptovrint:False,ptlb:T01,ptin:_T01,varname:_Tex01,prsc:2,tex:b66bceaf0cc0ace4e9bdc92f14bba709,ntxv:0,isnm:False|UVIN-6291-UVOUT;n:type:ShaderForge.SFN_Tex2d,id:7,x:33013,y:32474,ptovrint:False,ptlb:DisT01,ptin:_DisT01,varname:_DisTex01,prsc:2,tex:28c7aad1372ff114b90d330f8a2dd938,ntxv:0,isnm:False|UVIN-7564-OUT;n:type:ShaderForge.SFN_Panner,id:15,x:32643,y:32419,varname:node_15,prsc:2,spu:1,spv:0|DIST-631-OUT;n:type:ShaderForge.SFN_Multiply,id:217,x:33221,y:32411,varname:node_217,prsc:2|A-589-OUT,B-7-R;n:type:ShaderForge.SFN_TexCoord,id:496,x:33221,y:32536,varname:node_496,prsc:2,uv:0;n:type:ShaderForge.SFN_Add,id:554,x:33383,y:32516,varname:node_554,prsc:2|A-217-OUT,B-496-UVOUT;n:type:ShaderForge.SFN_ValueProperty,id:589,x:33013,y:32389,ptovrint:False,ptlb:Value_DisT01,ptin:_Value_DisT01,varname:_Power_DisTex01,prsc:2,glob:False,v1:0.2;n:type:ShaderForge.SFN_Time,id:630,x:32325,y:32400,varname:node_630,prsc:2;n:type:ShaderForge.SFN_Multiply,id:631,x:32482,y:32478,varname:node_631,prsc:2|A-630-T,B-633-OUT;n:type:ShaderForge.SFN_ValueProperty,id:633,x:32302,y:32603,ptovrint:False,ptlb:Speed_DisT01,ptin:_Speed_DisT01,varname:_PanV_DisTex01,prsc:2,glob:False,v1:1;n:type:ShaderForge.SFN_Multiply,id:643,x:33993,y:32990,varname:node_643,prsc:2|A-2-R,B-647-R;n:type:ShaderForge.SFN_Tex2d,id:647,x:33753,y:32990,ptovrint:False,ptlb:Mask,ptin:_Mask,varname:_mask,prsc:2,tex:3a5a96df060a5cf4a9cc0c59e13486b7,ntxv:0,isnm:False;n:type:ShaderForge.SFN_VertexColor,id:653,x:34384,y:32673,varname:node_653,prsc:2;n:type:ShaderForge.SFN_Multiply,id:654,x:34588,y:32635,varname:node_654,prsc:2|A-808-OUT,B-653-RGB;n:type:ShaderForge.SFN_Multiply,id:669,x:34384,y:32894,varname:node_669,prsc:2|A-6901-OUT,B-643-OUT;n:type:ShaderForge.SFN_ValueProperty,id:675,x:33968,y:32815,ptovrint:False,ptlb:Value_Mask,ptin:_Value_Mask,varname:_Intensity_alpha,prsc:2,glob:False,v1:1;n:type:ShaderForge.SFN_Multiply,id:700,x:34556,y:32842,varname:node_700,prsc:2|A-653-A,B-669-OUT;n:type:ShaderForge.SFN_Add,id:808,x:34221,y:32500,varname:node_808,prsc:2|A-6959-OUT,B-4165-OUT;n:type:ShaderForge.SFN_Panner,id:2098,x:32643,y:32582,varname:node_2098,prsc:2,spu:0,spv:1|DIST-631-OUT;n:type:ShaderForge.SFN_SwitchProperty,id:7564,x:32823,y:32491,ptovrint:False,ptlb:U/V_Pan,ptin:_UV_Pan,varname:node_7564,prsc:2,on:False|A-15-UVOUT,B-2098-UVOUT;n:type:ShaderForge.SFN_Rotator,id:6291,x:33564,y:32516,varname:node_6291,prsc:2|UVIN-554-OUT,ANG-5125-OUT;n:type:ShaderForge.SFN_ValueProperty,id:1375,x:33316,y:32893,ptovrint:False,ptlb:UVangle_T01,ptin:_UVangle_T01,varname:node_1375,prsc:2,glob:False,v1:0;n:type:ShaderForge.SFN_Multiply,id:4165,x:33981,y:32521,varname:node_4165,prsc:2|A-9284-RGB,B-2-RGB;n:type:ShaderForge.SFN_Color,id:9284,x:33830,y:32349,ptovrint:False,ptlb:Color_T01,ptin:_Color_T01,varname:node_9284,prsc:2,glob:False,c1:1,c2:1,c3:1,c4:1;n:type:ShaderForge.SFN_Vector1,id:4845,x:33968,y:32733,varname:node_4845,prsc:2,v1:1;n:type:ShaderForge.SFN_Add,id:6901,x:34178,y:32733,varname:node_6901,prsc:2|A-4845-OUT,B-675-OUT;n:type:ShaderForge.SFN_Slider,id:6959,x:34022,y:32420,ptovrint:False,ptlb:Value_T01,ptin:_Value_T01,varname:node_6959,prsc:2,min:0,cur:0,max:1;n:type:ShaderForge.SFN_Pi,id:8487,x:33332,y:32722,varname:node_8487,prsc:2;n:type:ShaderForge.SFN_Multiply,id:5125,x:33462,y:32761,varname:node_5125,prsc:2|A-8487-OUT,B-1375-OUT;proporder:6959-2-9284-1375-7-589-633-7564-647-675;pass:END;sub:END;*/
  6. Shader "yh/blood_blend" {
  7. Properties {
  8. _Value_T01 ("Value_T01", Range(0, 1)) = 0
  9. _T01 ("T01", 2D) = "white" {}
  10. _Color_T01 ("Color_T01", Color) = (1,1,1,1)
  11. _UVangle_T01 ("UVangle_T01", Float ) = 0
  12. _DisT01 ("DisT01", 2D) = "white" {}
  13. _Value_DisT01 ("Value_DisT01", Float ) = 0.2
  14. _Speed_DisT01 ("Speed_DisT01", Float ) = 1
  15. [MaterialToggle] _UV_Pan ("U/V_Pan", Float ) = 0
  16. _Mask ("Mask", 2D) = "white" {}
  17. _Value_Mask ("Value_Mask", Float ) = 1
  18. [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
  19. }
  20. SubShader {
  21. Tags {
  22. "Queue"="AlphaTest+1"
  23. "RenderType"="TransparentCutout"
  24. }
  25. Pass {
  26. Name "ForwardBase"
  27. Tags {
  28. "LightMode"="ForwardBase"
  29. }
  30. Cull Off
  31. Fog {Mode Global}
  32. Fog {Range 45,100}
  33. CGPROGRAM
  34. #pragma vertex vert
  35. #pragma fragment frag
  36. #define UNITY_PASS_FORWARDBASE
  37. #include "UnityCG.cginc"
  38. #pragma multi_compile_fwdbase_fullshadows
  39. #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  40. #pragma target 3.0
  41. uniform float4 _TimeEditor;
  42. uniform sampler2D _T01; uniform float4 _T01_ST;
  43. uniform sampler2D _DisT01; uniform float4 _DisT01_ST;
  44. uniform float _Value_DisT01;
  45. uniform float _Speed_DisT01;
  46. uniform sampler2D _Mask; uniform float4 _Mask_ST;
  47. uniform float _Value_Mask;
  48. uniform fixed _UV_Pan;
  49. uniform float _UVangle_T01;
  50. uniform float4 _Color_T01;
  51. uniform float _Value_T01;
  52. struct VertexInput {
  53. float4 vertex : POSITION;
  54. float2 texcoord0 : TEXCOORD0;
  55. float4 vertexColor : COLOR;
  56. };
  57. struct VertexOutput {
  58. float4 pos : SV_POSITION;
  59. float2 uv0 : TEXCOORD0;
  60. float4 vertexColor : COLOR;
  61. };
  62. VertexOutput vert (VertexInput v) {
  63. VertexOutput o = (VertexOutput)0;
  64. o.uv0 = v.texcoord0;
  65. o.vertexColor = v.vertexColor;
  66. o.pos = UnityObjectToClipPos(v.vertex);
  67. return o;
  68. }
  69. fixed4 frag(VertexOutput i) : COLOR {
  70. /////// Vectors:
  71. float node_6291_ang = (3.141592654*_UVangle_T01);
  72. float node_6291_spd = 1.0;
  73. float node_6291_cos = cos(node_6291_spd*node_6291_ang);
  74. float node_6291_sin = sin(node_6291_spd*node_6291_ang);
  75. float2 node_6291_piv = float2(0.5,0.5);
  76. float4 node_630 = _Time + _TimeEditor;
  77. float node_631 = (node_630.g*_Speed_DisT01);
  78. float2 _UV_Pan_var = lerp( (i.uv0+node_631*float2(1,0)), (i.uv0+node_631*float2(0,1)), _UV_Pan );
  79. float4 _DisT01_var = tex2D(_DisT01,TRANSFORM_TEX(_UV_Pan_var, _DisT01));
  80. float2 node_6291 = (mul(((_Value_DisT01*_DisT01_var.r)+i.uv0)-node_6291_piv,float2x2( node_6291_cos, -node_6291_sin, node_6291_sin, node_6291_cos))+node_6291_piv);
  81. float4 _T01_var = tex2D(_T01,TRANSFORM_TEX(node_6291, _T01));
  82. float4 _Mask_var = tex2D(_Mask,TRANSFORM_TEX(i.uv0, _Mask));
  83. clip((i.vertexColor.a*((1.0+_Value_Mask)*(_T01_var.r*_Mask_var.r))) - 0.5);
  84. ////// Lighting:
  85. ////// Emissive:
  86. float3 emissive = ((_Value_T01+(_Color_T01.rgb*_T01_var.rgb))*i.vertexColor.rgb);
  87. float3 finalColor = emissive;
  88. return fixed4(finalColor,1);
  89. }
  90. ENDCG
  91. }
  92. Pass {
  93. Name "ShadowCollector"
  94. Tags {
  95. "LightMode"="ShadowCollector"
  96. }
  97. Cull Off
  98. Fog {Mode Off}
  99. CGPROGRAM
  100. #pragma vertex vert
  101. #pragma fragment frag
  102. #define UNITY_PASS_SHADOWCOLLECTOR
  103. #define SHADOW_COLLECTOR_PASS
  104. #include "UnityCG.cginc"
  105. #include "Lighting.cginc"
  106. #pragma fragmentoption ARB_precision_hint_fastest
  107. #pragma multi_compile_shadowcollector
  108. #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  109. #pragma target 3.0
  110. uniform float4 _TimeEditor;
  111. uniform sampler2D _T01; uniform float4 _T01_ST;
  112. uniform sampler2D _DisT01; uniform float4 _DisT01_ST;
  113. uniform float _Value_DisT01;
  114. uniform float _Speed_DisT01;
  115. uniform sampler2D _Mask; uniform float4 _Mask_ST;
  116. uniform float _Value_Mask;
  117. uniform fixed _UV_Pan;
  118. uniform float _UVangle_T01;
  119. struct VertexInput {
  120. float4 vertex : POSITION;
  121. float2 texcoord0 : TEXCOORD0;
  122. float4 vertexColor : COLOR;
  123. };
  124. struct VertexOutput {
  125. V2F_SHADOW_COLLECTOR;
  126. float2 uv0 : TEXCOORD5;
  127. float4 vertexColor : COLOR;
  128. };
  129. VertexOutput vert (VertexInput v) {
  130. VertexOutput o = (VertexOutput)0;
  131. o.uv0 = v.texcoord0;
  132. o.vertexColor = v.vertexColor;
  133. o.pos = UnityObjectToClipPos(v.vertex);
  134. TRANSFER_SHADOW_COLLECTOR(o)
  135. return o;
  136. }
  137. fixed4 frag(VertexOutput i) : COLOR {
  138. /////// Vectors:
  139. float node_6291_ang = (3.141592654*_UVangle_T01);
  140. float node_6291_spd = 1.0;
  141. float node_6291_cos = cos(node_6291_spd*node_6291_ang);
  142. float node_6291_sin = sin(node_6291_spd*node_6291_ang);
  143. float2 node_6291_piv = float2(0.5,0.5);
  144. float4 node_630 = _Time + _TimeEditor;
  145. float node_631 = (node_630.g*_Speed_DisT01);
  146. float2 _UV_Pan_var = lerp( (i.uv0+node_631*float2(1,0)), (i.uv0+node_631*float2(0,1)), _UV_Pan );
  147. float4 _DisT01_var = tex2D(_DisT01,TRANSFORM_TEX(_UV_Pan_var, _DisT01));
  148. float2 node_6291 = (mul(((_Value_DisT01*_DisT01_var.r)+i.uv0)-node_6291_piv,float2x2( node_6291_cos, -node_6291_sin, node_6291_sin, node_6291_cos))+node_6291_piv);
  149. float4 _T01_var = tex2D(_T01,TRANSFORM_TEX(node_6291, _T01));
  150. float4 _Mask_var = tex2D(_Mask,TRANSFORM_TEX(i.uv0, _Mask));
  151. clip((i.vertexColor.a*((1.0+_Value_Mask)*(_T01_var.r*_Mask_var.r))) - 0.5);
  152. SHADOW_COLLECTOR_FRAGMENT(i)
  153. }
  154. ENDCG
  155. }
  156. Pass {
  157. Name "ShadowCaster"
  158. Tags {
  159. "LightMode"="ShadowCaster"
  160. }
  161. Cull Off
  162. Offset 1, 1
  163. Fog {Mode Off}
  164. CGPROGRAM
  165. #pragma vertex vert
  166. #pragma fragment frag
  167. #define UNITY_PASS_SHADOWCASTER
  168. #include "UnityCG.cginc"
  169. #include "Lighting.cginc"
  170. #pragma fragmentoption ARB_precision_hint_fastest
  171. #pragma multi_compile_shadowcaster
  172. #pragma exclude_renderers xbox360 ps3 flash d3d11_9x
  173. #pragma target 3.0
  174. uniform float4 _TimeEditor;
  175. uniform sampler2D _T01; uniform float4 _T01_ST;
  176. uniform sampler2D _DisT01; uniform float4 _DisT01_ST;
  177. uniform float _Value_DisT01;
  178. uniform float _Speed_DisT01;
  179. uniform sampler2D _Mask; uniform float4 _Mask_ST;
  180. uniform float _Value_Mask;
  181. uniform fixed _UV_Pan;
  182. uniform float _UVangle_T01;
  183. struct VertexInput {
  184. float4 vertex : POSITION;
  185. float2 texcoord0 : TEXCOORD0;
  186. float4 vertexColor : COLOR;
  187. };
  188. struct VertexOutput {
  189. V2F_SHADOW_CASTER;
  190. float2 uv0 : TEXCOORD1;
  191. float4 vertexColor : COLOR;
  192. };
  193. VertexOutput vert (VertexInput v) {
  194. VertexOutput o = (VertexOutput)0;
  195. o.uv0 = v.texcoord0;
  196. o.vertexColor = v.vertexColor;
  197. o.pos = UnityObjectToClipPos(v.vertex);
  198. TRANSFER_SHADOW_CASTER(o)
  199. return o;
  200. }
  201. fixed4 frag(VertexOutput i) : COLOR {
  202. /////// Vectors:
  203. float node_6291_ang = (3.141592654*_UVangle_T01);
  204. float node_6291_spd = 1.0;
  205. float node_6291_cos = cos(node_6291_spd*node_6291_ang);
  206. float node_6291_sin = sin(node_6291_spd*node_6291_ang);
  207. float2 node_6291_piv = float2(0.5,0.5);
  208. float4 node_630 = _Time + _TimeEditor;
  209. float node_631 = (node_630.g*_Speed_DisT01);
  210. float2 _UV_Pan_var = lerp( (i.uv0+node_631*float2(1,0)), (i.uv0+node_631*float2(0,1)), _UV_Pan );
  211. float4 _DisT01_var = tex2D(_DisT01,TRANSFORM_TEX(_UV_Pan_var, _DisT01));
  212. float2 node_6291 = (mul(((_Value_DisT01*_DisT01_var.r)+i.uv0)-node_6291_piv,float2x2( node_6291_cos, -node_6291_sin, node_6291_sin, node_6291_cos))+node_6291_piv);
  213. float4 _T01_var = tex2D(_T01,TRANSFORM_TEX(node_6291, _T01));
  214. float4 _Mask_var = tex2D(_Mask,TRANSFORM_TEX(i.uv0, _Mask));
  215. clip((i.vertexColor.a*((1.0+_Value_Mask)*(_T01_var.r*_Mask_var.r))) - 0.5);
  216. SHADOW_CASTER_FRAGMENT(i)
  217. }
  218. ENDCG
  219. }
  220. }
  221. //FallBack "Diffuse"
  222. }