Shader "HDRP/LayeredLit" { Properties { // Following set of parameters represent the parameters node inside the MaterialGraph. // They are use to fill a SurfaceData. With a MaterialGraph this should not exist. // All the following properties are filled by the referenced lit shader. // Reminder. Color here are in linear but the UI (color picker) do the conversion sRGB to linear _BaseColor0("BaseColor0", Color) = (1, 1, 1, 1) _BaseColor1("BaseColor1", Color) = (1, 1, 1, 1) _BaseColor2("BaseColor2", Color) = (1, 1, 1, 1) _BaseColor3("BaseColor3", Color) = (1, 1, 1, 1) _BaseColorMap0("BaseColorMap0", 2D) = "white" {} _BaseColorMap1("BaseColorMap1", 2D) = "white" {} _BaseColorMap2("BaseColorMap2", 2D) = "white" {} _BaseColorMap3("BaseColorMap3", 2D) = "white" {} _Metallic0("Metallic0", Range(0.0, 1.0)) = 0 _Metallic1("Metallic1", Range(0.0, 1.0)) = 0 _Metallic2("Metallic2", Range(0.0, 1.0)) = 0 _Metallic3("Metallic3", Range(0.0, 1.0)) = 0 _MetallicRemapMin0("MetallicRemapMin0", Range(0.0, 1.0)) = 0.0 _MetallicRemapMin1("MetallicRemapMin1", Range(0.0, 1.0)) = 0.0 _MetallicRemapMin2("MetallicRemapMin2", Range(0.0, 1.0)) = 0.0 _MetallicRemapMin3("MetallicRemapMin3", Range(0.0, 1.0)) = 0.0 _MetallicRemapMax0("MetallicRemapMax0", Range(0.0, 1.0)) = 1.0 _MetallicRemapMax1("MetallicRemapMax1", Range(0.0, 1.0)) = 1.0 _MetallicRemapMax2("MetallicRemapMax2", Range(0.0, 1.0)) = 1.0 _MetallicRemapMax3("MetallicRemapMax3", Range(0.0, 1.0)) = 1.0 _Smoothness0("Smoothness0", Range(0.0, 1.0)) = 0.5 _Smoothness1("Smoothness1", Range(0.0, 1.0)) = 0.5 _Smoothness2("Smoothness2", Range(0.0, 1.0)) = 0.5 _Smoothness3("Smoothness3", Range(0.0, 1.0)) = 0.5 _SmoothnessRemapMin0("SmoothnessRemapMin0", Range(0.0, 1.0)) = 0.0 _SmoothnessRemapMin1("SmoothnessRemapMin1", Range(0.0, 1.0)) = 0.0 _SmoothnessRemapMin2("SmoothnessRemapMin2", Range(0.0, 1.0)) = 0.0 _SmoothnessRemapMin3("SmoothnessRemapMin3", Range(0.0, 1.0)) = 0.0 _SmoothnessRemapMax0("SmoothnessRemapMax0", Range(0.0, 1.0)) = 1.0 _SmoothnessRemapMax1("SmoothnessRemapMax1", Range(0.0, 1.0)) = 1.0 _SmoothnessRemapMax2("SmoothnessRemapMax2", Range(0.0, 1.0)) = 1.0 _SmoothnessRemapMax3("SmoothnessRemapMax3", Range(0.0, 1.0)) = 1.0 _AlphaRemapMin0("AlphaRemapMin0", Range(0.0, 1.0)) = 0.0 _AlphaRemapMin1("AlphaRemapMin1", Range(0.0, 1.0)) = 0.0 _AlphaRemapMin2("AlphaRemapMin2", Range(0.0, 1.0)) = 0.0 _AlphaRemapMin3("AlphaRemapMin3", Range(0.0, 1.0)) = 0.0 _AlphaRemapMax0("AlphaRemapMax0", Range(0.0, 1.0)) = 1.0 _AlphaRemapMax1("AlphaRemapMax1", Range(0.0, 1.0)) = 1.0 _AlphaRemapMax2("AlphaRemapMax2", Range(0.0, 1.0)) = 1.0 _AlphaRemapMax3("AlphaRemapMax3", Range(0.0, 1.0)) = 1.0 _AORemapMin0("AORemapMin0", Range(0.0, 1.0)) = 0.0 _AORemapMin1("AORemapMin1", Range(0.0, 1.0)) = 0.0 _AORemapMin2("AORemapMin2", Range(0.0, 1.0)) = 0.0 _AORemapMin3("AORemapMin3", Range(0.0, 1.0)) = 0.0 _AORemapMax0("AORemapMax0", Range(0.0, 1.0)) = 1.0 _AORemapMax1("AORemapMax1", Range(0.0, 1.0)) = 1.0 _AORemapMax2("AORemapMax2", Range(0.0, 1.0)) = 1.0 _AORemapMax3("AORemapMax3", Range(0.0, 1.0)) = 1.0 _MaskMap0("MaskMap0", 2D) = "white" {} _MaskMap1("MaskMap1", 2D) = "white" {} _MaskMap2("MaskMap2", 2D) = "white" {} _MaskMap3("MaskMap3", 2D) = "white" {} _NormalMap0("NormalMap0", 2D) = "bump" {} _NormalMap1("NormalMap1", 2D) = "bump" {} _NormalMap2("NormalMap2", 2D) = "bump" {} _NormalMap3("NormalMap3", 2D) = "bump" {} _NormalMapOS0("NormalMapOS0", 2D) = "white" {} _NormalMapOS1("NormalMapOS1", 2D) = "white" {} _NormalMapOS2("NormalMapOS2", 2D) = "white" {} _NormalMapOS3("NormalMapOS3", 2D) = "white" {} _NormalScale0("_NormalScale0", Range(0.0, 2.0)) = 1 _NormalScale1("_NormalScale1", Range(0.0, 2.0)) = 1 _NormalScale2("_NormalScale2", Range(0.0, 2.0)) = 1 _NormalScale3("_NormalScale3", Range(0.0, 2.0)) = 1 _BentNormalMap0("BentNormalMap0", 2D) = "bump" {} _BentNormalMap1("BentNormalMap1", 2D) = "bump" {} _BentNormalMap2("BentNormalMap2", 2D) = "bump" {} _BentNormalMap3("BentNormalMap3", 2D) = "bump" {} _BentNormalMapOS0("BentNormalMapOS0", 2D) = "white" {} _BentNormalMapOS1("BentNormalMapOS1", 2D) = "white" {} _BentNormalMapOS2("BentNormalMapOS2", 2D) = "white" {} _BentNormalMapOS3("BentNormalMapOS3", 2D) = "white" {} _HeightMap0("HeightMap0", 2D) = "black" {} _HeightMap1("HeightMap1", 2D) = "black" {} _HeightMap2("HeightMap2", 2D) = "black" {} _HeightMap3("HeightMap3", 2D) = "black" {} // Caution: Default value of _HeightAmplitude must be (_HeightMax - _HeightMin) * 0.01 // These two properties are computed from exposed properties by the UI block and are separated so we don't lose information by changing displacement mode in the UI block [HideInInspector] _HeightAmplitude0("Height Scale0", Float) = 0.02 [HideInInspector] _HeightAmplitude1("Height Scale1", Float) = 0.02 [HideInInspector] _HeightAmplitude2("Height Scale2", Float) = 0.02 [HideInInspector] _HeightAmplitude3("Height Scale3", Float) = 0.02 [HideInInspector] _HeightCenter0("Height Bias0", Range(0.0, 1.0)) = 0.5 [HideInInspector] _HeightCenter1("Height Bias1", Range(0.0, 1.0)) = 0.5 [HideInInspector] _HeightCenter2("Height Bias2", Range(0.0, 1.0)) = 0.5 [HideInInspector] _HeightCenter3("Height Bias3", Range(0.0, 1.0)) = 0.5 [Enum(MinMax, 0, Amplitude, 1)] _HeightMapParametrization0("Heightmap Parametrization0", Int) = 0 [Enum(MinMax, 0, Amplitude, 1)] _HeightMapParametrization1("Heightmap Parametrization1", Int) = 0 [Enum(MinMax, 0, Amplitude, 1)] _HeightMapParametrization2("Heightmap Parametrization2", Int) = 0 [Enum(MinMax, 0, Amplitude, 1)] _HeightMapParametrization3("Heightmap Parametrization3", Int) = 0 // These parameters are for vertex displacement/Tessellation _HeightOffset0("Height Offset0", Float) = 0 _HeightOffset1("Height Offset1", Float) = 0 _HeightOffset2("Height Offset2", Float) = 0 _HeightOffset3("Height Offset3", Float) = 0 // MinMax mode _HeightMin0("Height Min0", Float) = -1 _HeightMin1("Height Min1", Float) = -1 _HeightMin2("Height Min2", Float) = -1 _HeightMin3("Height Min3", Float) = -1 _HeightMax0("Height Max0", Float) = 1 _HeightMax1("Height Max1", Float) = 1 _HeightMax2("Height Max2", Float) = 1 _HeightMax3("Height Max3", Float) = 1 // Amplitude mode _HeightTessAmplitude0("Amplitude0", Float) = 2.0 // in Centimeters _HeightTessAmplitude1("Amplitude1", Float) = 2.0 // in Centimeters _HeightTessAmplitude2("Amplitude2", Float) = 2.0 // in Centimeters _HeightTessAmplitude3("Amplitude3", Float) = 2.0 // in Centimeters _HeightTessCenter0("Height Bias0", Range(0.0, 1.0)) = 0.5 _HeightTessCenter1("Height Bias1", Range(0.0, 1.0)) = 0.5 _HeightTessCenter2("Height Bias2", Range(0.0, 1.0)) = 0.5 _HeightTessCenter3("Height Bias3", Range(0.0, 1.0)) = 0.5 // These parameters are for pixel displacement _HeightPoMAmplitude0("Height Amplitude0", Float) = 2.0 // In centimeters _HeightPoMAmplitude1("Height Amplitude1", Float) = 2.0 // In centimeters _HeightPoMAmplitude2("Height Amplitude2", Float) = 2.0 // In centimeters _HeightPoMAmplitude3("Height Amplitude3", Float) = 2.0 // In centimeters _DetailMap0("DetailMap0", 2D) = "linearGrey" {} _DetailMap1("DetailMap1", 2D) = "linearGrey" {} _DetailMap2("DetailMap2", 2D) = "linearGrey" {} _DetailMap3("DetailMap3", 2D) = "linearGrey" {} _DetailAlbedoScale0("_DetailAlbedoScale0", Range(0.0, 2.0)) = 1 _DetailAlbedoScale1("_DetailAlbedoScale1", Range(0.0, 2.0)) = 1 _DetailAlbedoScale2("_DetailAlbedoScale2", Range(0.0, 2.0)) = 1 _DetailAlbedoScale3("_DetailAlbedoScale3", Range(0.0, 2.0)) = 1 _DetailNormalScale0("_DetailNormalScale0", Range(0.0, 2.0)) = 1 _DetailNormalScale1("_DetailNormalScale1", Range(0.0, 2.0)) = 1 _DetailNormalScale2("_DetailNormalScale2", Range(0.0, 2.0)) = 1 _DetailNormalScale3("_DetailNormalScale3", Range(0.0, 2.0)) = 1 _DetailSmoothnessScale0("_DetailSmoothnessScale0", Range(0.0, 2.0)) = 1 _DetailSmoothnessScale1("_DetailSmoothnessScale1", Range(0.0, 2.0)) = 1 _DetailSmoothnessScale2("_DetailSmoothnessScale2", Range(0.0, 2.0)) = 1 _DetailSmoothnessScale3("_DetailSmoothnessScale3", Range(0.0, 2.0)) = 1 [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace0("NormalMap space", Float) = 0 [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace1("NormalMap space", Float) = 0 [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace2("NormalMap space", Float) = 0 [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace3("NormalMap space", Float) = 0 _DiffusionProfile0("Obsolete, kept for migration purpose", Int) = 0 _DiffusionProfile1("Obsolete, kept for migration purpose", Int) = 0 _DiffusionProfile2("Obsolete, kept for migration purpose", Int) = 0 _DiffusionProfile3("Obsolete, kept for migration purpose", Int) = 0 [HideInInspector] _DiffusionProfileAsset0("Diffusion Profile Asset0", Vector) = (0, 0, 0, 0) [HideInInspector] _DiffusionProfileHash0("Diffusion Profile Hash0", Float) = 0 [HideInInspector] _DiffusionProfileAsset1("Diffusion Profile Asset1", Vector) = (0, 0, 0, 0) [HideInInspector] _DiffusionProfileHash1("Diffusion Profile Hash1", Float) = 0 [HideInInspector] _DiffusionProfileAsset2("Diffusion Profile Asset2", Vector) = (0, 0, 0, 0) [HideInInspector] _DiffusionProfileHash2("Diffusion Profile Hash2", Float) = 0 [HideInInspector] _DiffusionProfileAsset3("Diffusion Profile Asset3", Vector) = (0, 0, 0, 0) [HideInInspector] _DiffusionProfileHash3("Diffusion Profile Hash3", Float) = 0 _SubsurfaceMask0("Subsurface Mask0", Range(0.0, 1.0)) = 1.0 _SubsurfaceMask1("Subsurface Mask1", Range(0.0, 1.0)) = 1.0 _SubsurfaceMask2("Subsurface Mask2", Range(0.0, 1.0)) = 1.0 _SubsurfaceMask3("Subsurface Mask3", Range(0.0, 1.0)) = 1.0 _SubsurfaceMaskMap0("Subsurface Mask Map0", 2D) = "white" {} _SubsurfaceMaskMap1("Subsurface Mask Map1", 2D) = "white" {} _SubsurfaceMaskMap2("Subsurface Mask Map2", 2D) = "white" {} _SubsurfaceMaskMap3("Subsurface Mask Map3", 2D) = "white" {} _TransmissionMask0("Transmission Mask0", Range(0.0, 1.0)) = 1.0 _TransmissionMask1("Transmission Mask1", Range(0.0, 1.0)) = 1.0 _TransmissionMask2("Transmission Mask2", Range(0.0, 1.0)) = 1.0 _TransmissionMask3("Transmission Mask3", Range(0.0, 1.0)) = 1.0 _TransmissionMaskMap0("Transmission Mask Map0", 2D) = "white" {} _TransmissionMaskMap1("Transmission Mask Map1", 2D) = "white" {} _TransmissionMaskMap2("Transmission Mask Map2", 2D) = "white" {} _TransmissionMaskMap3("Transmission Mask Map3", 2D) = "white" {} _Thickness0("Thickness", Float) = 1.0 _Thickness1("Thickness", Float) = 1.0 _Thickness2("Thickness", Float) = 1.0 _Thickness3("Thickness", Float) = 1.0 _ThicknessMap0("Thickness Map", 2D) = "white" {} _ThicknessMap1("Thickness Map", 2D) = "white" {} _ThicknessMap2("Thickness Map", 2D) = "white" {} _ThicknessMap3("Thickness Map", 2D) = "white" {} _ThicknessRemap0("Thickness Remap", Vector) = (0, 1, 0, 0) _ThicknessRemap1("Thickness Remap", Vector) = (0, 1, 0, 0) _ThicknessRemap2("Thickness Remap", Vector) = (0, 1, 0, 0) _ThicknessRemap3("Thickness Remap", Vector) = (0, 1, 0, 0) // All the following properties exist only in layered lit material // Layer blending options _LayerMaskMap("LayerMaskMap", 2D) = "white" {} _LayerInfluenceMaskMap("LayerInfluenceMaskMap", 2D) = "white" {} [ToggleUI] _UseHeightBasedBlend("UseHeightBasedBlend", Float) = 0.0 _HeightTransition("Height Transition", Range(0, 1.0)) = 0.0 [ToggleUI] _UseDensityMode("Use Density mode", Float) = 0.0 [ToggleUI] _UseMainLayerInfluence("UseMainLayerInfluence", Float) = 0.0 _InheritBaseNormal1("_InheritBaseNormal1", Range(0, 1.0)) = 0.0 _InheritBaseNormal2("_InheritBaseNormal2", Range(0, 1.0)) = 0.0 _InheritBaseNormal3("_InheritBaseNormal3", Range(0, 1.0)) = 0.0 _InheritBaseHeight1("_InheritBaseHeight1", Range(0, 1.0)) = 0.0 _InheritBaseHeight2("_InheritBaseHeight2", Range(0, 1.0)) = 0.0 _InheritBaseHeight3("_InheritBaseHeight3", Range(0, 1.0)) = 0.0 _InheritBaseColor1("_InheritBaseColor1", Range(0, 1.0)) = 0.0 _InheritBaseColor2("_InheritBaseColor2", Range(0, 1.0)) = 0.0 _InheritBaseColor3("_InheritBaseColor3", Range(0, 1.0)) = 0.0 [ToggleUI] _OpacityAsDensity0("_OpacityAsDensity0", Float) = 0.0 [ToggleUI] _OpacityAsDensity1("_OpacityAsDensity1", Float) = 0.0 [ToggleUI] _OpacityAsDensity2("_OpacityAsDensity2", Float) = 0.0 [ToggleUI] _OpacityAsDensity3("_OpacityAsDensity3", Float) = 0.0 [HideInInspector] _LayerCount("_LayerCount", Float) = 2.0 [Enum(None, 0, Multiply, 1, AddSubstract, 2)] _VertexColorMode("Vertex color mode", Float) = 0 [ToggleUI] _ObjectScaleAffectTile("_ObjectScaleAffectTile", Float) = 0.0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5)] _UVBlendMask("UV Set for blendMask", Float) = 0 [HideInInspector] _UVMappingMaskBlendMask("_UVMappingMaskBlendMask", Color) = (1, 0, 0, 0) _TexWorldScaleBlendMask("Tiling", Float) = 1.0 // Following are builtin properties [Enum(Off, 0, From Ambient Occlusion, 1, From AO and Bent Normals, 2)] _SpecularOcclusionMode("Specular Occlusion Mode", Int) = 1 [HDR] _EmissiveColor("EmissiveColor", Color) = (0, 0, 0) // Used only to serialize the LDR and HDR emissive color in the material UI, // in the shader only the _EmissiveColor should be used [HideInInspector] _EmissiveColorLDR("EmissiveColor LDR", Color) = (0, 0, 0) _EmissiveColorMap("EmissiveColorMap", 2D) = "white" {} [ToggleUI] _AlbedoAffectEmissive("Albedo Affect Emissive", Float) = 0.0 _EmissiveIntensityUnit("Emissive Mode", Int) = 0 [ToggleUI] _UseEmissiveIntensity("Use Emissive Intensity", Int) = 0 _EmissiveIntensity("Emissive Intensity", Float) = 1 _EmissiveExposureWeight("Emissive Pre Exposure", Range(0.0, 1.0)) = 1.0 [ToggleUI] _UseShadowThreshold("_UseShadowThreshold", Float) = 0.0 [ToggleUI] _AlphaCutoffEnable("Alpha Cutoff Enable", Float) = 0.0 _AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 _AlphaCutoffShadow("_AlphaCutoffShadow", Range(0.0, 1.0)) = 0.5 _AlphaCutoffPrepass("_AlphaCutoffPrepass", Range(0.0, 1.0)) = 0.5 _AlphaCutoffPostpass("_AlphaCutoffPostpass", Range(0.0, 1.0)) = 0.5 _TransparentSortPriority("_TransparentSortPriority", Float) = 0 // Transparency [Enum(None, 0, Planar, 1, Sphere, 2, Thin, 3)]_RefractionModel("Refraction Model", Int) = 0 _Ior("Index Of Refraction", Range(1.0, 2.5)) = 1.5 _TransmittanceColor("Transmittance Color", Color) = (1.0, 1.0, 1.0) _TransmittanceColorMap("TransmittanceColorMap", 2D) = "white" {} _ATDistance("Transmittance Absorption Distance", Float) = 1.0 [ToggleUI] _TransparentWritingMotionVec("_TransparentWritingMotionVec", Float) = 0.0 // Stencil state // Forward [HideInInspector] _StencilRef("_StencilRef", Int) = 0 [HideInInspector] _StencilWriteMask("_StencilWriteMask", Int) = 3 // StencilUsage.RequiresDeferredLighting | StencilUsage.SubsurfaceScattering // GBuffer [HideInInspector] _StencilRefGBuffer("_StencilRefGBuffer", Int) = 2 // StencilUsage.RequiresDeferredLighting [HideInInspector] _StencilWriteMaskGBuffer("_StencilWriteMaskGBuffer", Int) = 3 // StencilUsage.RequiresDeferredLighting | StencilUsage.SubsurfaceScattering // Depth prepass [HideInInspector] _StencilRefDepth("_StencilRefDepth", Int) = 0 // Nothing [HideInInspector] _StencilWriteMaskDepth("_StencilWriteMaskDepth", Int) = 8 // StencilUsage.TraceReflectionRay // Motion vector pass [HideInInspector] _StencilRefMV("_StencilRefMV", Int) = 32 // StencilUsage.ObjectMotionVector [HideInInspector] _StencilWriteMaskMV("_StencilWriteMaskMV", Int) = 32 // StencilUsage.ObjectMotionVector // Blending state _SurfaceType("__surfacetype", Float) = 0.0 _BlendMode ("__blendmode", Float) = 0.0 [HideInInspector] _SrcBlend ("__src", Float) = 1.0 [HideInInspector] _DstBlend ("__dst", Float) = 0.0 [HideInInspector] _AlphaSrcBlend("__alphaSrc", Float) = 1.0 [HideInInspector] _AlphaDstBlend("__alphaDst", Float) = 0.0 [HideInInspector][ToggleUI] _ZWrite ("__zw", Float) = 1.0 [HideInInspector][ToggleUI] _TransparentZWrite("_TransparentZWrite", Float) = 0.0 [HideInInspector] _CullMode("__cullmode", Float) = 2.0 [Enum(UnityEngine.Rendering.HighDefinition.TransparentCullMode)] _TransparentCullMode("_TransparentCullMode", Int) = 2 // Back culling by default [Enum(UnityEngine.Rendering.HighDefinition.OpaqueCullMode)] _OpaqueCullMode("_OpaqueCullMode", Int) = 2 // Back culling by default [HideInInspector] _ZTestDepthEqualForOpaque("_ZTestDepthEqualForOpaque", Int) = 4 // Less equal [HideInInspector] _ZTestGBuffer("_ZTestGBuffer", Int) = 4 [Enum(UnityEngine.Rendering.CompareFunction)] _ZTestTransparent("Transparent ZTest", Int) = 4 // Less equal [ToggleUI] _EnableFogOnTransparent("Enable Fog", Float) = 1.0 [ToggleUI] _EnableBlendModePreserveSpecularLighting("Enable Blend Mode Preserve Specular Lighting", Float) = 1.0 [ToggleUI] _DoubleSidedEnable("Double sided enable", Float) = 0.0 [Enum(Flip, 0, Mirror, 1, None, 2)] _DoubleSidedNormalMode("Double sided normal mode", Float) = 1 [HideInInspector] _DoubleSidedConstants("_DoubleSidedConstants", Vector) = (1, 1, -1, 0) [Enum(Auto, 0, On, 1, Off, 2)] _DoubleSidedGIMode("Double sided GI mode", Float) = 0 // For layering, due to combinatorial explosion, we only support SSS/Transmission and Standard. We let other case for the shader graph [Enum(Subsurface Scattering, 0, Standard, 1, Translucent, 5)] _MaterialID("MaterialId", Int) = 1 // MaterialId.Standard [ToggleUI] _TransmissionEnable("_TransmissionEnable", Float) = 1.0 _DisplacementMode("DisplacementMode", Int) = 0 [ToggleUI] _DisplacementLockObjectScale("displacement lock object scale", Float) = 1.0 [ToggleUI] _DisplacementLockTilingScale("displacement lock tiling scale", Float) = 1.0 [ToggleUI] _DepthOffsetEnable("Depth Offset View space", Float) = 0.0 [ToggleUI] _EnableGeometricSpecularAA("EnableGeometricSpecularAA", Float) = 0.0 _SpecularAAScreenSpaceVariance("SpecularAAScreenSpaceVariance", Range(0.0, 1.0)) = 0.1 _SpecularAAThreshold("SpecularAAThreshold", Range(0.0, 1.0)) = 0.2 _PPDMinSamples("Min sample for POM", Range(1.0, 64.0)) = 5 _PPDMaxSamples("Max sample for POM", Range(1.0, 64.0)) = 15 _PPDLodThreshold("Start lod to fade out the POM effect", Range(0.0, 16.0)) = 5 _PPDPrimitiveLength("Primitive length for POM", Float) = 1 _PPDPrimitiveWidth("Primitive width for POM", Float) = 1 [HideInInspector] _InvPrimScale("Inverse primitive scale for non-planar POM", Vector) = (1, 1, 0, 0) [Enum(Use Emissive Color, 0, Use Emissive Mask, 1)] _EmissiveColorMode("Emissive color mode", Float) = 1 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5, Same as Main layer, 6)] _UVEmissive("UV Set for emissive", Float) = 0 [Enum(WorldSpace, 0, ObjectSpace, 1)] _ObjectSpaceUVMappingEmissive("Mapping space", Float) = 0.0 _TexWorldScaleEmissive("Scale to apply on world coordinate", Float) = 1.0 [HideInInspector] _UVMappingMaskEmissive("_UVMappingMaskEmissive", Color) = (1, 0, 0, 0) // Caution: C# code in BaseLitUI.cs call LightmapEmissionFlagsProperty() which assume that there is an existing "_EmissionColor" // value that exist to identify if the GI emission need to be enabled. // In our case we don't use such a mechanism but need to keep the code quiet. We declare the value and always enable it. // TODO: Fix the code in legacy unity so we can customize the beahvior for GI _EmissionColor("Color", Color) = (1, 1, 1) _TexWorldScale0("Tiling", Float) = 1.0 _TexWorldScale1("Tiling", Float) = 1.0 _TexWorldScale2("Tiling", Float) = 1.0 _TexWorldScale3("Tiling", Float) = 1.0 [HideInInspector] _InvTilingScale0("Inverse tiling scale = 2 / (abs(_BaseColorMap_ST.x) + abs(_BaseColorMap_ST.y))", Float) = 1 [HideInInspector] _InvTilingScale1("Inverse tiling scale = 2 / (abs(_BaseColorMap_ST.x) + abs(_BaseColorMap_ST.y))", Float) = 1 [HideInInspector] _InvTilingScale2("Inverse tiling scale = 2 / (abs(_BaseColorMap_ST.x) + abs(_BaseColorMap_ST.y))", Float) = 1 [HideInInspector] _InvTilingScale3("Inverse tiling scale = 2 / (abs(_BaseColorMap_ST.x) + abs(_BaseColorMap_ST.y))", Float) = 1 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5)] _UVBase0("UV Set for base0", Float) = 0 // no UV1/2/3 for main layer (matching Lit.shader and for PPDisplacement restriction) [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5)] _UVBase1("UV Set for base1", Float) = 0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5)] _UVBase2("UV Set for base2", Float) = 0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3, Planar, 4, Triplanar, 5)] _UVBase3("UV Set for base3", Float) = 0 [HideInInspector] _UVMappingMask0("_UVMappingMask0", Color) = (1, 0, 0, 0) [HideInInspector] _UVMappingMask1("_UVMappingMask1", Color) = (1, 0, 0, 0) [HideInInspector] _UVMappingMask2("_UVMappingMask2", Color) = (1, 0, 0, 0) [HideInInspector] _UVMappingMask3("_UVMappingMask3", Color) = (1, 0, 0, 0) [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _UVDetail0("UV Set for detail0", Float) = 0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _UVDetail1("UV Set for detail1", Float) = 0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _UVDetail2("UV Set for detail2", Float) = 0 [Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _UVDetail3("UV Set for detail3", Float) = 0 [HideInInspector] _UVDetailsMappingMask0("_UVDetailsMappingMask0", Color) = (1, 0, 0, 0) [HideInInspector] _UVDetailsMappingMask1("_UVDetailsMappingMask1", Color) = (1, 0, 0, 0) [HideInInspector] _UVDetailsMappingMask2("_UVDetailsMappingMask2", Color) = (1, 0, 0, 0) [HideInInspector] _UVDetailsMappingMask3("_UVDetailsMappingMask3", Color) = (1, 0, 0, 0) [ToggleUI] _LinkDetailsWithBase0("LinkDetailsWithBase0", Float) = 1.0 [ToggleUI] _LinkDetailsWithBase1("LinkDetailsWithBase1", Float) = 1.0 [ToggleUI] _LinkDetailsWithBase2("LinkDetailsWithBase2", Float) = 1.0 [ToggleUI] _LinkDetailsWithBase3("LinkDetailsWithBase3", Float) = 1.0 // HACK: GI Baking system relies on some properties existing in the shader ("_MainTex", "_Cutoff" and "_Color") for opacity handling, so we need to store our version of those parameters in the hard-coded name the GI baking system recognizes. [HideInInspector] _MainTex("Albedo", 2D) = "white" {} [HideInInspector] _Color("Color", Color) = (1,1,1,1) [HideInInspector] _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 [ToggleUI] _SupportDecals("Support Decals", Float) = 1.0 [ToggleUI] _ReceivesSSR("Receives SSR", Float) = 1.0 [ToggleUI] _AddPrecomputedVelocity("AddPrecomputedVelocity", Float) = 0.0 // Ray Tracing [ToggleUI] _RayTracing("Ray Tracing (Preview)", Float) = 0 [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} } HLSLINCLUDE #pragma target 4.5 #pragma shader_feature_local _DEPTHOFFSET_ON #pragma shader_feature_local _DOUBLESIDED_ON #pragma shader_feature_local _ _VERTEX_DISPLACEMENT _PIXEL_DISPLACEMENT #pragma shader_feature_local_vertex _VERTEX_DISPLACEMENT_LOCK_OBJECT_SCALE #pragma shader_feature_local _DISPLACEMENT_LOCK_TILING_SCALE #pragma shader_feature_local_fragment _PIXEL_DISPLACEMENT_LOCK_OBJECT_SCALE #pragma shader_feature_local _LAYER_TILING_COUPLED_WITH_UNIFORM_OBJECT_SCALE #pragma shader_feature_local _ _LAYER_MAPPING_PLANAR_BLENDMASK _LAYER_MAPPING_TRIPLANAR_BLENDMASK #pragma shader_feature_local_fragment _ _EMISSIVE_MAPPING_PLANAR _EMISSIVE_MAPPING_TRIPLANAR _EMISSIVE_MAPPING_BASE #pragma shader_feature_local _ _LAYER_MAPPING_PLANAR0 _LAYER_MAPPING_TRIPLANAR0 #pragma shader_feature_local _ _LAYER_MAPPING_PLANAR1 _LAYER_MAPPING_TRIPLANAR1 #pragma shader_feature_local _ _LAYER_MAPPING_PLANAR2 _LAYER_MAPPING_TRIPLANAR2 #pragma shader_feature_local _ _LAYER_MAPPING_PLANAR3 _LAYER_MAPPING_TRIPLANAR3 #pragma shader_feature_local_raytracing _ _EMISSIVE_MAPPING_PLANAR _EMISSIVE_MAPPING_TRIPLANAR _EMISSIVE_MAPPING_BASE #pragma shader_feature_local_raytracing _NORMALMAP_TANGENT_SPACE0 #pragma shader_feature_local_raytracing _NORMALMAP_TANGENT_SPACE1 #pragma shader_feature_local_raytracing _NORMALMAP_TANGENT_SPACE2 #pragma shader_feature_local_raytracing _NORMALMAP_TANGENT_SPACE3 #pragma shader_feature_local _ _REQUIRE_UV2 _REQUIRE_UV3 #pragma shader_feature_local_raytracing _NORMALMAP0 #pragma shader_feature_local_raytracing _NORMALMAP1 #pragma shader_feature_local_raytracing _NORMALMAP2 #pragma shader_feature_local_raytracing _NORMALMAP3 #pragma shader_feature_local_raytracing _MASKMAP0 #pragma shader_feature_local_raytracing _MASKMAP1 #pragma shader_feature_local_raytracing _MASKMAP2 #pragma shader_feature_local_raytracing _MASKMAP3 #pragma shader_feature_local_raytracing _BENTNORMALMAP0 #pragma shader_feature_local_raytracing _BENTNORMALMAP1 #pragma shader_feature_local_raytracing _BENTNORMALMAP2 #pragma shader_feature_local_raytracing _BENTNORMALMAP3 #pragma shader_feature_local_raytracing _EMISSIVE_COLOR_MAP // _ENABLESPECULAROCCLUSION keyword is obsolete but keep here for compatibility. Do not used // _ENABLESPECULAROCCLUSION and _SPECULAR_OCCLUSION_X can't exist at the same time (the new _SPECULAR_OCCLUSION replace it) // When _ENABLESPECULAROCCLUSION is found we define _SPECULAR_OCCLUSION_X so new code to work #pragma shader_feature_local_fragment _ENABLESPECULAROCCLUSION #pragma shader_feature_local_fragment _ _SPECULAR_OCCLUSION_NONE _SPECULAR_OCCLUSION_FROM_BENT_NORMAL_MAP #pragma shader_feature_local_raytracing _ENABLESPECULAROCCLUSION #pragma shader_feature_local_raytracing _ _SPECULAR_OCCLUSION_NONE _SPECULAR_OCCLUSION_FROM_BENT_NORMAL_MAP #ifdef _ENABLESPECULAROCCLUSION #define _SPECULAR_OCCLUSION_FROM_BENT_NORMAL_MAP #endif #pragma shader_feature_local_raytracing _DETAIL_MAP0 #pragma shader_feature_local_raytracing _DETAIL_MAP1 #pragma shader_feature_local_raytracing _DETAIL_MAP2 #pragma shader_feature_local_raytracing _DETAIL_MAP3 #pragma shader_feature_local _HEIGHTMAP0 #pragma shader_feature_local _HEIGHTMAP1 #pragma shader_feature_local _HEIGHTMAP2 #pragma shader_feature_local _HEIGHTMAP3 #pragma shader_feature_local_raytracing _SUBSURFACE_MASK_MAP0 #pragma shader_feature_local_raytracing _SUBSURFACE_MASK_MAP1 #pragma shader_feature_local_raytracing _SUBSURFACE_MASK_MAP2 #pragma shader_feature_local_raytracing _SUBSURFACE_MASK_MAP3 #pragma shader_feature_local_raytracing _THICKNESSMAP0 #pragma shader_feature_local_raytracing _THICKNESSMAP1 #pragma shader_feature_local_raytracing _THICKNESSMAP2 #pragma shader_feature_local_raytracing _THICKNESSMAP3 #pragma shader_feature_local _ _LAYER_MASK_VERTEX_COLOR_MUL _LAYER_MASK_VERTEX_COLOR_ADD #pragma shader_feature_local _MAIN_LAYER_INFLUENCE_MODE #pragma shader_feature_local _INFLUENCEMASK_MAP #pragma shader_feature_local _DENSITY_MODE #pragma shader_feature_local _HEIGHT_BASED_BLEND #pragma shader_feature_local _ _LAYEREDLIT_3_LAYERS _LAYEREDLIT_4_LAYERS #pragma shader_feature_local_raytracing _DISABLE_SSR // MaterialFeature are used as shader feature to allow compiler to optimize properly #pragma shader_feature_local_raytracing _MATERIAL_FEATURE_SUBSURFACE_SCATTERING #pragma shader_feature_local_raytracing _MATERIAL_FEATURE_TRANSMISSION //------------------------------------------------------------------------------------- // Define //------------------------------------------------------------------------------------- // Enable the support of global mip bias in the shader. // Only has effect if the global mip bias is enabled in shader config and DRS is enabled. #define SUPPORT_GLOBAL_MIP_BIAS // This shader support recursive rendering for raytracing #define HAVE_RECURSIVE_RENDERING // This shader support vertex modification #define HAVE_VERTEX_MODIFICATION #define SUPPORT_BLENDMODE_PRESERVE_SPECULAR_LIGHTING // If we use subsurface scattering, enable output split lighting (for forward pass) #if defined(_MATERIAL_FEATURE_SUBSURFACE_SCATTERING) && !defined(_SURFACE_TYPE_TRANSPARENT) #define OUTPUT_SPLIT_LIGHTING #endif #define _MAX_LAYER 4 #if defined(_LAYEREDLIT_4_LAYERS) # define _LAYER_COUNT 4 #elif defined(_LAYEREDLIT_3_LAYERS) # define _LAYER_COUNT 3 #else # define _LAYER_COUNT 2 #endif // Explicitely said that we are a layered shader as we share code between lit and layered lit #define LAYERED_LIT_SHADER // Define _DEFERRED_CAPABLE_MATERIAL for shader capable to run in deferred pass #ifndef _SURFACE_TYPE_TRANSPARENT #define _DEFERRED_CAPABLE_MATERIAL #endif // In this shader, the heightmap implies depth offsets away from the camera. #if defined(_HEIGHTMAP0) || defined(_HEIGHTMAP1) || defined(_HEIGHTMAP2) || defined(_HEIGHTMAP3) #define _CONSERVATIVE_DEPTH_OFFSET #endif //------------------------------------------------------------------------------------- // Include //------------------------------------------------------------------------------------- // Disable half-precision types in the lit shader since this causes visual corruption in some cases #define PREFER_HALF 0 #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl" //------------------------------------------------------------------------------------- // variable declaration //------------------------------------------------------------------------------------- // #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.cs.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitProperties.hlsl" // TODO: // Currently, Lit.hlsl and LitData.hlsl are included for every pass. Split Lit.hlsl in two: // LitData.hlsl and LitShading.hlsl (merge into the existing LitData.hlsl). // LitData.hlsl should be responsible for preparing shading parameters. // LitShading.hlsl implements the light loop API. // LitData.hlsl is included here, LitShading.hlsl is included below for shading passes only. ENDHLSL SubShader { // This tags allow to use the shader replacement features Tags{ "RenderPipeline" = "HDRenderPipeline" "RenderType" = "HDLitShader" } Pass { Name "ScenePickingPass" Tags { "LightMode" = "Picking" } Cull [_CullMode] HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma shader_feature_local _ALPHATEST_ON // Note: Require _SelectionID variable // We reuse depth prepass for the scene selection, allow to handle alpha correctly as well as tessellation and vertex animation #define SHADERPASS SHADERPASS_DEPTH_ONLY #define SCENEPICKINGPASS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitDepthPass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" #pragma vertex Vert #pragma fragment Frag #pragma editor_sync_compilation ENDHLSL } Pass { Name "SceneSelectionPass" Tags{ "LightMode" = "SceneSelectionPass" } Cull Off HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma shader_feature_local _ALPHATEST_ON // Note: Require _ObjectId and _PassValue variables #define SHADERPASS SHADERPASS_DEPTH_ONLY #define SCENESELECTIONPASS // This will drive the output of the scene selection shader #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitDepthPass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" #pragma vertex Vert #pragma fragment Frag #pragma editor_sync_compilation ENDHLSL } // Caution: The outline selection in the editor use the vertex shader/hull/domain shader of the first pass declare. So it should not bethe meta pass. Pass { Name "GBuffer" Tags { "LightMode" = "GBuffer" } // This will be only for opaque object based on the RenderQueue index Cull [_CullMode] ZTest [_ZTestGBuffer] Stencil { WriteMask [_StencilWriteMaskGBuffer] Ref [_StencilRefGBuffer] Comp Always Pass Replace } HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK #pragma multi_compile_fragment _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 // Setup DECALS_OFF so the shader stripper can remove variants #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT #pragma multi_compile_fragment _ RENDERING_LAYERS #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE0 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE1 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE2 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE3 // We can only have 64 shader_feature_local #pragma shader_feature_local _NORMALMAP0 #pragma shader_feature_local _NORMALMAP1 #pragma shader_feature_local _NORMALMAP2 #pragma shader_feature_local _NORMALMAP3 #pragma shader_feature_local_fragment _MASKMAP0 #pragma shader_feature_local_fragment _MASKMAP1 #pragma shader_feature_local_fragment _MASKMAP2 #pragma shader_feature_local_fragment _MASKMAP3 #pragma shader_feature_local_fragment _BENTNORMALMAP0 #pragma shader_feature_local_fragment _BENTNORMALMAP1 #pragma shader_feature_local_fragment _BENTNORMALMAP2 #pragma shader_feature_local_fragment _BENTNORMALMAP3 #pragma shader_feature_local_fragment _EMISSIVE_COLOR_MAP #pragma shader_feature_local_fragment _DETAIL_MAP0 #pragma shader_feature_local_fragment _DETAIL_MAP1 #pragma shader_feature_local_fragment _DETAIL_MAP2 #pragma shader_feature_local_fragment _DETAIL_MAP3 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP0 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP1 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP2 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP3 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP0 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP1 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP2 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP3 #pragma shader_feature_local_fragment _THICKNESSMAP0 #pragma shader_feature_local_fragment _THICKNESSMAP1 #pragma shader_feature_local_fragment _THICKNESSMAP2 #pragma shader_feature_local_fragment _THICKNESSMAP3 #pragma shader_feature_local_fragment _MATERIAL_FEATURE_SUBSURFACE_SCATTERING #pragma shader_feature_local_fragment _MATERIAL_FEATURE_TRANSMISSION #pragma shader_feature_local_fragment _DISABLE_SSR #pragma shader_feature_local _DISABLE_DECALS #pragma shader_feature_local_fragment _ENABLE_GEOMETRIC_SPECULAR_AA #ifndef DEBUG_DISPLAY // When we have alpha test, we will force a depth prepass so we always bypass the clip instruction in the GBuffer // Don't do it with debug display mode as it is possible there is no depth prepass in this case #define SHADERPASS_GBUFFER_BYPASS_ALPHA_TEST #endif #define SHADERPASS SHADERPASS_GBUFFER #ifdef DEBUG_DISPLAY #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" #endif #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassGBuffer.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } // Extracts information for lightmapping, GI (emission, albedo, ...) // This pass is not used during regular rendering. Pass { Name "META" Tags{ "LightMode" = "META" } Cull Off HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE // Lightmap memo // DYNAMICLIGHTMAP_ON is used when we have an "enlighten lightmap" ie a lightmap updated at runtime by enlighten.This lightmap contain indirect lighting from realtime lights and realtime emissive material.Offline baked lighting(from baked material / light, // both direct and indirect lighting) will hand up in the "regular" lightmap->LIGHTMAP_ON. #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE0 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE1 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE2 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE3 // We can only have 64 shader_feature_local #pragma shader_feature_local _NORMALMAP0 #pragma shader_feature_local _NORMALMAP1 #pragma shader_feature_local _NORMALMAP2 #pragma shader_feature_local _NORMALMAP3 #pragma shader_feature_local_fragment _MASKMAP0 #pragma shader_feature_local_fragment _MASKMAP1 #pragma shader_feature_local_fragment _MASKMAP2 #pragma shader_feature_local_fragment _MASKMAP3 #pragma shader_feature_local_fragment _BENTNORMALMAP0 #pragma shader_feature_local_fragment _BENTNORMALMAP1 #pragma shader_feature_local_fragment _BENTNORMALMAP2 #pragma shader_feature_local_fragment _BENTNORMALMAP3 #pragma shader_feature_local_fragment _EMISSIVE_COLOR_MAP #pragma shader_feature_local_fragment _DETAIL_MAP0 #pragma shader_feature_local_fragment _DETAIL_MAP1 #pragma shader_feature_local_fragment _DETAIL_MAP2 #pragma shader_feature_local_fragment _DETAIL_MAP3 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP0 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP1 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP2 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP3 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP0 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP1 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP2 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP3 #pragma shader_feature_local_fragment _THICKNESSMAP0 #pragma shader_feature_local_fragment _THICKNESSMAP1 #pragma shader_feature_local_fragment _THICKNESSMAP2 #pragma shader_feature_local_fragment _THICKNESSMAP3 #pragma shader_feature_local_fragment _MATERIAL_FEATURE_SUBSURFACE_SCATTERING #pragma shader_feature_local_fragment _MATERIAL_FEATURE_TRANSMISSION #pragma shader_feature_local _DISABLE_DECALS #pragma shader_feature_local_fragment _ENABLE_GEOMETRIC_SPECULAR_AA #pragma shader_feature _SURFACE_TYPE_TRANSPARENT #pragma shader_feature_local _ALPHATEST_ON #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT #pragma shader_feature EDITOR_VISUALIZATION // Use Unity's built-in matrices for meta pass rendering #define SCENEPICKINGPASS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassLightTransport.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "MotionVectors" Tags{ "LightMode" = "MotionVectors" } // Caution, this need to be call like this to setup the correct parameters by C++ (legacy Unity) // If velocity pass (motion vectors) is enabled we tag the stencil so it don't perform CameraMotionVelocity Stencil { WriteMask [_StencilWriteMaskMV] Ref [_StencilRefMV] Comp Always Pass Replace } Cull[_CullMode] AlphaToMask [_AlphaCutoffEnable] ZWrite On HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma multi_compile _ WRITE_NORMAL_BUFFER #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH #pragma multi_compile _ WRITE_DECAL_BUFFER_AND_RENDERING_LAYER #pragma shader_feature_local _NORMALMAP0 #pragma shader_feature_local _NORMALMAP1 #pragma shader_feature_local _NORMALMAP2 #pragma shader_feature_local _NORMALMAP3 #pragma shader_feature_local_fragment _BENTNORMALMAP0 #pragma shader_feature_local_fragment _BENTNORMALMAP1 #pragma shader_feature_local_fragment _BENTNORMALMAP2 #pragma shader_feature_local_fragment _BENTNORMALMAP3 #pragma shader_feature_local_fragment _DETAIL_MAP0 #pragma shader_feature_local_fragment _DETAIL_MAP1 #pragma shader_feature_local_fragment _DETAIL_MAP2 #pragma shader_feature_local_fragment _DETAIL_MAP3 #pragma shader_feature_local _ADD_PRECOMPUTED_VELOCITY #pragma shader_feature_local _DISABLE_DECALS #pragma shader_feature _SURFACE_TYPE_TRANSPARENT #pragma shader_feature_local _ALPHATEST_ON // We can't name this keyword WRITE_DECAL_BUFFER directly because we want to enable it at a different // frequency than WRITE_DECAL_BUFFER defined in the DepthForwardOnly pass #ifdef WRITE_DECAL_BUFFER_AND_RENDERING_LAYER #define WRITE_DECAL_BUFFER #endif #define SHADERPASS SHADERPASS_MOTION_VECTORS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #ifdef WRITE_NORMAL_BUFFER // If enabled we need all regular interpolator #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #else #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitMotionVectorPass.hlsl" #endif #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassMotionVectors.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "ShadowCaster" Tags{ "LightMode" = "ShadowCaster" } Cull[_CullMode] ZClip [_ZClip] ZWrite On ZTest LEqual ColorMask 0 HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma shader_feature_local _ALPHATEST_ON #define SHADERPASS SHADERPASS_SHADOWS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitDepthPass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "DepthOnly" Tags{ "LightMode" = "DepthOnly" } Cull[_CullMode] AlphaToMask [_AlphaCutoffEnable] // To be able to tag stencil with disableSSR information for forward Stencil { WriteMask [_StencilWriteMaskDepth] Ref [_StencilRefDepth] Comp Always Pass Replace } ZWrite On HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE // In deferred, depth only pass don't output anything. // In forward it output the normal buffer #pragma multi_compile _ WRITE_NORMAL_BUFFER #pragma multi_compile_fragment _ WRITE_MSAA_DEPTH #pragma multi_compile _ WRITE_DECAL_BUFFER WRITE_RENDERING_LAYER #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE0 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE1 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE2 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE3 // We can only have 64 shader_feature_local #pragma shader_feature_local _NORMALMAP0 #pragma shader_feature_local _NORMALMAP1 #pragma shader_feature_local _NORMALMAP2 #pragma shader_feature_local _NORMALMAP3 #pragma shader_feature_local_fragment _MASKMAP0 #pragma shader_feature_local_fragment _MASKMAP1 #pragma shader_feature_local_fragment _MASKMAP2 #pragma shader_feature_local_fragment _MASKMAP3 #pragma shader_feature_local_fragment _BENTNORMALMAP0 #pragma shader_feature_local_fragment _BENTNORMALMAP1 #pragma shader_feature_local_fragment _BENTNORMALMAP2 #pragma shader_feature_local_fragment _BENTNORMALMAP3 #pragma shader_feature_local _DISABLE_DECALS #pragma shader_feature_local_fragment _ENABLE_GEOMETRIC_SPECULAR_AA #pragma shader_feature_local _ALPHATEST_ON #define SHADERPASS SHADERPASS_DEPTH_ONLY #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #ifdef WRITE_NORMAL_BUFFER // If enabled we need all regular interpolator #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #else #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitDepthPass.hlsl" #endif #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassDepthOnly.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "Forward" Tags{ "LightMode" = "Forward" } // This will be only for transparent object based on the RenderQueue index Stencil { WriteMask [_StencilWriteMask] Ref [_StencilRef] Comp Always Pass Replace } Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend] Blend 1 One OneMinusSrcAlpha // target 1 alpha blend required for VT feedback // In case of forward we want to have depth equal for opaque mesh ZTest [_ZTestDepthEqualForOpaque] ZWrite [_ZWrite] Cull [_CullMode] HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma multi_compile _ DOTS_INSTANCING_ON #pragma instancing_options renderinglayer #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile _ USE_LEGACY_LIGHTMAPS #pragma multi_compile_fragment _ SHADOWS_SHADOWMASK #pragma multi_compile_fragment _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 #pragma multi_compile_fragment SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON // Setup DECALS_OFF so the shader stripper can remove variants #pragma multi_compile_fragment DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile_fragment _ DECAL_SURFACE_GRADIENT // Supported shadow modes per light type #pragma multi_compile_fragment PUNCTUAL_SHADOW_LOW PUNCTUAL_SHADOW_MEDIUM PUNCTUAL_SHADOW_HIGH #pragma multi_compile_fragment DIRECTIONAL_SHADOW_LOW DIRECTIONAL_SHADOW_MEDIUM DIRECTIONAL_SHADOW_HIGH #pragma multi_compile_fragment AREA_SHADOW_MEDIUM AREA_SHADOW_HIGH #pragma multi_compile_fragment USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE0 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE1 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE2 #pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE3 // We can only have 64 shader_feature_local #pragma shader_feature_local _NORMALMAP0 #pragma shader_feature_local _NORMALMAP1 #pragma shader_feature_local _NORMALMAP2 #pragma shader_feature_local _NORMALMAP3 #pragma shader_feature_local_fragment _MASKMAP0 #pragma shader_feature_local_fragment _MASKMAP1 #pragma shader_feature_local_fragment _MASKMAP2 #pragma shader_feature_local_fragment _MASKMAP3 #pragma shader_feature_local_fragment _BENTNORMALMAP0 #pragma shader_feature_local_fragment _BENTNORMALMAP1 #pragma shader_feature_local_fragment _BENTNORMALMAP2 #pragma shader_feature_local_fragment _BENTNORMALMAP3 #pragma shader_feature_local_fragment _EMISSIVE_COLOR_MAP #pragma shader_feature_local_fragment _DETAIL_MAP0 #pragma shader_feature_local_fragment _DETAIL_MAP1 #pragma shader_feature_local_fragment _DETAIL_MAP2 #pragma shader_feature_local_fragment _DETAIL_MAP3 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP0 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP1 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP2 #pragma shader_feature_local_fragment _SUBSURFACE_MASK_MAP3 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP0 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP1 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP2 #pragma shader_feature_local_fragment _TRANSMISSION_MASK_MAP3 #pragma shader_feature_local_fragment _THICKNESSMAP0 #pragma shader_feature_local_fragment _THICKNESSMAP1 #pragma shader_feature_local_fragment _THICKNESSMAP2 #pragma shader_feature_local_fragment _THICKNESSMAP3 #pragma shader_feature_local_fragment _MATERIAL_FEATURE_SUBSURFACE_SCATTERING #pragma shader_feature_local_fragment _MATERIAL_FEATURE_TRANSMISSION #pragma shader_feature_local _ADD_PRECOMPUTED_VELOCITY #pragma shader_feature_local_fragment _DISABLE_SSR #pragma shader_feature_local _DISABLE_DECALS #pragma shader_feature_local_fragment _ENABLE_GEOMETRIC_SPECULAR_AA #pragma shader_feature_local_fragment _DISABLE_SSR_TRANSPARENT #pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT #pragma shader_feature _SURFACE_TYPE_TRANSPARENT #pragma shader_feature_local _ALPHATEST_ON #ifndef SHADER_STAGE_FRAGMENT #define SHADOW_LOW #define USE_FPTL_LIGHTLIST #endif #define SHADERPASS SHADERPASS_FORWARD // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) // Don't do it with debug display mode as it is possible there is no depth prepass in this case #if !defined(_SURFACE_TYPE_TRANSPARENT) && !defined(DEBUG_DISPLAY) #define SHADERPASS_FORWARD_BYPASS_ALPHA_TEST #endif #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" #ifdef DEBUG_DISPLAY #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl" #endif // The light loop (or lighting architecture) is in charge to: // - Define light list // - Define the light loop // - Setup the constant/data // - Do the reflection hierarchy // - Provide sampling function for shadowmap, ies, cookie and reflection (depends on the specific use with the light loops like index array or atlas or single and texture format (cubemap/latlong)) #define HAS_LIGHTLOOP #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassForward.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "RayTracingPrepass" Tags{ "LightMode" = "RayTracingPrepass" } Cull[_CullMode] ZWrite On ZTest LEqual // If the object have already been render in depth prepass, it will re-render to tag stencil HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 #pragma multi_compile _ DOTS_INSTANCING_ON #define SHADERPASS SHADERPASS_CONSTANT #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitConstantPass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassConstant.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } Pass { Name "FullScreenDebug" Tags{ "LightMode" = "FullScreenDebug" } Cull[_CullMode] ZWrite Off ZTest LEqual HLSLPROGRAM #pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch switch2 //enable GPU instancing support #pragma multi_compile_instancing #pragma instancing_options renderinglayer #pragma multi_compile _ DOTS_INSTANCING_ON // enable dithering LOD crossfade #pragma multi_compile _ LOD_FADE_CROSSFADE #define SHADERPASS SHADERPASS_FULL_SCREEN_DEBUG #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassFullScreenDebug.hlsl" #pragma vertex Vert #pragma fragment Frag ENDHLSL } } SubShader { Tags{ "RenderPipeline" = "HDRenderPipeline" } Pass { Name "IndirectDXR" Tags{ "LightMode" = "IndirectDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile _ DECAL_SURFACE_GRADIENT #define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT // multi compile that allows us to #pragma multi_compile _ MULTI_BOUNCE_INDIRECT #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT // We use the low shadow maps for raytracing #define SHADOW_LOW #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" #define HAS_LIGHTLOOP #define PATH_TRACING_CLUSTERED_DECALS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRayTracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingIndirect.hlsl" ENDHLSL } Pass { Name "ForwardDXR" Tags{ "LightMode" = "ForwardDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile _ DECAL_SURFACE_GRADIENT #define SHADERPASS SHADERPASS_RAYTRACING_FORWARD #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT // We use the low shadow maps for raytracing #define SHADOW_LOW #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" #define HAS_LIGHTLOOP #define PATH_TRACING_CLUSTERED_DECALS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRayTracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingForward.hlsl" ENDHLSL } Pass { Name "GBufferDXR" Tags{ "LightMode" = "GBufferDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile _ DECAL_SURFACE_GRADIENT #define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingIntersectonGBuffer.hlsl" #define PATH_TRACING_CLUSTERED_DECALS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/StandardLit/StandardLit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitRayTracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingGBuffer.hlsl" ENDHLSL } Pass { Name "VisibilityDXR" Tags{ "LightMode" = "VisibilityDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRaytracingVisibility.hlsl" ENDHLSL } Pass { Name "SubSurfaceDXR" Tags{ "LightMode" = "SubSurfaceDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ PROBE_VOLUMES_L1 PROBE_VOLUMES_L2 #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT #define SHADERPASS SHADERPASS_RAYTRACING_SUB_SURFACE #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/SubSurface/RayTracingIntersectionSubSurface.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRayTracingSubSurface.hlsl" ENDHLSL } Pass { Name "DebugDXR" Tags{ "LightMode" = "DebugDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT #define SHADERPASS SHADERPASS_RAYTRACING_DEBUG #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassRayTracingDebug.hlsl" ENDHLSL } Pass { Name "PathTracingDXR" Tags{ "LightMode" = "PathTracingDXR" } HLSLPROGRAM #pragma only_renderers d3d11 xboxseries ps5 switch2 #pragma raytracing surface_shader #pragma multi_compile _ DEBUG_DISPLAY #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ SENSORSDK_OVERRIDE_REFLECTANCE #ifdef SENSORSDK_OVERRIDE_REFLECTANCE #define SENSORSDK_ENABLE_LIDAR #endif #define SHADERPASS SHADERPASS_PATH_TRACING #pragma multi_compile DECALS_OFF DECALS_3RT DECALS_4RT #pragma multi_compile _ DECAL_SURFACE_GRADIENT #pragma shader_feature_local_raytracing _DISABLE_DECALS #pragma shader_feature_local_raytracing _ALPHATEST_ON #pragma shader_feature_local_raytracing _DISABLE_SSR_TRANSPARENT #pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT // We use the low shadow maps for raytracing #define SHADOW_LOW #define LIGHTLOOP_DISABLE_TILE_AND_CLUSTER #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingMacros.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RaytracingIntersection.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoopDef.hlsl" #define HAS_LIGHTLOOP #define PATH_TRACING_CLUSTERED_DECALS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/ShaderVariablesRaytracingLightLoop.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingLightCluster.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitPathTracing.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPassPathTracing.hlsl" ENDHLSL } } FallBack "Hidden/HDRP/FallbackError" CustomEditor "UnityEditor.Rendering.HighDefinition.LayeredLitGUI" }