fresnel.shader 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. // Made with Amplify Shader Editor v1.9.1.3
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "uxr/fresnel"
  4. {
  5. Properties
  6. {
  7. _FR_Bias("FR_Bias", Float) = 0.09
  8. _FR_Power("FR_Power", Float) = 1
  9. _FR_Scale("FR_Scale", Float) = 1
  10. _Color0("Color 0", Color) = (1,0,0,0)
  11. _TextureSample0("Texture Sample 0", 2D) = "white" {}
  12. _Mask("Mask", 2D) = "white" {}
  13. _Color_Tweak("Color_Tweak", Float) = 7.08
  14. _Smoothness("Smoothness", Float) = 1.2
  15. _Mask_Tweak("Mask_Tweak", Float) = 0
  16. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  17. [HideInInspector] __dirty( "", Int ) = 1
  18. }
  19. SubShader
  20. {
  21. Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
  22. Cull Back
  23. CGINCLUDE
  24. #include "UnityPBSLighting.cginc"
  25. #include "Lighting.cginc"
  26. #pragma target 3.0
  27. struct Input
  28. {
  29. float2 uv_texcoord;
  30. float3 worldPos;
  31. float3 worldNormal;
  32. };
  33. uniform float _Color_Tweak;
  34. uniform sampler2D _TextureSample0;
  35. uniform float4 _TextureSample0_ST;
  36. uniform float4 _Color0;
  37. uniform float _FR_Bias;
  38. uniform float _FR_Scale;
  39. uniform float _FR_Power;
  40. uniform float _Smoothness;
  41. uniform sampler2D _Mask;
  42. uniform float4 _Mask_ST;
  43. uniform float _Mask_Tweak;
  44. void surf( Input i , inout SurfaceOutputStandard o )
  45. {
  46. float2 uv_TextureSample0 = i.uv_texcoord * _TextureSample0_ST.xy + _TextureSample0_ST.zw;
  47. float3 ase_worldPos = i.worldPos;
  48. float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
  49. float3 ase_worldNormal = i.worldNormal;
  50. float fresnelNdotV1 = dot( ase_worldNormal, ase_worldViewDir );
  51. float fresnelNode1 = ( _FR_Bias + _FR_Scale * pow( 1.0 - fresnelNdotV1, _FR_Power ) );
  52. float4 temp_output_9_0 = ( ( ( _Color_Tweak * tex2D( _TextureSample0, uv_TextureSample0 ) ) * _Color0 ) * fresnelNode1 );
  53. o.Albedo = temp_output_9_0.rgb;
  54. o.Emission = temp_output_9_0.rgb;
  55. o.Smoothness = _Smoothness;
  56. float2 uv_Mask = i.uv_texcoord * _Mask_ST.xy + _Mask_ST.zw;
  57. float4 tex2DNode12 = tex2D( _Mask, uv_Mask );
  58. float4 temp_output_13_0 = ( fresnelNode1 * ( tex2DNode12 * _Mask_Tweak ) );
  59. o.Alpha = temp_output_13_0.r;
  60. }
  61. ENDCG
  62. CGPROGRAM
  63. #pragma surface surf Standard alpha:fade keepalpha fullforwardshadows
  64. ENDCG
  65. Pass
  66. {
  67. Name "ShadowCaster"
  68. Tags{ "LightMode" = "ShadowCaster" }
  69. ZWrite On
  70. CGPROGRAM
  71. #pragma vertex vert
  72. #pragma fragment frag
  73. #pragma target 3.0
  74. #pragma multi_compile_shadowcaster
  75. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  76. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  77. #include "HLSLSupport.cginc"
  78. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  79. #define CAN_SKIP_VPOS
  80. #endif
  81. #include "UnityCG.cginc"
  82. #include "Lighting.cginc"
  83. #include "UnityPBSLighting.cginc"
  84. sampler3D _DitherMaskLOD;
  85. struct v2f
  86. {
  87. V2F_SHADOW_CASTER;
  88. float2 customPack1 : TEXCOORD1;
  89. float3 worldPos : TEXCOORD2;
  90. float3 worldNormal : TEXCOORD3;
  91. UNITY_VERTEX_INPUT_INSTANCE_ID
  92. UNITY_VERTEX_OUTPUT_STEREO
  93. };
  94. v2f vert( appdata_full v )
  95. {
  96. v2f o;
  97. UNITY_SETUP_INSTANCE_ID( v );
  98. UNITY_INITIALIZE_OUTPUT( v2f, o );
  99. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
  100. UNITY_TRANSFER_INSTANCE_ID( v, o );
  101. Input customInputData;
  102. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  103. half3 worldNormal = UnityObjectToWorldNormal( v.normal );
  104. o.worldNormal = worldNormal;
  105. o.customPack1.xy = customInputData.uv_texcoord;
  106. o.customPack1.xy = v.texcoord;
  107. o.worldPos = worldPos;
  108. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  109. return o;
  110. }
  111. half4 frag( v2f IN
  112. #if !defined( CAN_SKIP_VPOS )
  113. , UNITY_VPOS_TYPE vpos : VPOS
  114. #endif
  115. ) : SV_Target
  116. {
  117. UNITY_SETUP_INSTANCE_ID( IN );
  118. Input surfIN;
  119. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  120. surfIN.uv_texcoord = IN.customPack1.xy;
  121. float3 worldPos = IN.worldPos;
  122. half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  123. surfIN.worldPos = worldPos;
  124. surfIN.worldNormal = IN.worldNormal;
  125. SurfaceOutputStandard o;
  126. UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
  127. surf( surfIN, o );
  128. #if defined( CAN_SKIP_VPOS )
  129. float2 vpos = IN.pos;
  130. #endif
  131. half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
  132. clip( alphaRef - 0.01 );
  133. SHADOW_CASTER_FRAGMENT( IN )
  134. }
  135. ENDCG
  136. }
  137. }
  138. Fallback "Diffuse"
  139. CustomEditor "ASEMaterialInspector"
  140. }
  141. /*ASEBEGIN
  142. Version=19103
  143. Node;AmplifyShaderEditor.FresnelNode;1;-461.1667,183.5;Inherit;False;Standard;WorldNormal;ViewDir;False;False;5;0;FLOAT3;0,0,1;False;4;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;5;False;1;FLOAT;0
  144. Node;AmplifyShaderEditor.ColorNode;8;-657.4122,-47.83827;Inherit;False;Property;_Color0;Color 0;3;0;Create;True;0;0;0;False;0;False;1,0,0,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  145. Node;AmplifyShaderEditor.SamplerNode;10;-712.424,-268.9449;Inherit;True;Property;_TextureSample0;Texture Sample 0;4;0;Create;True;0;0;0;False;0;False;-1;None;3a9506e279e629849999a972f24deee9;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  146. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;179.975,-45.89525;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  147. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;11;-36.02693,-65.41463;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  148. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;14;-248.5748,-224.1413;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  149. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;457.1999,-20.6;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;Custom/fresnel;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;0;False;;0;False;;False;0;False;;0;False;;False;0;Transparent;0.5;True;True;0;False;Transparent;;Transparent;All;12;all;True;True;True;True;0;False;;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;2;15;10;25;False;0.5;True;2;5;False;;10;False;;0;0;False;;0;False;;0;False;;0;False;;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;True;Relative;0;;-1;-1;-1;-1;0;False;0;0;False;;-1;0;False;;0;0;0;False;0.1;False;;0;False;;False;16;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  150. Node;AmplifyShaderEditor.RangedFloatNode;2;-805.6322,103.0023;Inherit;False;Property;_FR_Bias;FR_Bias;0;0;Create;True;0;0;0;False;0;False;0.09;0.41;0;0;0;1;FLOAT;0
  151. Node;AmplifyShaderEditor.RangedFloatNode;4;-803.5637,191.227;Inherit;False;Property;_FR_Scale;FR_Scale;2;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
  152. Node;AmplifyShaderEditor.RangedFloatNode;3;-738.5637,267.227;Inherit;False;Property;_FR_Power;FR_Power;1;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
  153. Node;AmplifyShaderEditor.RangedFloatNode;17;189.5248,124.2587;Inherit;False;Property;_Smoothness;Smoothness;7;0;Create;True;0;0;0;False;0;False;1.2;2.37;0;0;0;1;FLOAT;0
  154. Node;AmplifyShaderEditor.RangedFloatNode;15;-424.0748,-326.8414;Inherit;False;Property;_Color_Tweak;Color_Tweak;6;0;Create;True;0;0;0;False;0;False;7.08;1.23;0;0;0;1;FLOAT;0
  155. Node;AmplifyShaderEditor.SimpleAddOpNode;16;7.024891,167.1586;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  156. Node;AmplifyShaderEditor.LerpOp;18;261.325,370.2586;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
  157. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;13;25.42533,381.4404;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  158. Node;AmplifyShaderEditor.SamplerNode;12;-588.5569,378.2718;Inherit;True;Property;_Mask;Mask;5;0;Create;True;0;0;0;False;0;False;-1;None;8979a5e91811b9b409f7e87d63a2dfbc;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  159. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;20;-182.0657,506.4586;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  160. Node;AmplifyShaderEditor.RangedFloatNode;19;-442.0656,607.4586;Inherit;False;Property;_Mask_Tweak;Mask_Tweak;8;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  161. WireConnection;1;1;2;0
  162. WireConnection;1;2;4;0
  163. WireConnection;1;3;3;0
  164. WireConnection;9;0;11;0
  165. WireConnection;9;1;1;0
  166. WireConnection;11;0;14;0
  167. WireConnection;11;1;8;0
  168. WireConnection;14;0;15;0
  169. WireConnection;14;1;10;0
  170. WireConnection;0;0;9;0
  171. WireConnection;0;2;9;0
  172. WireConnection;0;4;17;0
  173. WireConnection;0;9;13;0
  174. WireConnection;16;0;1;0
  175. WireConnection;16;1;12;0
  176. WireConnection;18;0;1;0
  177. WireConnection;18;1;13;0
  178. WireConnection;13;0;1;0
  179. WireConnection;13;1;20;0
  180. WireConnection;20;0;12;0
  181. WireConnection;20;1;19;0
  182. ASEEND*/
  183. //CHKSM=D0A7272E49A0329AE9449E6F7E7A882F6D901FF3