| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- Shader "RO/RO_Effect_Bing_01"
- {
- Properties
- {
- _Color0("Color 0", Color) = (1,1,1,0)
- _Color1("Color 1", Color) = (0,0,0,0)
- _Float2("Float 2", Range( 0 , 1)) = 0.9
- _Vector0("Vector 0", Vector) = (0,0,0,0)
- [HideInInspector] _texcoord( "", 2D ) = "white" {}
- [HideInInspector] __dirty( "", Int ) = 1
- }
- SubShader
- {
- Tags{ "RenderType" = "Custom" "Queue" = "Transparent+0" "IsEmissive" = "true" }
- Cull Back
- ZWrite On
- Blend SrcAlpha OneMinusSrcAlpha
- CGINCLUDE
- #include "UnityPBSLighting.cginc"
- #include "Lighting.cginc"
- #pragma target 3.0
- struct Input
- {
- float4 vertexColor : COLOR;
- float3 worldPos;
- float3 worldNormal;
- float2 uv_texcoord;
- };
- uniform float4 _Color0;
- uniform float4 _Color1;
- uniform float4 _Vector0;
- uniform float _Float2;
- inline half4 LightingUnlit( SurfaceOutput s, half3 lightDir, half atten )
- {
- return half4 ( 0, 0, 0, s.Alpha );
- }
- void surf( Input i , inout SurfaceOutput o )
- {
- float3 ase_worldPos = i.worldPos;
- float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
- float3 ase_worldNormal = i.worldNormal;
- float fresnelNdotV16 = dot( ase_worldNormal, ase_worldViewDir );
- float fresnelNode16 = ( 0.0 + 1.0 * pow( 1.0 - fresnelNdotV16, _Vector0.x ) );
- float temp_output_76_0 = ( max( ( fresnelNode16 * _Vector0.y ) , saturate( ( ( 1.0 - ( i.uv_texcoord.x + 0.0 ) ) * _Vector0.z ) ) ) + 0.0 );
- float4 lerpResult20 = lerp( _Color0 , _Color1 , temp_output_76_0);
- o.Emission = ( i.vertexColor * saturate( lerpResult20 ) ).rgb;
- o.Alpha = ( i.vertexColor.a * (_Float2 + (saturate( temp_output_76_0 ) - 0.0) * (1.0 - _Float2) / (1.0 - 0.0)) );
- }
- ENDCG
- CGPROGRAM
- #pragma surface surf Unlit keepalpha fullforwardshadows
- ENDCG
- Pass
- {
- Name "ShadowCaster"
- Tags{ "LightMode" = "ShadowCaster" }
- ZWrite On
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #pragma target 3.0
- #pragma multi_compile_shadowcaster
- #pragma multi_compile UNITY_PASS_SHADOWCASTER
- #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
- #include "HLSLSupport.cginc"
- #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
- #define CAN_SKIP_VPOS
- #endif
- #include "UnityCG.cginc"
- #include "Lighting.cginc"
- #include "UnityPBSLighting.cginc"
- sampler3D _DitherMaskLOD;
- struct v2f
- {
- V2F_SHADOW_CASTER;
- float2 customPack1 : TEXCOORD1;
- float3 worldPos : TEXCOORD2;
- float3 worldNormal : TEXCOORD3;
- half4 color : COLOR0;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- v2f vert( appdata_full v )
- {
- v2f o;
- UNITY_SETUP_INSTANCE_ID( v );
- UNITY_INITIALIZE_OUTPUT( v2f, o );
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
- UNITY_TRANSFER_INSTANCE_ID( v, o );
- Input customInputData;
- float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
- half3 worldNormal = UnityObjectToWorldNormal( v.normal );
- o.worldNormal = worldNormal;
- o.customPack1.xy = customInputData.uv_texcoord;
- o.customPack1.xy = v.texcoord;
- o.worldPos = worldPos;
- TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
- o.color = v.color;
- return o;
- }
- half4 frag( v2f IN
- #if !defined( CAN_SKIP_VPOS )
- , UNITY_VPOS_TYPE vpos : VPOS
- #endif
- ) : SV_Target
- {
- UNITY_SETUP_INSTANCE_ID( IN );
- Input surfIN;
- UNITY_INITIALIZE_OUTPUT( Input, surfIN );
- surfIN.uv_texcoord = IN.customPack1.xy;
- float3 worldPos = IN.worldPos;
- half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
- surfIN.worldPos = worldPos;
- surfIN.worldNormal = IN.worldNormal;
- surfIN.vertexColor = IN.color;
- SurfaceOutput o;
- UNITY_INITIALIZE_OUTPUT( SurfaceOutput, o )
- surf( surfIN, o );
- #if defined( CAN_SKIP_VPOS )
- float2 vpos = IN.pos;
- #endif
- half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
- clip( alphaRef - 0.01 );
- SHADOW_CASTER_FRAGMENT( IN )
- }
- ENDCG
- }
- }
- //FallBack "Diffuse"
- }
|