<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ModelIO",
  "identifier" : "/documentation/ModelIO/MDLScatteringFunction",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Model I/O"
    ],
    "preciseIdentifier" : "c:objc(cs)MDLScatteringFunction"
  },
  "title" : "MDLScatteringFunction"
}
-->

# MDLScatteringFunction

A set of material properties that describes a basic shading model for materials, and the superclass for more complex shading models.

```
class MDLScatteringFunction
```

## Overview

The set of material properties that define a material’s response to lighting is also called the *Bidirectional Reflectance Distribution Function*, or BRDF, for surfaces shaded using that [`MDLMaterial`](/documentation/ModelIO/MDLMaterial) object. The set of properties defined by the [`MDLScatteringFunction`](/documentation/ModelIO/MDLScatteringFunction) class itself describes a Lambertian shading model with Blinn-Phong specular response; subclasses can define a set of properties for other shading models.

Creating a new scattering function object with the inherited <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/init()> method creates a set of material properties with useful default values for this shading model.

## Topics

### Naming a Scattering Function

[`name`](/documentation/ModelIO/MDLScatteringFunction/name)

A descriptive name for the scattering function.

### Working with Shading Properties

[`baseColor`](/documentation/ModelIO/MDLScatteringFunction/baseColor)

The inherent color of the material, to be used as a modulator during shading.

[`emission`](/documentation/ModelIO/MDLScatteringFunction/emission)

The color emitted as radiance from a material’s surface.

[`specular`](/documentation/ModelIO/MDLScatteringFunction/specular)

The intensity of specular highlights on the material’s surface.

[`materialIndexOfRefraction`](/documentation/ModelIO/MDLScatteringFunction/materialIndexOfRefraction)

The index of refraction for the medium surrounding a material.

[`interfaceIndexOfRefraction`](/documentation/ModelIO/MDLScatteringFunction/interfaceIndexOfRefraction)

The index of refraction for a material itself.

[`normal`](/documentation/ModelIO/MDLScatteringFunction/normal)

The variation in the surface normal vectors in a material, relative to model coordinate space.

[`ambientOcclusion`](/documentation/ModelIO/MDLScatteringFunction/ambientOcclusion)

The attenuation of ambient light due to local geometry variations on a surface.

[`ambientOcclusionScale`](/documentation/ModelIO/MDLScatteringFunction/ambientOcclusionScale)

The scaling factor for ambient occlusion shading.

## Relationships

### Conforms To

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`MDLNamed`](/documentation/ModelIO/MDLNamed)

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

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

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

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

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

### Inherited By

[`MDLPhysicallyPlausibleScatteringFunction`](/documentation/ModelIO/MDLPhysicallyPlausibleScatteringFunction)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)