<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/SpotLightComponent/Shadow/quality",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation18SpotLightComponentV6ShadowV7qualityAE11QualityModeVvp"
  },
  "title" : "quality"
}
-->

# quality

The shadow-filtering algorithm this light uses.

```
var quality: SpotLightComponent.Shadow.QualityMode { get set }
```

## Discussion

Set to [`medium`](/documentation/RealityKit/SpotLightComponent/Shadow/QualityMode/medium) or [`high`](/documentation/RealityKit/SpotLightComponent/Shadow/QualityMode/high) to opt the light
into soft shadows, whose penumbra widens with [`lightSize`](/documentation/RealityKit/SpotLightComponent/Shadow/lightSize) and with
the distance between the caster and the receiving surface. The default
value is [`low`](/documentation/RealityKit/SpotLightComponent/Shadow/QualityMode/low), which produces a hard-edged shadow whose
appearance is independent of [`lightSize`](/documentation/RealityKit/SpotLightComponent/Shadow/lightSize).

Higher quality modes use more samples per shadow, which increases GPU work.
Excessive use of higher shadow quality lights may contribute to user-noticeable frame drops
and can cause the device to heat up in graphically demanding scenes.
Monitor the thermal state to lower quality as a mitigation, if necessary.
Apps can monitor thermal state changes by subscribing
to the [thermalStateDidChange](https://developer.apple.com/documentation/foundation/notificationcenter/messageidentifier/thermalstatedidchange)
notification.

To stay responsive to the device’s available thermal headroom, read `ProcessInfo.processInfo.thermalState`
and observe `ProcessInfo.thermalStateDidChangeNotification` to react when it changes. As the reported state moves from `.fair` toward `.serious` and `.critical`
switch the light to a lower quality.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)