---
title: opaque
framework: metal
role: symbol
role_heading: Instance Property
path: metal/mtlaccelerationstructuregeometrydescriptor/opaque
---

# opaque

A Boolean value that determines whether the geometry data in the acceleration structure needs to skip triangle-intersection tests.

## Declaration

```swift
var opaque: Bool { get set }
```

## Discussion

Discussion By default, after Metal finds an intersection between a ray and a primitive, it runs your specified intersection function to determine whether the ray actually hit the primitive. If you specify that triangle geometry is opaque, Metal skips the intersection function and processes any intersection as a hit. If you are using bounding box geometry, Metal calls your intersection function, passing a Boolean value that indicates that the bounding box that the ray intersected with is opaque.

## See Also

### Specifying base geometry properties

- [label](metal/mtlaccelerationstructuregeometrydescriptor/label.md)
- [intersectionFunctionTableOffset](metal/mtlaccelerationstructuregeometrydescriptor/intersectionfunctiontableoffset.md)
- [allowDuplicateIntersectionFunctionInvocation](metal/mtlaccelerationstructuregeometrydescriptor/allowduplicateintersectionfunctioninvocation.md)
