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] _ZWrite("__zw", Float) = 1.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" "ShaderModel"="4.5"} LOD 100 Blend [_SrcBlend][_DstBlend] ZWrite [_ZWrite] Cull [_Cull] Pass { Name "BakedLit" Tags{ "LightMode" = "UniversalForwardOnly" } HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 // ------------------------------------- // 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 _ALPHAPREMULTIPLY_ON // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 // ------------------------------------- // Unity defined keywords #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fog #pragma multi_compile _ DEBUG_DISPLAY //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_O #pragma vertex BakedLitForwardPassVertex #pragma fragment BakedLitForwardPassFragment // 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"} ZWrite On ColorMask 0 HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 #pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local_fragment _ALPHATEST_ON //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #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"} ZWrite On Cull[_Cull] HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 #pragma vertex DepthNormalsVertex #pragma fragment DepthNormalsFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ _NORMALMAP #pragma shader_feature_local_fragment _ALPHATEST_ON // ------------------------------------- // Unity defined keywords #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #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"} ZWrite On Cull[_Cull] HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 #pragma vertex DepthNormalsVertex #pragma fragment DepthNormalsFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ _NORMALMAP #pragma shader_feature_local_fragment _ALPHATEST_ON // ------------------------------------- // Unity defined keywords #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant //-------------------------------------- // Defines #define BUMP_SCALE_NOT_SUPPORTED 1 //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #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"} Cull Off HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 #pragma vertex UniversalVertexMeta #pragma fragment UniversalFragmentMetaUnlit #pragma shader_feature EDITOR_VISUALIZATION #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" } Blend[_SrcBlend][_DstBlend] ZWrite[_ZWrite] Cull[_Cull] HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore #pragma target 4.5 #pragma vertex vert #pragma fragment frag #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl" ENDHLSL } } SubShader { Tags { "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel"="2.0"} LOD 100 Blend [_SrcBlend][_DstBlend] ZWrite [_ZWrite] Cull [_Cull] Pass { Name "BakedLit" Tags{ "LightMode" = "UniversalForwardOnly" } HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 #pragma target 2.0 // ------------------------------------- // 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 _ALPHAPREMULTIPLY_ON // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION // ------------------------------------- // Unity defined keywords #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fog #pragma multi_compile _ DEBUG_DISPLAY //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma vertex BakedLitForwardPassVertex #pragma fragment BakedLitForwardPassFragment // 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"} ZWrite On ColorMask 0 HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 #pragma target 2.0 //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local_fragment _ALPHATEST_ON #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 Pass { Name "DepthNormals" Tags{"LightMode" = "DepthNormals"} ZWrite On Cull[_Cull] HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 #pragma target 2.0 #pragma vertex DepthNormalsVertex #pragma fragment DepthNormalsFragment // ------------------------------------- // Material Keywords #pragma shader_feature_local _ _NORMALMAP #pragma shader_feature_local_fragment _ALPHATEST_ON //-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitDepthNormalsPass.hlsl" ENDHLSL } // This pass it not used during regular rendering, only for lightmap baking. Pass { Name "Meta" Tags{"LightMode" = "Meta"} Cull Off HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 #pragma target 2.0 #pragma vertex UniversalVertexMeta #pragma fragment UniversalFragmentMetaUnlit #pragma shader_feature EDITOR_VISUALIZATION #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" } Blend[_SrcBlend][_DstBlend] ZWrite[_ZWrite] Cull[_Cull] HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 #pragma target 2.0 #pragma vertex vert #pragma fragment frag #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl" ENDHLSL } } FallBack "Universal Render Pipeline/Unlit" CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.BakedLitShader" }