<!--
{
  "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/Adjustment/Range",
  "metadataVersion" : "0.1.0",
  "role" : "ShaderGraph Node",
  "symbol" : {
    "kind" : "ShaderGraph Node",
    "modules" : [
      "ShaderGraph"
    ],
    "preciseIdentifier" : "Shader_ND_range_float"
  },
  "title" : "Range"
}
-->

# Range

Remaps incoming values from one range to another.

## Parameter Types

**Range (float):**

|Input     |Type |
                |----------|-----|
                |`In`      |Float|
                |`In Low`  |Float|
                |`In High` |Float|
                |`Gamma`   |Float|
                |`Out Low` |Float|
                |`Out High`|Float|
                |`Do Clamp`|Bool |

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

**Range (color3f FA):**

|Input     |Type         |
                |----------|-------------|
                |`In`      |Color3<Float>|
                |`In Low`  |Float        |
                |`In High` |Float        |
                |`Gamma`   |Float        |
                |`Out Low` |Float        |
                |`Out High`|Float        |
                |`Do Clamp`|Bool         |

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

**Range (vector3f FA):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector3f|
                |`In Low`  |Float   |
                |`In High` |Float   |
                |`Gamma`   |Float   |
                |`Out Low` |Float   |
                |`Out High`|Float   |
                |`Do Clamp`|Bool    |

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

**Range (color4f):**

|Input     |Type         |
                |----------|-------------|
                |`In`      |Color4<Float>|
                |`In Low`  |Color4<Float>|
                |`In High` |Color4<Float>|
                |`Gamma`   |Color4<Float>|
                |`Out Low` |Color4<Float>|
                |`Out High`|Color4<Float>|
                |`Do Clamp`|Bool         |

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

**Range (vector4f FA):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector4f|
                |`In Low`  |Float   |
                |`In High` |Float   |
                |`Gamma`   |Float   |
                |`Out Low` |Float   |
                |`Out High`|Float   |
                |`Do Clamp`|Bool    |

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

**Range (color3f):**

|Input     |Type         |
                |----------|-------------|
                |`In`      |Color3<Float>|
                |`In Low`  |Color3<Float>|
                |`In High` |Color3<Float>|
                |`Gamma`   |Color3<Float>|
                |`Out Low` |Color3<Float>|
                |`Out High`|Color3<Float>|
                |`Do Clamp`|Bool         |

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

**Range (vector3f):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector3f|
                |`In Low`  |Vector3f|
                |`In High` |Vector3f|
                |`Gamma`   |Vector3f|
                |`Out Low` |Vector3f|
                |`Out High`|Vector3f|
                |`Do Clamp`|Bool    |

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

**Range (vector4f):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector4f|
                |`In Low`  |Vector4f|
                |`In High` |Vector4f|
                |`Gamma`   |Vector4f|
                |`Out Low` |Vector4f|
                |`Out High`|Vector4f|
                |`Do Clamp`|Bool    |

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

**Range (vector2f):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector2f|
                |`In Low`  |Vector2f|
                |`In High` |Vector2f|
                |`Gamma`   |Vector2f|
                |`Out Low` |Vector2f|
                |`Out High`|Vector2f|
                |`Do Clamp`|Bool    |

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

**Range (color4f FA):**

|Input     |Type         |
                |----------|-------------|
                |`In`      |Color4<Float>|
                |`In Low`  |Float        |
                |`In High` |Float        |
                |`Gamma`   |Float        |
                |`Out Low` |Float        |
                |`Out High`|Float        |
                |`Do Clamp`|Bool         |

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

**Range (vector2f FA):**

|Input     |Type    |
                |----------|--------|
                |`In`      |Vector2f|
                |`In Low`  |Float   |
                |`In High` |Float   |
                |`Gamma`   |Float   |
                |`Out Low` |Float   |
                |`Out High`|Float   |
                |`Do Clamp`|Bool    |

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

## Parameter descriptions

- `In`: The input value to remap.
- `In Low`: The low-end value of the input range; the default is `0.0`.
- `In High`: The high-end value of the input range; the default is `1.0`.
- `Gamma`: The inverse exponent to apply to the input value. The inverse exponent is applied after first mapping the input range to the range `0..1`. The default is `1.0`.
- `Out Low`: The low-end value of the output range. The default is `0.0`.
- `Out High`: The high-end value of the output range. The default is `1.0`.
- `Do Clamp`: The Boolean value that indicates if the output is clamped. If `true`, the output clamps to the range defined by the `Out Low` and `Out High` parameters. The default is `False`.

## Discussion

The `Range` node takes a range of incoming values and converts them to another range. The node also provides the option to apply a gamma correction, which occurs in the middle of the transformation process. The gamma value is the inverse exponent the node applies to the  incoming values. For example, a value of `2` raises the incoming values to the power of `1/2`, effectively calculating the square root.
The node also provides the option to clamp the output, which means any values below the `Out Low` parameter are set to the value of `Out Low`, and any values above the `Out High` parameter are set to value of `Out High`.

---

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)