RO_Effect_UVRJ_01.shader 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Shader "RO/RO_Effect_UVRJ_01"
  2. {
  3. Properties
  4. {
  5. [HDR]_MainTexColor("MainTexColor", Color) = (1,1,1,1)
  6. _MainTex("MainTex", 2D) = "white" {}
  7. _Vector0("UV_Speed", Vector) = (0,0,0,0)
  8. _FresnelColor("FresnelColor", Color) = (0,0,0,0)
  9. _Fresnel("Fresnel(X_Bias,Y_Scale,Z_Power)", Vector) = (0,0,0,0)
  10. [Enum(UnityEngine.Rendering.BlendMode)]_Src1("Src", Float) = 1
  11. [Enum(UnityEngine.Rendering.BlendMode)]_Dst1("Dst", Float) = 1
  12. [Enum(UnityEngine.Rendering.CullMode)]_CullMode1("CullMode", Float) = 0
  13. [Enum(On,0,Off,1)]_ZWrite1("ZWrite", Float) = 0
  14. [Enum(UnityEngine.Rendering.CompareFunction)]_ZTest1("ZTest", Float) = 5
  15. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  16. [HideInInspector] __dirty( "", Int ) = 1
  17. }
  18. SubShader
  19. {
  20. Tags{ "RenderType" = "Custom" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
  21. Cull [_CullMode1]
  22. ZWrite [_ZWrite1]
  23. ZTest [_ZTest1]
  24. Blend [_Src1] [_Dst1]
  25. CGPROGRAM
  26. #include "UnityShaderVariables.cginc"
  27. #pragma target 3.0
  28. #pragma surface surf Unlit keepalpha noshadow noambient novertexlights nolightmap nodynlightmap nodirlightmap nometa noforwardadd
  29. struct Input
  30. {
  31. float3 worldPos;
  32. float3 worldNormal;
  33. float2 uv_texcoord;
  34. float4 vertexColor : COLOR;
  35. };
  36. uniform float _Dst1;
  37. uniform float _Src1;
  38. uniform float _CullMode1;
  39. uniform float _ZTest1;
  40. uniform float _ZWrite1;
  41. uniform float4 _FresnelColor;
  42. uniform float4 _Fresnel;
  43. uniform float4 _MainTexColor;
  44. uniform sampler2D _MainTex;
  45. uniform float4 _MainTex_ST;
  46. uniform float4 _Vector0;
  47. inline half4 LightingUnlit( SurfaceOutput s, half3 lightDir, half atten )
  48. {
  49. return half4 ( 0, 0, 0, s.Alpha );
  50. }
  51. void surf( Input i , inout SurfaceOutput o )
  52. {
  53. float3 ase_worldPos = i.worldPos;
  54. float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
  55. float3 ase_worldNormal = i.worldNormal;
  56. float fresnelNdotV43 = dot( ase_worldNormal, ase_worldViewDir );
  57. float fresnelNode43 = ( 0.0 + 1.0 * pow( 1.0 - fresnelNdotV43, _Fresnel.y ) );
  58. float2 uv0_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
  59. float2 appendResult25 = (float2(( uv0_MainTex.x + ( _Time.y * _Vector0.x ) ) , ( uv0_MainTex.y + ( _Time.y * _Vector0.y ) )));
  60. float4 tex2DNode2 = tex2D( _MainTex, appendResult25 );
  61. float2 appendResult34 = (float2(( uv0_MainTex.x + ( _Time.y * _Vector0.z ) ) , ( uv0_MainTex.y + ( _Time.y * _Vector0.w ) )));
  62. float4 tex2DNode36 = tex2D( _MainTex, appendResult34 );
  63. float temp_output_65_0 = ( tex2DNode2.r * tex2DNode36.r );
  64. o.Emission = saturate( ( ( _FresnelColor * saturate( ( fresnelNode43 * _Fresnel.x ) ) ) + ( _MainTexColor * temp_output_65_0 * i.vertexColor ) ) ).rgb;
  65. o.Alpha = step( saturate( ( temp_output_65_0 * _MainTexColor.a ) ) , ( _FresnelColor.a * i.vertexColor.a ) );
  66. }
  67. ENDCG
  68. }
  69. }