Version: 2023.2
  • C#


struct in UnityEngine.Rendering


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




Settings for ScriptableRenderContext.DrawRenderers.

DrawingSettings describes how to sort visible objects (sortingSettings) and which shader passes to use (shaderPassName).

Additional resources: ScriptableRenderContext.DrawRenderers, ScriptableRenderContext.Cull, FilteringSettings.

OverrideMaterial vs. OverrideShader: Using the overrideMaterial parameter will override all rendered materials and their properties. The overrideShader property will force the renderers to use a different shader while preserving current material properties. Properties on the overriden material can then be accessed in the override shader. The use of override shaders is currently not supported with SRPBatcher and BatchRendererGroups. Override Shaders will have an impact on performance and should be avoided where overrideMaterial can be used. OverrideShader and OverrideMaterial can't both be used in the same drawRenderers call.

Static Properties

maxShaderPassesThe maxiumum number of passes that can be rendered in 1 DrawRenderers call.


enableDynamicBatchingControls whether dynamic batching is enabled.
enableInstancingControls whether instancing is enabled.
fallbackMaterialSets the Material to use for any drawers in this group that don't meet the requirements.
mainLightIndexConfigures what light should be used as main light.
overrideMaterialSets the Material to use for all drawers that would render in this group.
overrideMaterialPassIndexSelects which pass of the override material to use.
overrideShaderSets the shader to use for all drawers that would render in this group. Override shaders do not override existing material properties.
overrideShaderPassIndexSelects which pass of the override shader to use.
perObjectDataWhat kind of per-object data to setup during rendering.
sortingSettingsHow to sort objects during rendering.


DrawingSettingsCreate a draw settings struct.

Public Methods

GetShaderPassNameGet the name of the shader pass.
SetShaderPassNameSet the name of the shader pass.