# indexFormat

> Format of the mesh index buffer data.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public IndexFormat indexFormat { get; set; }
```

### Remarks

Index buffer can either be 16 bit (supports up to 65535 vertices in a mesh), or 32 bit (supports up to 4 billion vertices). Default index format is 16 bit, since that takes less memory and bandwidth.

Note that GPU support for 32 bit indices is not guaranteed on all platforms; for example Android devices with Mali-400 GPU do not support them. When using 32 bit indices on such a platform, a warning message will be logged and mesh will not render.

**Note:** the maximum possible vertex index (for example, 0xFFFF for a 16 bit index format) might not be usable. Some graphics APIs and GPUs skip rendering triangles with maximum vertex indices.

Changing indexFormat sets [Mesh.subMeshCount](/engine/6000.0/script-reference/unityengine/mesh/submeshcount.md) to one and clears the index buffer.

Refer to [Mesh.MeshData.GetIndexData](/engine/6000.0/script-reference/unityengine/mesh/meshdata/getindexdata.md) for an example.

Additional Resources: [IndexFormat](/engine/6000.0/script-reference/unityengine/rendering/indexformat.md), [ModelImporter.indexFormat](/engine/6000.0/script-reference/unityeditor/modelimporter/indexformat.md), [Mesh.SetIndices](/engine/6000.0/script-reference/unityengine/mesh/setindices.md), [Mesh.SetTriangles](/engine/6000.0/script-reference/unityengine/mesh/settriangles.md), [Mesh.SetIndexBufferParams](/engine/6000.0/script-reference/unityengine/mesh/setindexbufferparams.md), [Mesh.SetIndexBufferData](/engine/6000.0/script-reference/unityengine/mesh/setindexbufferdata.md), [Mesh.MeshData](/engine/6000.0/script-reference/unityengine/mesh/meshdata.md).
