---
title: CustomMaterial.Normal
framework: realitykit
role: symbol
role_heading: Structure
path: realitykit/custommaterial/normal-swift.struct
---

# CustomMaterial.Normal

An object that stores fine surface details for an entity in an image texture.

## Declaration

```swift
struct Normal
```

## Overview

Overview Normal mapping is a real-time rendering technique that captures fine surface details for a model by using a texture instead of by increasing the number of polygons in the model. It works by storing surface normals, which are vectors perpendicular to the surface of the model, from a much higher-resolution version of the same 3D object. A normal map stores each vector in the image by storing the vectors’ X, Y, and Z values as the R, G, and B components of the corresponding pixel in the UV-mapped image. This object defines a normal map for a custom material. For more information on using normal map values in a custom material, see normal.

## Topics

### Creating a normal object

- [init(texture:)](realitykit/custommaterial/normal-swift.struct/init(texture:).md)
- [init(_:)](realitykit/custommaterial/normal-swift.struct/init(_:).md)

### Accessing the normal map

- [texture](realitykit/custommaterial/normal-swift.struct/texture.md)

## See Also

### Custom material types

- [CustomMaterial.Custom](realitykit/custommaterial/custom-swift.struct.md)
- [CustomMaterial.CustomMaterialTexture](realitykit/custommaterial/custommaterialtexture.md)
- [CustomMaterial.LightingModel](realitykit/custommaterial/lightingmodel-swift.enum.md)
- [CustomMaterial.BaseColor](realitykit/custommaterial/basecolor-swift.struct.md)
- [CustomMaterial.Roughness](realitykit/custommaterial/roughness-swift.struct.md)
- [CustomMaterial.Metallic](realitykit/custommaterial/metallic-swift.struct.md)
- [CustomMaterial.EmissiveColor](realitykit/custommaterial/emissivecolor-swift.struct.md)
- [CustomMaterial.Blending](realitykit/custommaterial/blending-swift.enum.md)
- [CustomMaterial.Opacity](realitykit/custommaterial/opacity.md)
- [CustomMaterial.AmbientOcclusion](realitykit/custommaterial/ambientocclusion-swift.struct.md)
- [CustomMaterial.Specular](realitykit/custommaterial/specular-swift.struct.md)
- [CustomMaterial.Clearcoat](realitykit/custommaterial/clearcoat-swift.struct.md)
- [CustomMaterial.ClearcoatNormal](realitykit/custommaterial/clearcoatnormal-swift.struct.md)
- [CustomMaterial.ResourceStorage](realitykit/custommaterial/resourcestorage.md)
- [CustomMaterial.TextureCoordinateTransform](realitykit/custommaterial/texturecoordinatetransform-swift.typealias.md)
