<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/HairLightingModel",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation17HairLightingModelV"
  },
  "title" : "HairLightingModel"
}
-->

# HairLightingModel

Configuration for RealityKit’s hair lighting model.

```
struct HairLightingModel
```

## Overview

`LitLightingModel` doesn’t accurately represent hair and fur, since their thin,
nearly cylindrical strands scatter light differently than a typical opaque surface. Use this
lighting model for materials that shade hair or fur.

To render with the hair lighting model, set a `ShaderGraphMaterial.Program.Descriptor`’s
`lightingModel` to `.hair()`:

```
let descriptor = ShaderGraphMaterial.Program.Descriptor(shaderGraph: graph, lightingModel: .hair())
let program = try await ShaderGraphMaterial.Program(descriptor: descriptor)
```

The surface output node in the descriptor’s `ShaderGraph` must produce hair-shading output for
this model to take effect.

## Topics

### Initializers

[`init()`](/documentation/RealityKit/HairLightingModel/init())

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

---

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)