---
title: MaterialFunction
framework: realitykit
role: symbol
role_heading: Protocol
path: realitykit/materialfunction
---

# MaterialFunction

The abstract superclass for objects representing compute functions for RealityKit custom materials .

## Declaration

```swift
protocol MaterialFunction
```

## Overview

Overview This class is the parent of, and contains common properties and methods for CustomMaterial.GeometryModifier and CustomMaterial.SurfaceShader. Don’t create an instance of this superclass yourself.

## Topics

### Instance Properties

- [constantValues](realitykit/materialfunction/constantvalues.md)
- [library](realitykit/materialfunction/library.md)
- [name](realitykit/materialfunction/name.md)

## Relationships

### Conforming Types

- [CustomMaterial.GeometryModifier](realitykit/custommaterial/geometrymodifier.md)
- [CustomMaterial.PostLightingShader](realitykit/custommaterial/postlightingshader.md)
- [CustomMaterial.SurfaceShader](realitykit/custommaterial/surfaceshader.md)

## See Also

### Shaders

- [Implementing adjustable material](visionos/implementing-adjustable-material-in-visionos.md)
- [Displaying a stereoscopic image](visionos/displaying-a-stereoscopic-image-in-visionos.md)
- [ShaderGraphMaterial](realitykit/shadergraphmaterial.md)
- [ShaderGraphMaterial.FaceCulling](realitykit/shadergraphmaterial/faceculling-swift.typealias.md)
- [ShaderGraphMaterial.TriangleFillMode](realitykit/shadergraphmaterial/trianglefillmode-swift.typealias.md)
- [Modifying RealityKit rendering using custom materials](realitykit/modifying-realitykit-rendering-using-custom-materials.md)
- [CustomMaterial](realitykit/custommaterial.md)
- [CustomMaterial.SurfaceShader](realitykit/custommaterial/surfaceshader.md)
- [CustomMaterial.GeometryModifier](realitykit/custommaterial/geometrymodifier.md)
- [CustomMaterial.Program](realitykit/custommaterial/program-swift.class.md)
- [CustomMaterial.Program.Descriptor](realitykit/custommaterial/program-swift.class/descriptor-swift.struct.md)
- [CustomShaderStage](realitykit/customshaderstage.md)
