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

# Convert

Converts a stream from one data type to another.

## Parameter Types

**Convert (float color3f):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

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

**Convert (vector2f vector2h):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector2f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector2h|

**Convert (vector3f vector3h):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector3h|

**Convert (vector4h vector4f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector4h|

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

**Convert (color3f vector3h):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color3<Float>|

|Output|Type    |
                |------|--------|
                |`Out` |Vector3h|

**Convert (color4f vector4h):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color4<Float>|

|Output|Type    |
                |------|--------|
                |`Out` |Vector4h|

**Convert (color4f vector4f):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color4<Float>|

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

**Convert (vector4f color4f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector4f|

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

**Convert (half float):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (color4f color3f):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color4<Float>|

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

**Convert (color3f color4f):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color3<Float>|

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

**Convert (bool half):**

|Input|Type|
                |-----|----|
                |`In` |Bool|

|Output|Type|
                |------|----|
                |`Out` |Half|

**Convert (float vector3f):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

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

**Convert (float vector4f):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

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

**Convert (vector4h color4f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector4h|

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

**Convert (half vector3f):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (integer float):**

|Input|Type |
                |-----|-----|
                |`In` |Int32|

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

**Convert (vector3h vector3f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3h|

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

**Convert (float integer):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

|Output|Type |
                |------|-----|
                |`Out` |Int32|

**Convert (vector3f vector2f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3f|

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

**Convert (half color3f):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (color3f vector3f):**

|Input|Type         |
                |-----|-------------|
                |`In` |Color3<Float>|

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

**Convert (integer half):**

|Input|Type |
                |-----|-----|
                |`In` |Int32|

|Output|Type|
                |------|----|
                |`Out` |Half|

**Convert (float half):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

|Output|Type|
                |------|----|
                |`Out` |Half|

**Convert (half color4f):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (half integer):**

|Input|Type|
                |-----|----|
                |`In` |Half|

|Output|Type |
                |------|-----|
                |`Out` |Int32|

**Convert (vector2h vector2f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector2h|

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

**Convert (vector4f vector4h):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector4f|

|Output|Type    |
                |------|--------|
                |`Out` |Vector4h|

**Convert (vector4f vector3f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector4f|

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

**Convert (half vector2f):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (bool float):**

|Input|Type|
                |-----|----|
                |`In` |Bool|

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

**Convert (vector3h color3f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3h|

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

**Convert (float color4f):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

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

**Convert (float vector2f):**

|Input|Type |
                |-----|-----|
                |`In` |Float|

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

**Convert (half vector4f):**

|Input|Type|
                |-----|----|
                |`In` |Half|

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

**Convert (vector3f vector4f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3f|

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

**Convert (vector2f vector3f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector2f|

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

**Convert (vector3f color3f):**

|Input|Type    |
                |-----|--------|
                |`In` |Vector3f|

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

## Discussion

The `Convert` node takes data of one type and outputs it in another form. The supported type conversions are shown above with the various convert node types. The `Convert` node handles data types in the following ways:

- When converting a `float` to a `color` or `vector`, the `Convert` node copies the `float` to all channels of the `color` or `vector`.
- When converting a `color3` to a `color4`, the `Convert` node sets the output alpha to `1.0`
- When converting a `color4` to a `color3`, the `Convert` node drops the alpha channel.
- When converting a `boolean` or `integer` to a `float`, the output is either `1.0` or `0.0`.
- When converting a `vector2` to `vector3` or a `vector3` to a `vector4`, the `Convert` nodes populates the additional channel with a value of `1.0`
- When converting a `vector4` to a `vector3`, or a `vector3` to a `vector2`, drop the last channel.

---

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)