Shader "Universal Render Pipeline/Baked Lit" { Properties { [MainTexture] _BaseMap("Texture", 2D) = "white" {} [MainColor] _BaseColor("Color", Color) = (1, 1, 1, 1) _Cutoff("AlphaCutout", Range(0.0, 1.0)) = 0.5 _BumpMap("Normal Map", 2D) = "bump" {} // BlendMode _Surface("__surface", Float) = 0.0 _Blend("__mode", Float) = 0.0 _Cull("__cull", Float) = 2.0 [ToggleUI] _AlphaClip("__clip", Float) = 0.0 [HideInInspector] _BlendOp("__blendop", Float) = 0.0 [HideInInspector] _SrcBlend("__src", Float) = 1.0 [HideInInspector] _DstBlend("__dst", Float) = 0.0 [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0 [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0 [HideInInspector] _ZWrite("__zw", Float) = 1.0 [HideInInspector] _AlphaToMask("__alphaToMask", Float) = 0.0 [HideInInspector] _AddPrecomputedVelocity("_AddPrecomputedVelocity", Float) = 0.0 // Editmode props _QueueOffset("Queue offset", Float) = 0.0 [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} } SubShader { Tags { "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" } LOD 100 // ------------------------------------- // Render State Commands Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] ZWrite [_ZWrite] Cull [_Cull] Pass { Name "BakedLit" Tags { "LightMode" = "UniversalForwardOnly" } // ------------------------------------- // Render State Commands AlphaToMask[_AlphaToMask] HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex BakedLitForwardPassVertex #pragma fragment BakedLitForwardPassFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _NORMALMAP #pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _ALPHAMODULATE_ON // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" // ------------------------------------- // Unity defined keywords #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile_fog #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LOD_FADE_CROSSFADE //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl" // ------------------------------------- // Includes // Lighting include is needed because of GI #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitForwardPass.hlsl" ENDHLSL } Pass { Tags { "LightMode" = "DepthOnly" } // ------------------------------------- // Render State Commands ZWrite On ColorMask R HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ALPHATEST_ON // ------------------------------------- // Unity defined keywords #pragma multi_compile _ LOD_FADE_CROSSFADE //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl" // ------------------------------------- // Includes #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" ENDHLSL } // This pass is used when drawing to a _CameraNormalsTexture texture with the forward renderer or the depthNormal prepass with the deferred renderer. Pass { Name "DepthNormalsOnly" Tags { "LightMode" = "DepthNormalsOnly" } // ------------------------------------- // Render State Commands ZWrite On Cull[_Cull] HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex DepthNormalsVertex #pragma fragment DepthNormalsFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ _NORMALMAP #pragma shader_feature_local_fragment _ALPHATEST_ON // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant #pragma multi_compile _ LOD_FADE_CROSSFADE #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl" // ------------------------------------- // Includes #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitDepthNormalsPass.hlsl" ENDHLSL } // Same as DepthNormals pass, but used for deferred renderer and forwardOnly materials. Pass { Name "DepthNormalsOnly" Tags { "LightMode" = "DepthNormalsOnly" } // ------------------------------------- // Render State Commands ZWrite On Cull[_Cull] HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex DepthNormalsVertex #pragma fragment DepthNormalsFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ _NORMALMAP #pragma shader_feature_local_fragment _ALPHATEST_ON // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant #pragma multi_compile _ LOD_FADE_CROSSFADE #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" //-------------------------------------- // Defines #define BUMP_SCALE_NOT_SUPPORTED 1 //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl" // ------------------------------------- // Includes #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl" ENDHLSL } // This pass it not used during regular rendering, only for lightmap baking. Pass { Name "Meta" Tags { "LightMode" = "Meta" } // ------------------------------------- // Render State Commands Cull Off HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex UniversalVertexMeta #pragma fragment UniversalFragmentMetaUnlit // ------------------------------------- // Unity defined keywords #pragma shader_feature EDITOR_VISUALIZATION // ------------------------------------- // Includes #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitMetaPass.hlsl" ENDHLSL } Pass { Name "Universal2D" Tags { "LightMode" = "Universal2D" } // ------------------------------------- // Render State Commands Blend[_SrcBlend][_DstBlend] ZWrite[_ZWrite] Cull[_Cull] HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex vert #pragma fragment frag // ------------------------------------- // Material Keywords #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON // ------------------------------------- // Includes #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl" ENDHLSL } Pass { Name "MotionVectors" Tags { "LightMode" = "MotionVectors" } ColorMask RG HLSLPROGRAM #pragma shader_feature_local _ALPHATEST_ON #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ObjectMotionVectors.hlsl" ENDHLSL } Pass { Name "XRMotionVectors" Tags { "LightMode" = "XRMotionVectors" } ColorMask RGBA // Stencil write for obj motion pixels Stencil { WriteMask 1 Ref 1 Comp Always Pass Replace } HLSLPROGRAM #pragma shader_feature_local _ALPHATEST_ON #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY #define APLICATION_SPACE_WARP_MOTION 1 #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ObjectMotionVectors.hlsl" ENDHLSL } } FallBack "Universal Render Pipeline/Unlit" CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.BakedLitShader" }