<!--
{
  "availability" : [
    "iOS: 8.0.0 - 26.0.0",
    "iPadOS: 8.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.8.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/SCNShaderModifierEntryPoint",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:@T@SCNShaderModifierEntryPoint"
  },
  "title" : "SCNShaderModifierEntryPoint"
}
-->

# SCNShaderModifierEntryPoint

Keys for the [`shaderModifiers`](/documentation/SceneKit/SCNShadable/shaderModifiers) dictionary, each corresponding to an entry point in SceneKit’s shader programs where you can attach a custom GPU shader code snippet.

```
struct SCNShaderModifierEntryPoint
```

## Discussion

For details on shader modifiers, see [`Use Shader Modifiers to Extend SceneKit Shading`](/documentation/SceneKit/SCNShadable#Use-Shader-Modifiers-to-Extend-SceneKit-Shading) in the protocol overview.

SceneKit inserts your shader modifiers into its shader program in the order shown here, so you can use the structures defined by earlier entry points in later entry points. For example, a snippet associated with the [`fragment`](/documentation/SceneKit/SCNShaderModifierEntryPoint/fragment) entry point can read from the `_surface` structure defined by the [`surface`](/documentation/SceneKit/SCNShaderModifierEntryPoint/surface) entry point.

## Topics

### Type Properties

[`fragment`](/documentation/SceneKit/SCNShaderModifierEntryPoint/fragment)

Use this entry point to change the color of a fragment after all other shading has been performed.

[`geometry`](/documentation/SceneKit/SCNShaderModifierEntryPoint/geometry)

Use this entry point to deform a geometry’s surface or alter its vertex attributes.

[`lightingModel`](/documentation/SceneKit/SCNShaderModifierEntryPoint/lightingModel)

Use this entry point to provide a custom lighting equation.

[`surface`](/documentation/SceneKit/SCNShaderModifierEntryPoint/surface)

Use this entry point to modify the surface properties of a material before lighting is computed.



---

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)