# RendererListParams

> A low-level struct holding the arguments needed to create a RendererList.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Rendering](/engine/6000.5/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule
* **Implements:** [IEquatable\<RendererListParams>](https://learn.microsoft.com/dotnet/api/system.iequatable-1)

```csharp
public struct RendererListParams : IEquatable<RendererListParams>
```

## Remarks

To create a [RendererList](/engine/6000.5/script-reference/unityengine/rendering/rendererlist.md) object, fill this struct and pass it to [ScriptableRenderContext.CreateRendererList](/engine/6000.5/script-reference/unityengine/rendering/scriptablerendercontext/createrendererlist.md).

Alternatively, if you use the render graph system, pass this struct to [RenderGraph.CreateRendererList](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html#UnityEngine_Rendering_RenderGraphModule_RenderGraph_CreateRendererList_UnityEngine_Rendering_RendererListParams__). For more information about RenderGraph, refer to  [The render graph system](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/render-graph-system.html) .

In terms of usage, this struct is similar to [RendererListDesc](/engine/6000.5/script-reference/unityengine/rendering/rendererutils/rendererlistdesc.md), only lower level and more closely tied to engine internals. Use this struct instead of [RendererListDesc](/engine/6000.5/script-reference/unityengine/rendering/rendererutils/rendererlistdesc.md) if you need access to advanced properties such as [FilteringSettings.sortingLayerRange](/engine/6000.5/script-reference/unityengine/rendering/filteringsettings/sortinglayerrange.md).

The example illustrates how `RendererListParams` can be used. Follow these steps:

1. Save the example code in your project as `SimpleRenderPipelineAsset.cs`.
2. Use the `RenderPipeline/Create SimpleRenderPipelineAsset` menu item to create the render pipeline asset.
3. Go to Project Settings > Graphics, and assign the created asset as the **Default Render Pipeline Asset**.

```csharp
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;

public class SimpleRenderPipelineAsset : RenderPipelineAsset<SimpleRenderPipeline>
{
#if UNITY_EDITOR
    [UnityEditor.MenuItem("RenderPipeline/Create SimpleRenderPipelineAsset")]
    static void CreateSimpleRenderLoop()
    {
        var instance = CreateInstance<SimpleRenderPipelineAsset>();
        UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/SimpleRenderPipeline.asset");
    }
#endif

    protected override RenderPipeline CreatePipeline() => new SimpleRenderPipeline();
}

public class SimpleRenderPipeline : RenderPipeline
{
    protected override void Render(ScriptableRenderContext context, List<Camera> cameras)
    {
        foreach (var camera in cameras)
        {
            if (!camera.TryGetCullingParameters(out var cullingParams))
                continue;

            CullingResults cullingResults = context.Cull(ref cullingParams);
            context.SetupCameraProperties(camera);

            var cmd = new CommandBuffer();
            cmd.ClearRenderTarget(true, true, Color.red);

            // Draws visible MeshRenderers that use the built-in Default-Material/Default-Diffuse material.
            DrawingSettings drawingSettings = new DrawingSettings(new ShaderTagId("ForwardBase"), new SortingSettings(camera));
            FilteringSettings filteringSettings = new FilteringSettings(RenderQueueRange.opaque);
            var rendererListParams = new RendererListParams(cullingResults, drawingSettings, filteringSettings);
            var rendererList = context.CreateRendererList(ref rendererListParams);

            cmd.DrawRendererList(rendererList);
            context.ExecuteCommandBuffer(cmd);
            cmd.Release();
            context.Submit();
        }
    }
}
```

Additional Resources: [RendererList](/engine/6000.5/script-reference/unityengine/rendering/rendererlist.md), [ScriptableRenderContext.CreateRendererList](/engine/6000.5/script-reference/unityengine/rendering/scriptablerendercontext/createrendererlist.md).

## Fields

| Value                                                                                                              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [cullingResults](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/cullingresults.md)       | The set of visible objects to draw. You typically obtain this from [ScriptableRenderContext.Cull](/engine/6000.5/script-reference/unityengine/rendering/scriptablerendercontext/cull.md).                                                                                                                                                                                                                                                                                           |
| [drawSettings](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/drawsettings.md)           | A struct that describes how to draw the objects.                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [filteringSettings](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/filteringsettings.md) | A struct that describes how to filter the set of visible objects, so that Unity only draws a subset.                                                                                                                                                                                                                                                                                                                                                                                |
| [isPassTagName](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/ispasstagname.md)         | If set to true, `tagName` specifies a [Pass Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass-tags.md). Otherwise, `tagName` specifies a [SubShader Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-object/tags.md).                                                                                                                                                         |
| [stateBlocks](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/stateblocks.md)             | An array of structs that describe which parts of the GPU's render state to override.                                                                                                                                                                                                                                                                                                                                                                                                |
| [tagName](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/tagname.md)                     | The name of a [SubShader Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-object/tags.md) or [Pass Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass-tags.md).                                                                                                                                                                                                                |
| [tagValues](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/tagvalues.md)                 | An array of [ShaderTagId](/engine/6000.5/script-reference/unityengine/rendering/shadertagid.md) structs, where the [name](/engine/6000.5/script-reference/unityengine/rendering/shadertagid/name.md) is the value of a given [SubShader Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-object/tags.md) or [Pass Tag](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass-tags.md). |

## Static Fields

| Value                                                                                          | Description                          |
| ---------------------------------------------------------------------------------------------- | ------------------------------------ |
| [Invalid](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/invalid.md) | Returns an empty RendererListParams. |

## Constructors

| Constructor                                                                                                                                                                                                                | Description                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| [RendererListParams(UnityEngine.Rendering.CullingResults,UnityEngine.Rendering.DrawingSettings,UnityEngine.Rendering.FilteringSettings)](/engine/6000.5/script-reference/unityengine/rendering/rendererlistparams/ctor.md) | Create a RendererListParams struct. |
