Layered Lit Tessellation Shader
The Layered Lit Tessellation Shader allows you to stack up to four tessellated Materials on the same GameObject in the High Definition Render Pipeline (HDRP).
The Materials that it uses for each layer are HDRP Lit Tessellation Materials. This makes it easy to create layered Materials that provide adaptive vertex density for meshes. The Main Layer is the undermost layer and can influence upper layers with albedo, normals, and height. HDRP renders Layer 1, Layer 2, and Layer 3 in that order on top of the Main Layer. For more information about Materials, Shaders, and Textures, see the Unity User Manual.
Creating a Layered Lit Tessellation Material
To create a new Lit Tessellation Material:
- Right-click in your Project's Asset window.
- Select Create > Material. This adds a new Material to your Unity Project’s Asset folder.
- Select the Material and, in the Inspector, select the Shader drop-down.
- Select HDRP > LayeredLitTessellation.
Properties
Surface Options These properties control the overall look of your Material's surface and how Unity renders the Material on screen.
[!include[](snippets/shader-properties/surface-options/surface-type.md)] [!include[](snippets/shader-properties/surface-options/rendering-pass.md)] [!include[](snippets/shader-properties/surface-options/blending-mode.md)] [!include[](snippets/shader-properties/surface-options/preserve-specular-lighting.md)] [!include[](snippets/shader-properties/surface-options/sorting-priority.md)] [!include[](snippets/shader-properties/surface-options/receive-fog.md)] [!include[](snippets/shader-properties/surface-options/depth-write.md)] [!include[](snippets/shader-properties/surface-options/depth-test.md)] [!include[](snippets/shader-properties/surface-options/cull-mode.md)] [!include[](snippets/shader-properties/surface-options/alpha-clipping.md)] [!include[](snippets/shader-properties/surface-options/alpha-clipping-threshold.md)] [!include[](snippets/shader-properties/surface-options/alpha-to-mask.md)] [!include[](snippets/shader-properties/surface-options/double-sided.md)] [!include[](snippets/shader-properties/surface-options/normal-mode.md)] [!include[](snippets/shader-properties/surface-options/material-type-layered.md)] [!include[](snippets/shader-properties/surface-options/transmission.md)] [!include[](snippets/shader-properties/surface-options/receive-decals.md)] [!include[](snippets/shader-properties/surface-options/geometric-specular-aa.md)] [!include[](snippets/shader-properties/surface-options/screen-space-variance.md)] [!include[](snippets/shader-properties/surface-options/gsaa-threshold.md)] [!include[](snippets/shader-properties/surface-options/displacement-mode.md)] [!include[](snippets/shader-properties/surface-options/lock-with-object-scale.md)] [!include[](snippets/shader-properties/surface-options/lock-with-height-map-tiling-rate.md)]Property | Description |
---|
Tessellation Options
For information on the properties in this section, see the Tessellation documentation.
Surface Inputs
Property | Description |
---|---|
Layer Count | Use the slider to set the number of layers this Material uses. You can set up to four layers. |
Layer Mask | Assign a Texture to the field to manage the visibility of each layer. If you do not assign a Texture, the Material uses the maximum value for every channel. • Alpha channel for the Main Layer. • Red channel for Layer 1. • Green channel for Layer 2. • Blue channel for Layer |
BlendMask UV Mapping | Use the drop-down to select the type of UV mapping that HDRP uses to map the Layer Mask. • Unity manages four UV channels for a vertex: UV0, UV1, UV2, and UV3. • Planar: A planar projection from top to bottom. • Triplanar: A planar projection in three directions:X-axis: Left to rightY-axis: Top to bottomZ-axis: Front to back Unity blends these three projections together to produce the final result. |
World Scale | Set the world-space size of the Texture in meters. If you set this to 1, then HDRP maps the Texture to 1 meter in world space.If you set this to 2, then HDRP maps the Texture to 0.5 meters in world space.This property only appears when you select Planar or Triplanar from the BlendMask UV Mapping drop-down. |
Tiling | Set an X and Y tile rate for the Layer Mask UV. HDRP uses the X and Y values to tile the Texture assigned to the Layer Mask across the Material’s surface, in object space. |
Offset | Set an X and Y offset for the Layer Mask UV. HDRP uses the X and Y values to offset the Texture assigned to the Layer Mask from the Material’s surface, in object space. |
Vertex Color Mode | Use the drop-down to select the method HDRP uses to combine the Layer Mask to manager layer visibility. • None: Only the Layer Mask affects visibility. HDRP does not combine it with vertex colors. • Multiply: Multiplies the vertex colors from a layer with the corresponding values from the channel in the Layer Mask that represents that layer. The default value for a pixel in the mask is 1. Multiplying the vertex colors of a layer by the Layer Mask reduces the intensity of that layer, unless the value in the Layer Mask is 1. • AddSubstract: Remaps vertex color values to between -1 and 1, and then adds them to the corresponding values from the channel in the Layer Mask that represents that layer. Vertex color values between 0 and 0.5 reduce the effect of that layer, values between 0.5 and 1 increase the effect of that layer. |
Main Layer Influence | Enable the checkbox to allow the Main Layer to influence the albedo, normal, and height of Layer 1, Layer 2, and Layer 3. You can change the strength of the influence for each layer. |
Use Height Based Blend | Enable the checkbox to blend the layers with a heightmap. HDRP then evaluates the height of each layer to check whether to display that layer or the layer above. |
Height Transition | Use the slider to set the transition blend size between the Materials in each layer. |
Lock Layers 123 Tiling With Object Scale | Enable the checkbox to multiply the Material's tiling rate by the scale of the GameObject. This keeps the appearance of the heightmap consistent when you scale the GameObject. |
Layer List
This section contains a list of the Materials that this Layered Material uses as layers. To assign a Material to a layer, either drag and drop a Material into the property field for that layer, or:
- Click the radio button on the right of the layer to open the Select Material window.
- Find the Material you want from the list of Materials in the window and double-click it.
If you modify the referenced Material in any way, you can synchronize the properties by pressing the Reset button. This copies all of the properties from the referenced Material into the relevant Layered Material layer.
If you assign a Material made from a Shader Graph as a Layer Material, make sure the Reference of the properties matches the name of the corresponding properties in the LayeredLit Material. For an example of what this means, see _BaseColorMap in the screenshot below:
Layers
Unity exposes up to four Material layers for you to use in your Layered Material. Use the Layer Count slider to set the number of layers that Unity exposes. Every layer shares the same Surface Inputs and Detail Inputs. The only difference is between the Main Layer and the numbered layers (Layer 1, Layer 2, and Layer 3) which have separate Layering Options.
Layering Options - Main Layer
Property | Description |
---|---|
Layer Influence Mask | Specifies a Texture that defines the areas where the Main Layer can influence the numbered layers. White pixels mean full influence and black pixels mean no influence. This property only appears when you enable the Main Layer Influence checkbox. |
Layering Options - Numbered layers
Property | Description |
---|---|
Use Opacity map as Density map | Indicates whether to use the alpha channel of the Base Map as the opacity threshold. |
BaseColor Influence | The strength of the Main Layer's influence on this layer's base color. As you increase this value, the Main Layer color becomes more visible, but the Material maintains the other layers' variance. This property only appears when you enable the Main Layer Influence checkbox. |
Normal Influence | The strength of the Main Layer's influence on this layer's normals. HDRP adds the Main Layer's normal values to the layer's normals. This property only appears when you enable the Main Layer Influence checkbox. |
Heightmap Influence | The strength of the Main Layer's influence on this layer's heightmap. HDRP adds the Main Layer's heightmap values to the layer's heightmap. This property only appears when you enable the Main Layer Influence checkbox. |
Surface Inputs
Property | Description |
---|---|
Base Map | Assign a Texture that controls both the color and opacity of your Material. To assign a Texture to this field, click the radio button and select your Texture in the Select Texture window. Use the color picker to select the color of the Material. If you do not assign a Texture, this is the absolute color of the Material. If you do assign a Texture, the final color of the Material is a combination of the Texture you assign and the color you select. The alpha value of the color controls the transparency level for the Material if you select Transparent from the Surface Type drop-down. |
Metallic | Use this slider to adjust how "metal-like" the surface of your Material is (between 0 and 1). When a surface is more metallic, it reflects the environment more and its albedo color becomes less visible. At full metallic level, the surface color is entirely driven by reflections from the environment. When a surface is less metallic, its albedo color is clearer and any surface reflections are visible on top of the surface color, rather than obscuring it. This property only appears when you unassign the Texture in the Mask Map and set Material Type to Standard. |
Smoothness | Use the slider to adjust the smoothness of your Material. Every light ray that hits a smooth surface bounces off at predictable and consistent angles. For a perfectly smooth surface that reflects light like a mirror, set this to a value of 1. Less smooth surfaces reflect light over a wider range of angles (because the light hits the bumps in the microsurface), so the reflections have less detail and spread across the surface in a more diffused pattern. This property only appears when you unassign the Texture in the Mask Map. |
Alpha Remapping | Use this min-max slider to remap the alpha values from the Base Map to the range you specify. Rather than clamping values to the new range, Unity condenses the original range down to the new range uniformly. This property only appears when you assign a Base Map. |
Metallic Remapping | Use this min-max slider to remap the metallic values from the Mask Map to the range you specify. Rather than clamping values to the new range, Unity condenses the original range down to the new range uniformly. This property only appears when you assign a Mask Map. |
Smoothness Remapping | Use this min-max slider to remap the smoothness values from the Mask Map to the range you specify. Rather than clamping values to the new range, Unity condenses the original range down to the new range uniformly. This property only appears when you assign a Mask Map. |
Ambient Occlusion Remapping | Use this min-max slider to remap the ambient occlusion values from the Mask Map to the range you specify. Rather than clamping values to the new range, Unity condenses the original range down to the new range uniformly. This property only appears when you assign a Mask Map. |
Mask Map | Assign a channel-packed Texture with the following Material maps in its RGBA channels. • Red: Stores the metallic map. • Green: Stores the ambient occlusion map. • Blue: Stores the detail mask map. • Alpha: Stores the smoothness map. For more information on channel-packed Textures and the mask map, see mask map. |
Normal Map Space | Use this drop-down to select the type of Normal Map space that this Material uses. • TangentSpace: Defines the normal map in UV space; use this to tile a Texture on a Mesh. The normal map Texture must be BC7, BC5, or DXT5nm format. • ObjectSpace: Defines the normal maps in world space. Use this for planar-mapping objects like the terrain. The normal map must be an RGB Texture . |
Normal Map | Assign a Texture that defines the normal map for this Material in tangent space. Use the slider to modulate the normal intensity between 0 and 8. This property only appears when you select TangentSpace from the Normal Map Space drop-down. |
Normal Map OS | Assign a Texture that defines the object space normal map for this Material. Use the handle to modulate the normal intensity between 0 and 8. This property only appears when you select ObjectSpace from the Normal Map Space drop-down. |
Bent Normal Map | Assign a Texture that defines the bent normal map for this Material in tangent space. HDRP uses bent normal maps to simulate more accurate ambient occlusion. Note: Bent normal maps only work with diffuse lighting. This property only appears when you select TangentSpace from the Normal Map Space drop-down.. |
Bent Normal Map OS | Assign a Texture that defines the bent normal map for this Material in object space. HDRP uses bent normal maps to simulate more accurate ambient occlusion. Note: Bent normal maps only work with diffuse lighting. This property only appears when you select ObjectSpace from the Normal Map Space drop-down. |
Height Map | Assign a Texture that defines the heightmap for this Material. Unity uses this map to blend this layer. |
- Parametrization | Use the drop-down to select the parametrization method for the to use for the Height Map. • Min/Max: HDRP compares the Min and Max value to calculate the peak, trough, and base position of the heightmap. If the Min is -1 and the Max is 3, then the base is at the Texture value 0.25. This uses the full range of the heightmap. • Amplitude: Allows you to manually set the amplitude and base position of the heightmap. This uses the full range of the heightmap. In this mode, Amplitude sets the range of values and Base defines how far through the range the zero value (base) is. For example, if Amplitude is 100 and Base is 0.5 (the default value), the minimum value is -50 and the maximum value if 50. If you then set Base to 0, the minimum value becomes 0 and the maximum value becomes 100. |
- Min | Set the minimum value in the Height Map. This property only appears if you set Parametrization to Min/Max. |
- Max | Set the maximum value in the Height Map. This property only appears if you set Parametrization to Min/Max. |
- Offset | Set the offset that HDRP applies to the Height Map. |
- Amplitude | Set the amplitude of the Height Map. This is the range of values the height map represents. This property only appears if you set Parametrization to Amplitude. |
- Base | Use the slider to set the base for the Height Map. This is the value of the level 0 in the height map. If you set this to 0.5 and set Amplitude to 100, the minimum value is -50 and the maximum value is 50. This property only appears if you set Parametrization to Amplitude. |
Diffusion Profile | Assign a Diffusion Profile to drive the behavior of subsurface scattering. To quickly view the currently selected Diffusion Profile’s Inspector, double click the Diffusion Profile Asset in the assign field. If you do not assign a Diffusion Profile, HDRP does not process the subsurface scattering. This property only appears when you select Subsurface Scattering or Translucent from the Material Type drop-down. |
Subsurface Mask Map | Assign a grayscale Texture, with values from 0 to 1, that controls the strength of the blur effect across the Material. A texel with a value of 1 corresponds to full strength, while those with a value of 0 disables the Subsurface Scattering blur effect. This property only appears when you select Subsurface Scattering from the Material Type drop-down. |
Subsurface Mask | Use the slider to set the strength of the screen-space blur effect. If you set a Subsurface Mask Map, this acts as a multiplier for that map. If you do not set a Subsurface Mask Map, this increases the entire subsurface scattering effect on this Material. This property only appears when you select Subsurface Scattering from the Material Type drop-down. |
Transmission Mask Map | Assign a grayscale Texture, with values from 0 to 1, that controls the strength of transmitted light across the Material. A texel with a value of 1 corresponds to full strength, while those with a value of 0 disables the Transmission effect. This property only appears when Material Type is set to Translucent or if it is set to Subsurface Scattering and translucent option is enabled. |
Transmission Mask | Use the slider to set the strength of the transmission effect. If you set a Transmission Mask Map, this acts as a multiplier for that map. This property only appears when Material Type is set to Translucent or if it is set to Subsurface Scattering and translucent option is enabled. |
Thickness Map/Thickness | Assign a grayscale Texture, with values from 0 to 1, that correspond to the average thickness of the Mesh at the location of the texel. Higher values mean thicker areas, and thicker areas transmit less light. If you do not assign a Texture to this property, the name is Thickness and the slider controls the global thickness of the Mesh. This property only appears when you select Subsurface Scattering or Translucent from the Material Type drop-down. |
Thickness Remapping | Use the slider to set the strength of the transmission effect. Multiplies the Thickness Map. This property only appears when you select Subsurface Scattering or Translucent from the Material Type drop-down. |
Base UV Mapping | Use the drop-down to select the type of UV mapping that HDRP uses to map Textures to this Material’s surface. • Unity manages four UV channels for a vertex: UV0, UV1, UV2, and UV3. • Planar: A planar projection from top to bottom. • Triplanar: A planar projection in three directions:X-axis: Left to rightY-axis: Top to bottomZ-axis: Front to back Unity blends these three projections together to produce the final result. |
Tiling | Set an X and Y UV tile rate for all of the Textures in the Surface Inputs section. HDRP uses the X and Y values to tile these Textures across the Material’s surface, in object space. |
Offset | Set an X and Y UV offset for all of the Textures in the Surface Inputs section. HDRP uses the X and Y values to offset these Textures across the Material’s surface, in object. |
Detail Inputs
Property | Description |
---|---|
Detail Map | Specifies a channel-packed Texture that HDRP uses to add micro details into the Material. The Detail Map uses the following channel settings: • Red: Stores the grey scale as albedo. • Green: Stores the green channel of the detail normal map. • Blue: Stores the detail smoothness. • Alpha: Stores the red channel of the detail normal map. For more information on channel-packed Textures and the detail map, see detail map. |
Detail UV Mapping | Specifies the type of UV map to use for the Detail Map. If the Material’s Base UV mapping property is set to Planar or Triplanar, the Detail UV Mapping is also set to Planar or Triplanar. The Detail Map Texture modifies the appearance of the Material so, by default, HDRP applies the Tiling and Offset of the Base UV Map to the Detail Map to synchronize the Detail Map and the rest of the Material Textures. HDRP then applies the Detail Map Tiling and Offset properties on top of the Base Map Tiling and Offset. For example, on a plane, if the Tiling for Base UV Mapping is 2, and this value is also 2, then the Detail Map Texture tiles by 4 on the plane. This workflow allows you to change the Tiling of the Texture on the Material, without having to set the Tiling of the Detail UV too. To separate the Detail UV Map from the Base UV Map to set it independently, disable the Lock to Base Tiling/Offset checkbox. |
- Lock to Base Tiling/Offset | Indicates whether the Base UV Map’s Tiling and Offset properties affect the Detail Map. When enabled, HDRP multiplies these properties by the Detail UV Map’s Tiling and Offset properties respectively. To separate the Detail UV Map from the Base UV Map to set it independently, disable this checkbox. |
Tiling | The per-axis tile rate for the Detail Map UV. HDRP uses the X and Y values to tile the Texture assigned to the Detail Map across the Material’s surface, in object space. |
Offset | The per-axis offset for the Detail Map UV. HDRP uses the X and Y values to offset the Texture assigned to the Detail Map across the Material’s surface, in object space. |
Detail Albedo Scale | Modules the albedo of the detail map (red channel) between 0 and 2. This is an overlay effect. The default value is 1 and applies no scale. |
Detail Normal Scale | Modulates the intensity of the detail normal map (green and alpha channel), between 0 and 2. The default value is 1 and applies no scale. |
Detail Smoothness Scale | Modulate the intensity of the detail smoothness map (blue channel) between 0 and 2. This is an overlay effect. The default value is 1 and applies no scale. |
Emission inputs
[!include[](snippets/shader-properties/emission-inputs/use-emission-intensity.md)] [!include[](snippets/shader-properties/emission-inputs/emissive-color.md)] [!include[](snippets/shader-properties/emission-inputs/emission-uv-mapping-layered-tessellation.md)] [!include[](snippets/shader-properties/emission-inputs/emission-uv-mapping-tiling.md)] [!include[](snippets/shader-properties/emission-inputs/emission-uv-mapping-offset.md)] [!include[](snippets/shader-properties/emission-inputs/emission-intensity.md)] [!include[](snippets/shader-properties/emission-inputs/exposure-weight.md)] [!include[](snippets/shader-properties/emission-inputs/emission-multiply-with-base.md)] [!include[](snippets/shader-properties/emission-inputs/global-illumination.md)]Property | Description |
---|
Advanced Options
[!include[](snippets/shader-properties/advanced-options/enable-gpu-instancing.md)] [!include[](snippets/shader-properties/advanced-options/specular-occlusion-mode.md)] [!include[](snippets/shader-properties/advanced-options/add-precomputed-velocity.md)]Property | Description |
---|