---
title: normal
framework: scenekit
role: symbol
role_heading: Type Property
path: scenekit/scngeometrysource/semantic-swift.struct/normal
---

# normal

The semantic for surface normal data.

## Declaration

```swift
static let normal: SCNGeometrySource.Semantic
```

## Discussion

Discussion For a geometry source, this semantic identifies data containing the surface normal vector at each vertex in the geometry. SceneKit uses this information to compute lighting effects on the surface. For a custom shader program, you use this semantic to bind SceneKit’s vertex normal data to an input attribute of the shader. Vertex normal data is typically an array of three- or four-component vectors.

## See Also

### Basic Geometry Semantics

- [vertex](scenekit/scngeometrysource/semantic-swift.struct/vertex.md)
- [texcoord](scenekit/scngeometrysource/semantic-swift.struct/texcoord.md)
