Advertisement
xxzxcuzxmxe

Shader

Sep 17th, 2021
839
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "Universal Render Pipeline/Lit"
  2. {
  3.     Properties
  4.     {
  5.         // Specular vs Metallic workflow
  6.         [HideInInspector] _WorkflowMode("WorkflowMode", Float) = 1.0
  7.  
  8.         [MainTexture] _BaseMap("Albedo", 2D) = "white" {}
  9.         [MainColor] _BaseColor("Color", Color) = (1,1,1,1)
  10.  
  11.         _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
  12.  
  13.         _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5
  14.         _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
  15.         _SmoothnessTextureChannel("Smoothness texture channel", Float) = 0
  16.  
  17.         _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
  18.         _MetallicGlossMap("Metallic", 2D) = "white" {}
  19.  
  20.         _SpecColor("Specular", Color) = (0.2, 0.2, 0.2)
  21.         _SpecGlossMap("Specular", 2D) = "white" {}
  22.  
  23.         [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
  24.         [ToggleOff] _EnvironmentReflections("Environment Reflections", Float) = 1.0
  25.  
  26.         _BumpScale("Scale", Float) = 1.0
  27.         _BumpMap("Normal Map", 2D) = "bump" {}
  28.  
  29.         _Parallax("Scale", Range(0.005, 0.08)) = 0.005
  30.         _ParallaxMap("Height Map", 2D) = "black" {}
  31.  
  32.         _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
  33.         _OcclusionMap("Occlusion", 2D) = "white" {}
  34.  
  35.         [HDR] _EmissionColor("Color", Color) = (0,0,0)
  36.         _EmissionMap("Emission", 2D) = "white" {}
  37.  
  38.         _DetailMask("Detail Mask", 2D) = "white" {}
  39.         _DetailAlbedoMapScale("Scale", Range(0.0, 2.0)) = 1.0
  40.         _DetailAlbedoMap("Detail Albedo x2", 2D) = "linearGrey" {}
  41.         _DetailNormalMapScale("Scale", Range(0.0, 2.0)) = 1.0
  42.         [Normal] _DetailNormalMap("Normal Map", 2D) = "bump" {}
  43.  
  44.         // SRP batching compatibility for Clear Coat (Not used in Lit)
  45.         [HideInInspector] _ClearCoatMask("_ClearCoatMask", Float) = 0.0
  46.         [HideInInspector] _ClearCoatSmoothness("_ClearCoatSmoothness", Float) = 0.0
  47.  
  48.         // Blending state
  49.         [HideInInspector] _Surface("__surface", Float) = 0.0
  50.         [HideInInspector] _Blend("__blend", Float) = 0.0
  51.         [HideInInspector] _AlphaClip("__clip", Float) = 0.0
  52.         [HideInInspector] _SrcBlend("__src", Float) = 1.0
  53.         [HideInInspector] _DstBlend("__dst", Float) = 0.0
  54.         [HideInInspector] _ZWrite("__zw", Float) = 1.0
  55.         [HideInInspector] _Cull("__cull", Float) = 2.0
  56.  
  57.         _ReceiveShadows("Receive Shadows", Float) = 1.0
  58.         // Editmode props
  59.         [HideInInspector] _QueueOffset("Queue offset", Float) = 0.0
  60.  
  61.         // ObsoleteProperties
  62.         [HideInInspector] _MainTex("BaseMap", 2D) = "white" {}
  63.         [HideInInspector] _Color("Base Color", Color) = (1, 1, 1, 1)
  64.         [HideInInspector] _GlossMapScale("Smoothness", Float) = 0.0
  65.         [HideInInspector] _Glossiness("Smoothness", Float) = 0.0
  66.         [HideInInspector] _GlossyReflections("EnvironmentReflections", Float) = 0.0
  67.  
  68.         [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  69.         [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  70.         [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  71.     }
  72.  
  73.     SubShader
  74.     {
  75.         // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings
  76.         // this Subshader will fail. One can add a subshader below or fallback to Standard built-in to make this
  77.         // material work with both Universal Render Pipeline and Builtin Unity Pipeline
  78.         Tags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "Lit" "IgnoreProjector" = "True" "ShaderModel"="4.5"}
  79.         LOD 300
  80.  
  81.         // ------------------------------------------------------------------
  82.         //  Forward pass. Shades all light in a single pass. GI + emission + Fog
  83.         Pass
  84.         {
  85.             // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  86.             // no LightMode tag are also rendered by Universal Render Pipeline
  87.             Name "ForwardLit"
  88.             Tags{"LightMode" = "UniversalForward"}
  89.  
  90.             Blend[_SrcBlend][_DstBlend]
  91.             ZWrite[_ZWrite]
  92.             Cull[_Cull]
  93.  
  94.             HLSLPROGRAM
  95.             #pragma exclude_renderers gles gles3 glcore
  96.             #pragma target 4.5
  97.  
  98.             // -------------------------------------
  99.             // Material Keywords
  100.             #pragma shader_feature_local _NORMALMAP
  101.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  102.             #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  103.             #pragma shader_feature_local_fragment _EMISSION
  104.             #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
  105.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  106.             #pragma shader_feature_local_fragment _OCCLUSIONMAP
  107.             #pragma shader_feature_local _PARALLAXMAP
  108.             #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
  109.             #pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
  110.             #pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
  111.             #pragma shader_feature_local_fragment _SPECULAR_SETUP
  112.             #pragma shader_feature_local _RECEIVE_SHADOWS_OFF
  113.  
  114.             // -------------------------------------
  115.             // Universal Pipeline keywords
  116.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  117.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  118.             #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  119.             #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
  120.             #pragma multi_compile_fragment _ _SHADOWS_SOFT
  121.             #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  122.             #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  123.             #pragma multi_compile _ SHADOWS_SHADOWMASK
  124.  
  125.             // -------------------------------------
  126.             // Unity defined keywords
  127.             #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  128.             #pragma multi_compile _ LIGHTMAP_ON
  129.             #pragma multi_compile_fog
  130.  
  131.             //--------------------------------------
  132.             // GPU Instancing
  133.             #pragma multi_compile_instancing
  134.             #pragma multi_compile _ DOTS_INSTANCING_ON
  135.  
  136.             #pragma vertex LitPassVertex
  137.             #pragma fragment LitPassFragment
  138.  
  139.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  140.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"
  141.             ENDHLSL
  142.         }
  143.  
  144.         Pass
  145.         {
  146.             Name "ShadowCaster"
  147.             Tags{"LightMode" = "ShadowCaster"}
  148.  
  149.             ZWrite On
  150.             ZTest LEqual
  151.             ColorMask 0
  152.             Cull[_Cull]
  153.  
  154.             HLSLPROGRAM
  155.             #pragma exclude_renderers gles gles3 glcore
  156.             #pragma target 4.5
  157.  
  158.             // -------------------------------------
  159.             // Material Keywords
  160.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  161.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  162.  
  163.             //--------------------------------------
  164.             // GPU Instancing
  165.             #pragma multi_compile_instancing
  166.             #pragma multi_compile _ DOTS_INSTANCING_ON
  167.  
  168.             #pragma vertex ShadowPassVertex
  169.             #pragma fragment ShadowPassFragment
  170.  
  171.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  172.             #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"
  173.             ENDHLSL
  174.         }
  175.  
  176.         Pass
  177.         {
  178.             // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  179.             // no LightMode tag are also rendered by Universal Render Pipeline
  180.             Name "GBuffer"
  181.             Tags{"LightMode" = "UniversalGBuffer"}
  182.  
  183.             ZWrite[_ZWrite]
  184.             ZTest LEqual
  185.             Cull[_Cull]
  186.  
  187.             HLSLPROGRAM
  188.             #pragma exclude_renderers gles gles3 glcore
  189.             #pragma target 4.5
  190.  
  191.             // -------------------------------------
  192.             // Material Keywords
  193.             #pragma shader_feature_local _NORMALMAP
  194.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  195.             //#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  196.             #pragma shader_feature_local_fragment _EMISSION
  197.             #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
  198.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  199.             #pragma shader_feature_local_fragment _OCCLUSIONMAP
  200.             #pragma shader_feature_local _PARALLAXMAP
  201.             #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
  202.  
  203.             #pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
  204.             #pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
  205.             #pragma shader_feature_local_fragment _SPECULAR_SETUP
  206.             #pragma shader_feature_local _RECEIVE_SHADOWS_OFF
  207.  
  208.             // -------------------------------------
  209.             // Universal Pipeline keywords
  210.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  211.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  212.             //#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  213.             //#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
  214.             #pragma multi_compile _ _SHADOWS_SOFT
  215.             #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
  216.  
  217.             // -------------------------------------
  218.             // Unity defined keywords
  219.             #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  220.             #pragma multi_compile _ LIGHTMAP_ON
  221.             #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
  222.  
  223.             //--------------------------------------
  224.             // GPU Instancing
  225.             #pragma multi_compile_instancing
  226.             #pragma multi_compile _ DOTS_INSTANCING_ON
  227.  
  228.             #pragma vertex LitGBufferPassVertex
  229.             #pragma fragment LitGBufferPassFragment
  230.  
  231.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  232.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl"
  233.             ENDHLSL
  234.         }
  235.  
  236.         Pass
  237.         {
  238.             Name "DepthOnly"
  239.             Tags{"LightMode" = "DepthOnly"}
  240.  
  241.             ZWrite On
  242.             ColorMask 0
  243.             Cull[_Cull]
  244.  
  245.             HLSLPROGRAM
  246.             #pragma exclude_renderers gles gles3 glcore
  247.             #pragma target 4.5
  248.  
  249.             #pragma vertex DepthOnlyVertex
  250.             #pragma fragment DepthOnlyFragment
  251.  
  252.             // -------------------------------------
  253.             // Material Keywords
  254.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  255.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  256.  
  257.             //--------------------------------------
  258.             // GPU Instancing
  259.             #pragma multi_compile_instancing
  260.             #pragma multi_compile _ DOTS_INSTANCING_ON
  261.  
  262.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  263.             #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
  264.             ENDHLSL
  265.         }
  266.  
  267.         // This pass is used when drawing to a _CameraNormalsTexture texture
  268.         Pass
  269.         {
  270.             Name "DepthNormals"
  271.             Tags{"LightMode" = "DepthNormals"}
  272.  
  273.             ZWrite On
  274.             Cull[_Cull]
  275.  
  276.             HLSLPROGRAM
  277.             #pragma exclude_renderers gles gles3 glcore
  278.             #pragma target 4.5
  279.  
  280.             #pragma vertex DepthNormalsVertex
  281.             #pragma fragment DepthNormalsFragment
  282.  
  283.             // -------------------------------------
  284.             // Material Keywords
  285.             #pragma shader_feature_local _NORMALMAP
  286.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  287.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  288.  
  289.             //--------------------------------------
  290.             // GPU Instancing
  291.             #pragma multi_compile_instancing
  292.             #pragma multi_compile _ DOTS_INSTANCING_ON
  293.  
  294.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  295.             #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl"
  296.             ENDHLSL
  297.         }
  298.  
  299.         // This pass it not used during regular rendering, only for lightmap baking.
  300.         Pass
  301.         {
  302.             Name "Meta"
  303.             Tags{"LightMode" = "Meta"}
  304.  
  305.             Cull Off
  306.  
  307.             HLSLPROGRAM
  308.             #pragma exclude_renderers gles gles3 glcore
  309.             #pragma target 4.5
  310.  
  311.             #pragma vertex UniversalVertexMeta
  312.             #pragma fragment UniversalFragmentMeta
  313.  
  314.             #pragma shader_feature_local_fragment _SPECULAR_SETUP
  315.             #pragma shader_feature_local_fragment _EMISSION
  316.             #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
  317.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  318.             #pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  319.             #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
  320.  
  321.             #pragma shader_feature_local_fragment _SPECGLOSSMAP
  322.  
  323.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  324.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl"
  325.  
  326.             ENDHLSL
  327.         }
  328.         Pass
  329.         {
  330.             Name "Universal2D"
  331.             Tags{ "LightMode" = "Universal2D" }
  332.  
  333.             Blend[_SrcBlend][_DstBlend]
  334.             ZWrite[_ZWrite]
  335.             Cull[_Cull]
  336.  
  337.             HLSLPROGRAM
  338.             #pragma exclude_renderers gles gles3 glcore
  339.             #pragma target 4.5
  340.  
  341.             #pragma vertex vert
  342.             #pragma fragment frag
  343.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  344.             #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  345.  
  346.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  347.             #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"
  348.             ENDHLSL
  349.         }
  350.     }
  351.  
  352.     SubShader
  353.     {
  354.         // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings
  355.         // this Subshader will fail. One can add a subshader below or fallback to Standard built-in to make this
  356.         // material work with both Universal Render Pipeline and Builtin Unity Pipeline
  357.         Tags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "Lit" "IgnoreProjector" = "True" "ShaderModel"="2.0"}
  358.         LOD 300
  359.  
  360.         // ------------------------------------------------------------------
  361.         //  Forward pass. Shades all light in a single pass. GI + emission + Fog
  362.         Pass
  363.         {
  364.             // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  365.             // no LightMode tag are also rendered by Universal Render Pipeline
  366.             Name "ForwardLit"
  367.             Tags{"LightMode" = "UniversalForward"}
  368.  
  369.             Blend[_SrcBlend][_DstBlend]
  370.             ZWrite[_ZWrite]
  371.             Cull[_Cull]
  372.  
  373.             HLSLPROGRAM
  374.             #pragma only_renderers gles gles3 glcore d3d11
  375.             #pragma target 2.0
  376.  
  377.             //--------------------------------------
  378.             // GPU Instancing
  379.             #pragma multi_compile_instancing
  380.  
  381.             // -------------------------------------
  382.             // Material Keywords
  383.             #pragma shader_feature_local _NORMALMAP
  384.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  385.             #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  386.             #pragma shader_feature_local_fragment _EMISSION
  387.             #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
  388.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  389.             #pragma shader_feature_local_fragment _OCCLUSIONMAP
  390.             #pragma shader_feature_local _PARALLAXMAP
  391.             #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
  392.  
  393.             #pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
  394.             #pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
  395.             #pragma shader_feature_local_fragment _SPECULAR_SETUP
  396.             #pragma shader_feature_local _RECEIVE_SHADOWS_OFF
  397.  
  398.             // -------------------------------------
  399.             // Universal Pipeline keywords
  400.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  401.             #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  402.             #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  403.             #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
  404.             #pragma multi_compile_fragment _ _SHADOWS_SOFT
  405.             #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  406.             #pragma multi_compile _ SHADOWS_SHADOWMASK
  407.             #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  408.  
  409.             // -------------------------------------
  410.             // Unity defined keywords
  411.             #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  412.             #pragma multi_compile _ LIGHTMAP_ON
  413.             #pragma multi_compile_fog
  414.  
  415.             #pragma vertex LitPassVertex
  416.             #pragma fragment LitPassFragment
  417.  
  418.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  419.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"
  420.             ENDHLSL
  421.         }
  422.  
  423.         Pass
  424.         {
  425.             Name "ShadowCaster"
  426.             Tags{"LightMode" = "ShadowCaster"}
  427.  
  428.             ZWrite On
  429.             ZTest LEqual
  430.             ColorMask 0
  431.             Cull[_Cull]
  432.  
  433.             HLSLPROGRAM
  434.             #pragma only_renderers gles gles3 glcore d3d11
  435.             #pragma target 2.0
  436.  
  437.             //--------------------------------------
  438.             // GPU Instancing
  439.             #pragma multi_compile_instancing
  440.  
  441.             // -------------------------------------
  442.             // Material Keywords
  443.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  444.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  445.  
  446.             #pragma vertex ShadowPassVertex
  447.             #pragma fragment ShadowPassFragment
  448.  
  449.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  450.             #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"
  451.             ENDHLSL
  452.         }
  453.  
  454.         Pass
  455.         {
  456.             Name "DepthOnly"
  457.             Tags{"LightMode" = "DepthOnly"}
  458.  
  459.             ZWrite On
  460.             ColorMask 0
  461.             Cull[_Cull]
  462.  
  463.             HLSLPROGRAM
  464.             #pragma only_renderers gles gles3 glcore d3d11
  465.             #pragma target 2.0
  466.  
  467.             //--------------------------------------
  468.             // GPU Instancing
  469.             #pragma multi_compile_instancing
  470.  
  471.             #pragma vertex DepthOnlyVertex
  472.             #pragma fragment DepthOnlyFragment
  473.  
  474.             // -------------------------------------
  475.             // Material Keywords
  476.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  477.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  478.  
  479.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  480.             #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
  481.             ENDHLSL
  482.         }
  483.  
  484.         // This pass is used when drawing to a _CameraNormalsTexture texture
  485.         Pass
  486.         {
  487.             Name "DepthNormals"
  488.             Tags{"LightMode" = "DepthNormals"}
  489.  
  490.             ZWrite On
  491.             Cull[_Cull]
  492.  
  493.             HLSLPROGRAM
  494.             #pragma only_renderers gles gles3 glcore d3d11
  495.             #pragma target 2.0
  496.  
  497.             #pragma vertex DepthNormalsVertex
  498.             #pragma fragment DepthNormalsFragment
  499.  
  500.             // -------------------------------------
  501.             // Material Keywords
  502.             #pragma shader_feature_local _NORMALMAP
  503.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  504.             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  505.  
  506.             //--------------------------------------
  507.             // GPU Instancing
  508.             #pragma multi_compile_instancing
  509.  
  510.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  511.             #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl"
  512.             ENDHLSL
  513.         }
  514.  
  515.         // This pass it not used during regular rendering, only for lightmap baking.
  516.         Pass
  517.         {
  518.             Name "Meta"
  519.             Tags{"LightMode" = "Meta"}
  520.  
  521.             Cull Off
  522.  
  523.             HLSLPROGRAM
  524.             #pragma only_renderers gles gles3 glcore d3d11
  525.             #pragma target 2.0
  526.  
  527.             #pragma vertex UniversalVertexMeta
  528.             #pragma fragment UniversalFragmentMeta
  529.  
  530.             #pragma shader_feature_local_fragment _SPECULAR_SETUP
  531.             #pragma shader_feature_local_fragment _EMISSION
  532.             #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
  533.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  534.             #pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  535.             #pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
  536.  
  537.             #pragma shader_feature_local_fragment _SPECGLOSSMAP
  538.  
  539.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  540.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl"
  541.  
  542.             ENDHLSL
  543.         }
  544.         Pass
  545.         {
  546.             Name "Universal2D"
  547.             Tags{ "LightMode" = "Universal2D" }
  548.  
  549.             Blend[_SrcBlend][_DstBlend]
  550.             ZWrite[_ZWrite]
  551.             Cull[_Cull]
  552.  
  553.             HLSLPROGRAM
  554.             #pragma only_renderers gles gles3 glcore d3d11
  555.             #pragma target 2.0
  556.  
  557.             #pragma vertex vert
  558.             #pragma fragment frag
  559.             #pragma shader_feature_local_fragment _ALPHATEST_ON
  560.             #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  561.  
  562.             #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
  563.             #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"
  564.             ENDHLSL
  565.         }
  566.     }
  567.  
  568.     FallBack "Hidden/Universal Render Pipeline/FallbackError"
  569.     CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.LitShader"
  570. }
  571.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement