# RayTracingAccelerationStructure

> A data structure used to represent the geometry in the Scene for GPU ray tracing.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.Rendering](/engine/6000.0/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public sealed class RayTracingAccelerationStructure : IDisposable
```

## Remarks

Additional Resources: [CommandBuffer.SetRayTracingAccelerationStructure](/engine/6000.0/script-reference/unityengine/rendering/commandbuffer/setraytracingaccelerationstructure.md), [RayTracingShader.SetAccelerationStructure](/engine/6000.0/script-reference/unityengine/rendering/raytracingshader/setaccelerationstructure.md).

## Constructors

| Constructor                                                                                                                                                                                                                                  | Description                                                                                                                                                                                             |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [RayTracingAccelerationStructure()](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/ctor.md#raytracingaccelerationstructure\(\))                                                                       | Creates a RayTracingAccelerationStructure with the given [RayTracingAccelerationStructure.Settings](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/settings.md). |
| [RayTracingAccelerationStructure(UnityEngine.Rendering.RayTracingAccelerationStructure.Settings)](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/ctor.md#raytracingaccelerationstructure\(settings\)) | Creates a RayTracingAccelerationStructure with the given [RayTracingAccelerationStructure.Settings](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/settings.md). |

## Methods

| Method                                                                                                                                              | Description                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AddInstance](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstance.md)                                 | Adds a ray tracing instance to the RayTracingAccelerationStructure.                                                                                                                                                                                                                      |
| [AddInstances](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstances.md)                               | Adds an array of ray tracing Mesh instances to the RayTracingAccelerationStructure.                                                                                                                                                                                                      |
| [AddVFXInstances](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/addvfxinstances.md)                         | Adds the ray tracing instances associated with a VFXRenderer to the RayTracingAccelerationStructure.                                                                                                                                                                                     |
| [Build](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/build.md)                                             | Builds acceleration structures on the GPU. Allocates any GPU memory required for storing acceleration structure data.                                                                                                                                                                    |
| [ClearInstances](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/clearinstances.md)                           | Removes all ray tracing instances from the RayTracingAccelerationStructure.                                                                                                                                                                                                              |
| [CullInstances](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/cullinstances.md)                             | Populates the RayTracingAccelerationStructure with ray tracing instances that Unity associates with Renderers in the Scene by using filtering and culling parameters.                                                                                                                    |
| [Dispose](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/dispose.md)                                         | Destroys this RayTracingAccelerationStructure and frees the GPU memory used for storing acceleration structure data.                                                                                                                                                                     |
| [GetInstanceCount](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/getinstancecount.md)                       | Returns the number of ray tracing instances in the RayTracingAccelerationStructure.                                                                                                                                                                                                      |
| [GetSize](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/getsize.md)                                         | Returns the total size of this RayTracingAccelerationStructure in GPU memory in bytes.                                                                                                                                                                                                   |
| [Release](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/release.md)                                         | Destroys this RayTracingAccelerationStructure and frees the GPU memory used for storing acceleration structure data.                                                                                                                                                                     |
| [RemoveInstance](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/removeinstance.md)                           | Removes a ray tracing instance associated with an axis-aligned bounding box (AABBs) [GraphicsBuffer](/engine/6000.0/script-reference/unityengine/graphicsbuffer.md) or a [Mesh](/engine/6000.0/script-reference/unityengine/mesh.md) instance from this RayTracingAccelerationStructure. |
| [RemoveVFXInstances](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/removevfxinstances.md)                   | Remove the ray tracing instances associated with a VFXRenderer from the RayTracingAccelerationStructure.                                                                                                                                                                                 |
| [UpdateInstanceID](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/updateinstanceid.md)                       | Updates the instance ID of a ray tracing instance.                                                                                                                                                                                                                                       |
| [UpdateInstanceMask](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/updateinstancemask.md)                   | Updates the instance mask of a ray tracing instance.                                                                                                                                                                                                                                     |
| [UpdateInstancePropertyBlock](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/updateinstancepropertyblock.md) | Updates per ray tracing instance Material properties.                                                                                                                                                                                                                                    |
| [UpdateInstanceTransform](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/updateinstancetransform.md)         | Updates the transformation of a ray tracing instance.                                                                                                                                                                                                                                    |

## Structs

| Struct                                                                                                                                                  | Description                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [RayTracingAccelerationStructure.BuildSettings](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/buildsettings.md) | Contains options for building a [RayTracingAccelerationStructure](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure.md). |
| [RayTracingAccelerationStructure.Settings](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/settings.md)           | Defines whether Unity or the user updates a RayTracingAccelerationStructure. Also provides additional filtering and acceleration structure build options.    |

## Enums

| Enum                                                                                                                                                              | Description                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [RayTracingAccelerationStructure.ManagementMode](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/managementmode.md)         | Defines whether Unity updates a RayTracingAccelerationStructure automatically, or if the user updates it manually via API.                                                             |
| [RayTracingAccelerationStructure.RayTracingModeMask](/engine/6000.0/script-reference/unityengine/rendering/raytracingaccelerationstructure/raytracingmodemask.md) | An enum controlling which RayTracingModes a [Renderer](/engine/6000.0/script-reference/unityengine/renderer.md) must have in order to be added to the RayTracingAccelerationStructure. |
