# RayTracingSubMeshFlags

> Flags that determine how rays intersect the geometry for each submesh relative to Material type during ray tracing.

## Definition

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

```csharp
[Flags]
public enum RayTracingSubMeshFlags
```

## Remarks

When [RayTracingAccelerationStructure.AddInstance](/engine/6000.7/script-reference/unityengine/rendering/raytracingaccelerationstructure/addinstance.md) is called, a Renderer can be passed as argument. The Renderer's Mesh can have one or more sub-meshes. Use these flags to determine the behavior of individual sub-meshes when building an acceleration structure or when performing ray tracing.

Additional Resources: [RayTracingAccelerationStructure](/engine/6000.7/script-reference/unityengine/rendering/raytracingaccelerationstructure.md), [MeshFilter.sharedMesh](/engine/6000.7/script-reference/unityengine/meshfilter/sharedmesh.md), [Mesh.subMeshCount](/engine/6000.7/script-reference/unityengine/mesh/submeshcount.md).

## Fields

| Value                                                                                                                  | Description                                                                                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ClosestHitOnly](/engine/6000.7/script-reference/unityengine/rendering/raytracingsubmeshflags/closesthitonly.md)       | Unity considers this geometry opaque. This geometry responds to ray intersections as if it does not have an any hit shader.                                                                                                                                     |
| [Disabled](/engine/6000.7/script-reference/unityengine/rendering/raytracingsubmeshflags/disabled.md)                   | Unity skips the sub-mesh when building a [RayTracingAccelerationStructure](/engine/6000.7/script-reference/unityengine/rendering/raytracingaccelerationstructure.md). As a result, rays cast using  `TraceRay` HLSL function will never intersect the sub-mesh. |
| [Enabled](/engine/6000.7/script-reference/unityengine/rendering/raytracingsubmeshflags/enabled.md)                     | The sub-mesh is provided as input to a [RayTracingAccelerationStructure](/engine/6000.7/script-reference/unityengine/rendering/raytracingaccelerationstructure.md) build operation.                                                                             |
| [UniqueAnyHitCalls](/engine/6000.7/script-reference/unityengine/rendering/raytracingsubmeshflags/uniqueanyhitcalls.md) | Enable this flag to guarantee that the GPU only invokes the any hit shader once for each ray-triangle pair.                                                                                                                                                     |
