# UpdateInstanceID

> Updates the instance ID of a ray tracing instance.

## Definition

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

## UpdateInstanceID(Renderer, uint)

Updates the instance ID of a ray tracing instance.

```csharp
public void UpdateInstanceID(Renderer renderer, uint instanceID)
```

### Parameters

**** (\[Renderer]\(/engine/6000.6/script-reference/unityengine/renderer)): The Renderer associated with the ray tracing instance.**** (\[uint]\(https\://learn.microsoft.com/dotnet/api/system.uint32)): The new instance ID.

## UpdateInstanceID(int, uint)

Updates the instance ID of a ray tracing instance.

```csharp
public void UpdateInstanceID(int handle, uint instanceID)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The handle associated with an AABB or Mesh ray tracing instance.**** (\[uint]\(https\://learn.microsoft.com/dotnet/api/system.uint32)): The new instance ID.

### Remarks

Pass along a new instance ID and the handle [RayTracingAccelerationStructure.AddInstance](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstance.md) returns in order to update the ray tracing instance ID associated with an axis-aligned bounding box (AABB) [GraphicsBuffer](/engine/6000.6/script-reference/unityengine/graphicsbuffer.md) or a [Mesh](/engine/6000.6/script-reference/unityengine/mesh.md).

Ray tracing instances in the acceleration structure contain an user-defined instance ID. You can access this instance ID in HLSL using `InstanceID()` intrinsic which provides a way to access additional per-instance custom data. Note that this function is available only in closest hit, any hit, and intersection shaders.

By default, if an instance ID is not specified when calling [RayTracingAccelerationStructure.AddInstance](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstance.md) function, Unity will assign a instance ID lower than the value returned by the [RayTracingAccelerationStructure.GetInstanceCount](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/getinstancecount.md) function.

Note that building the acceleration structure on the GPU has to be triggered by calling [RayTracingAccelerationStructure.Build](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/build.md) or [CommandBuffer.BuildRayTracingAccelerationStructure](/engine/6000.6/script-reference/unityengine/rendering/commandbuffer/buildraytracingaccelerationstructure.md).

Additional Resources: [RayTracingAccelerationStructure.AddInstance](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstance.md), [RayTracingAccelerationStructure.RemoveInstance](/engine/6000.6/script-reference/unityengine/rendering/raytracingaccelerationstructure/removeinstance.md).
