<!--
{
  "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/MDLPhysicallyPlausibleScatteringFunction",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Model I/O"
    ],
    "preciseIdentifier" : "c:objc(cs)MDLPhysicallyPlausibleScatteringFunction"
  },
  "title" : "MDLPhysicallyPlausibleScatteringFunction"
}
-->

# MDLPhysicallyPlausibleScatteringFunction

A set of material properties that describes a physically realistic shading model for materials.

```
class MDLPhysicallyPlausibleScatteringFunction
```

## 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 object. The properties defined by this class, along with some properties inherited from the superclass [`MDLScatteringFunction`](/documentation/ModelIO/MDLScatteringFunction), describe a shading model that more closely simulates real-world lighting physics than traditional shading models. (This shading model is similar to those used in recent game engines and feature films.)

The valid range for each material property in this shading function is `0.0` to `1.0`, inclusive. 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

### Working with Shading Properties

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

The degree to which light scatters under the surface of the material.

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

The degree to which the material appears as a dielectric surface (lower values) or as a metal (higher values).

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

The tendency of the material to generate specular highlights.

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

The balance of color for specular highlights, between the light color (lower values) and the material’s base color (at higher values).

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

The degree to which a material appears smooth, affecting both diffuse and specular response.

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

The degree to which specular highlights elongate in the direction of the local tangent basis.

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

The angle at which anisotropic effects are rotated relative to the local tangent basis.

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

The intensity of highlights that appear only at glancing angles on a material’s surface.

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

The balance of color for highlights that appear only at glancing angles, between the light color (lower values) and the material’s base color (at higher values).

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

The intensity of a second specular highlight, similar to the gloss that results from a clear coat on an automotive finish.

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

The sharpness of a second specular highlight, similar to the gloss that results from a clear coat on an automotive finish.

## Relationships

### Conforms To

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

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

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

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

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

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

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

### Inherits From

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

---

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)