Shader "NiloToon/Environment/Reflection Demo" { Properties { [Header(Base Properties)] _BaseMap ("Base Map", 2D) = "white" {} _BaseColor ("Base Color", Color) = (1, 1, 1, 1) [Header(Surface Properties)] _Metallic ("Metallic", Range(0, 1)) = 0.5 _Smoothness ("Smoothness", Range(0, 1)) = 0.5 [Header(Normal)] _BumpMap ("Normal Map", 2D) = "bump" {} _BumpScale ("Normal Scale", Float) = 1.0 [Header(Planar Reflection)] [Toggle] _EnablePlanarReflection ("Enable Planar Reflection", Float) = 1 _ReflectionIntensity ("Reflection Intensity", Range(0, 2)) = 1.0 _ReflectionTintColor ("Reflection Tint", Color) = (1, 1, 1, 1) _ReflectionFresnel ("Fresnel Power", Range(0.1, 5)) = 1.5 _ReflectionDistortion ("Distortion", Range(0, 0.1)) = 0.02 _ReflectionDepthFade ("Depth Fade", Range(0, 10)) = 1.0 _ReflectionBlurRadius ("Blur Radius", Range(0, 2)) = 0.5 [Header(Advanced)] _Cutoff ("Alpha Cutoff", Range(0, 1)) = 0.5 // Unity Standard Properties _Surface ("Surface Type", Float) = 0.0 } SubShader { Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "Queue" = "Geometry" } LOD 300 Pass { Name "ForwardLit" Tags { "LightMode" = "UniversalForward" } HLSLPROGRAM #pragma target 3.0 // Universal Pipeline keywords #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _SHADOWS_SOFT #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile_fog // Material keywords #pragma shader_feature_local _NORMALMAP #pragma shader_feature_local _METALLICSPECGLOSSMAP #pragma shader_feature_local _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A #pragma shader_feature_local _OCCLUSIONMAP #pragma shader_feature_local _EMISSION #pragma shader_feature_local _ALPHATEST_ON #pragma shader_feature_local _ALPHAPREMULTIPLY_ON #pragma shader_feature_local _RECEIVE_SHADOWS_OFF // Custom keywords for reflection #pragma shader_feature_local _ENABLE_PLANAR_REFLECTION #pragma shader_feature_local _REFLECTION_DEPTH_FADE // Instancing #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma vertex LitPassVertex #pragma fragment LitPassFragment // Include URP Lit shaders (NiloToon extension will be applied globally) #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl" ENDHLSL } // Shadow Caster Pass Pass { Name "ShadowCaster" Tags { "LightMode" = "ShadowCaster" } ZWrite On ZTest LEqual ColorMask 0 Cull[_Cull] HLSLPROGRAM #pragma target 2.0 #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma vertex ShadowPassVertex #pragma fragment ShadowPassFragment #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl" ENDHLSL } // Depth Only Pass Pass { Name "DepthOnly" Tags { "LightMode" = "DepthOnly" } ZWrite On ColorMask 0 Cull[_Cull] HLSLPROGRAM #pragma target 2.0 #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" ENDHLSL } // Meta Pass (for Lightmapping) Pass { Name "Meta" Tags { "LightMode" = "Meta" } Cull Off HLSLPROGRAM #pragma target 2.0 #pragma shader_feature EDITOR_VISUALIZATION #pragma shader_feature_local_fragment _SPECULAR_SETUP #pragma shader_feature_local_fragment _EMISSION #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED #pragma vertex UniversalVertexMeta #pragma fragment UniversalFragmentMeta #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl" ENDHLSL } } CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.LitShader" Fallback "Hidden/Universal Render Pipeline/FallbackError" }