# BatchDrawCommandProceduralIndirect

> Represents a procedural indirect draw command for a BatchRendererGroup.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Rendering](/engine/6000.7/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public struct BatchDrawCommandProceduralIndirect
```

## Remarks

This type of draw command has a reference to a material, but all vertex data is fetched procedurally by the shader. The actual draw data to be used is passed by the GPU in the buffer set up as the [BatchDrawCommandProceduralIndirect.indirectArgsBufferHandle](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/indirectargsbufferhandle.md).

## Fields

| Value                                                                                                                                                                      | Description                                                                                                                                                                                                                                   |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [batchID](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/batchid.md)                                                             | The batch ID that this draw command uses. Determines the metadata values that are available to a shader.                                                                                                                                      |
| [flags](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/flags.md)                                                                 | Specifies rendering options for the draw command.                                                                                                                                                                                             |
| [indexBufferHandle](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/indexbufferhandle.md)                                         | Handle of an index buffer to use for indexed drawing.                                                                                                                                                                                         |
| [indirectArgsBufferHandle](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/indirectargsbufferhandle.md)                           | [GraphicsBufferHandle](/engine/6000.7/script-reference/unityengine/graphicsbufferhandle.md) of the [GraphicsBuffer](/engine/6000.7/script-reference/unityengine/graphicsbuffer.md) from which the indirect draw command will be read.         |
| [indirectArgsBufferOffset](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/indirectargsbufferoffset.md)                           | Offset in bytes from which the indirect draw command will be read.                                                                                                                                                                            |
| [lightmapIndex](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/lightmapindex.md)                                                 | The index of the baked lightmap used in this draw command. If lightmap texture arrays are enabled, this value is always -1 (0xFFFF).                                                                                                          |
| [materialID](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/materialid.md)                                                       | Identifies which [Material](/engine/6000.7/script-reference/unityengine/material.md) to use to render the instances in this draw command.                                                                                                     |
| [sortingPosition](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/sortingposition.md)                                             | Together with [BatchDrawCommand.flags](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommand/flags.md), this specifies how to depth sort the instances in this draw command.                                                 |
| [splitVisibilityMask](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/splitvisibilitymask.md)                                     | Indicates which splits that the draw command is visible in.                                                                                                                                                                                   |
| [topology](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/topology.md)                                                           | The primitive topology to use when executing the draw command.                                                                                                                                                                                |
| [visibleInstancesBufferHandle](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/visibleinstancesbufferhandle.md)                   | Handle of the [GraphicsBuffer](/engine/6000.7/script-reference/unityengine/graphicsbuffer.md) from which the draw command will read visible instance index.                                                                                   |
| [visibleInstancesBufferWindowOffset](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/visibleinstancesbufferwindowoffset.md)       | Offset of the visible instances buffer that will be bound as element zero.                                                                                                                                                                    |
| [visibleInstancesBufferWindowSizeBytes](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/visibleinstancesbufferwindowsizebytes.md) | Amount of data in the buffer to be bound, starting from the visibleInstancesBufferWindowOffset value.                                                                                                                                         |
| [visibleOffset](/engine/6000.7/script-reference/unityengine/rendering/batchdrawcommandproceduralindirect/visibleoffset.md)                                                 | The index of the element in [BatchCullingOutputDrawCommands.visibleInstances](/engine/6000.7/script-reference/unityengine/rendering/batchcullingoutputdrawcommands/visibleinstances.md) that matches the first instance in this draw command. |
