---
title: fragmentShader
framework: scenekit
role: symbol
role_heading: Instance Property
path: scenekit/scnprogram/fragmentshader
---

# fragmentShader

GLSL source code for the program’s fragment shader.

## Declaration

```swift
var fragmentShader: String? { get set }
```

## Discussion

Discussion A program’s fragment shader (sometimes called a pixel shader) executes at least once for each pixel in rendered output. The fragment shader takes as input the values output by the vertex shader (after those values have been interpolated by the GPU), and uses them to compute a final color for each pixel. SceneKit compiles and links your shader program only when it is needed for rendering. To be notified of program compilation errors, provide a delegate object for the program.

## See Also

### Working with OpenGL Shader Source Code

- [vertexShader](scenekit/scnprogram/vertexshader.md)
- [geometryShader](scenekit/scnprogram/geometryshader.md)
- [tessellationControlShader](scenekit/scnprogram/tessellationcontrolshader.md)
- [tessellationEvaluationShader](scenekit/scnprogram/tessellationevaluationshader.md)
