<!--
{
  "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/Geometric/Refract-(RealityKit)",
  "metadataVersion" : "0.1.0",
  "role" : "ShaderGraph Node",
  "symbol" : {
    "kind" : "ShaderGraph Node",
    "modules" : [
      "ShaderGraph"
    ],
    "preciseIdentifier" : "Shader_ND_realitykit_refract_vector3"
  },
  "title" : "Refract (RealityKit)"
}
-->

# Refract (RealityKit)

Refracts a vector using a given normal and index of refraction (eta).

## Parameter Types

|Input   |Type    |
        |--------|--------|
        |`In`    |Vector3f|
        |`Normal`|Vector3f|
        |`Eta`   |Float   |

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

## Parameter descriptions

- `In`: The vector to refract.
- `Normal`: The normal of the surface from which the `In` vector refracts.
- `Eta`: The index of refraction.

## Discussion

- `Out High`: The high end value of the output range; the default is `1.0`.

> Note: The vectors passed as the `In` and `Normal` parameters must both already be normalized to achieve the desired output.

---

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)