<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ShaderGraph-Docs",
  "identifier" : "/documentation/ShaderGraph/3D-Procedural/Fractal-Noise-3D",
  "metadataVersion" : "0.1.0",
  "role" : "ShaderGraph Node",
  "symbol" : {
    "kind" : "ShaderGraph Node",
    "modules" : [
      "ShaderGraph"
    ],
    "preciseIdentifier" : "Shader_ND_fractal3d_float"
  },
  "title" : "Fractal Noise 3D"
}
-->

# Fractal Noise 3D

Zero-centered 3D fractal noise created by summing several octaves of 3D Perlin noise.

## Parameter Types

**Fractal Noise 3D (float):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type |
                |------|-----|
                |`Out` |Float|

**Fractal Noise 3D (color3f):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Vector3f|
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type         |
                |------|-------------|
                |`Out` |Color3<Float>|

**Fractal Noise 3D (color4f):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Vector4f|
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type         |
                |------|-------------|
                |`Out` |Color4<Float>|

**Fractal Noise 3D (vector2f):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Vector2f|
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector2f|

**Fractal Noise 3D (vector3f):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Vector3f|
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector3f|

**Fractal Noise 3D (vector2f FA):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector2f|

**Fractal Noise 3D (vector3f FA):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector3f|

**Fractal Noise 3D (vector4f FA):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector4f|

**Fractal Noise 3D (color3f FA):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type         |
                |------|-------------|
                |`Out` |Color3<Float>|

**Fractal Noise 3D (color4f FA):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Float   |
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type         |
                |------|-------------|
                |`Out` |Color4<Float>|

**Fractal Noise 3D (vector4f):**

|Input       |Type    |
                |------------|--------|
                |`Amplitude` |Vector4f|
                |`Octaves`   |Int32   |
                |`Lacunarity`|Float   |
                |`Diminish`  |Float   |
                |`Position`  |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector4f|

## Parameter descriptions

- `Amplitude`: The intensity of the generated noise. The higher the amplitude, the more pronounced the variations of the noise pattern.
- `Octaves`: The number of layers of 3D Perlin noise that the node sums together. The default value is 3.
- `Lacunarity`: The exponential scale between each octave. This value determines how different each successive octave or layer of Perlin noise is from one another. The default value is `2.0`
- `Diminish`: The rate that the amplitude of each successive octave is decreased. Maintain the value for this parameter in the range of `0.0-1.0`. The default value is `0.5`.
- `Position`: The 3D coordinates at which the data is read in order to map the texture onto a surface. The default is to use the current 3D object-space coordinates.

## Discussion

The Fractal Noise node produces its output by summing up multiple layers or octaves of 3D Perlin noise. The more octaves in the fractal noise, the finer the detail of the noise. Each successive octave differs from the previous; the `Lacunarity` and `Diminish` parameters determine the difference.
*Lacunarity* refers to the difference in frequency between each octavex. As this value increases, the resulting fractal noise becomes more uneven and less smooth.
*Diminish* refers to how the amplitude changes between octaves. A value of `1` indicates no change to the  amplitude. As the value decreases, the amplitude from octave to octave decreases more quickly.
Below is an example of a simple node graph that uses the Fractal Noise 3D node to generate a black and white pattern procedurally:

![](images/ShaderGraph-Docs/FractalNoise3DGraph.png)

Multiply the incoming position with a constant float. The float changes the frequency of the generated noise to a higher number that corresponds with the pattern repeating more often.
Below, the resulting texture applies to a cube with various values for each parameter. All values are the default, unless specified under the image.



![](images/ShaderGraph-Docs/Fractal3DOctaves1~dark.png)



![](images/ShaderGraph-Docs/Fractal3DOctaves3~dark.png)



![](images/ShaderGraph-Docs/Fractal3DOctaves5.png)



![](images/ShaderGraph-Docs/Fractal3DLacunarity1.png)



![](images/ShaderGraph-Docs/Fractal3DLacunarity2.png)



![](images/ShaderGraph-Docs/Fractal3DLacunarity5.png)



![](images/ShaderGraph-Docs/Fractal3DDiminish0.2.png)



![](images/ShaderGraph-Docs/Fractal3DDiminish0.5~dark.png)



![](images/ShaderGraph-Docs/Fractal3DDiminish1~dark.png)

---

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)