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

# Reflect (RealityKit)

Reflects a vector about another vector.

## Parameter Types

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

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

## Parameter descriptions

- `In`: The input vector to reflect.
- `Normal`: The vector that the `In` vector will be reflected with reference to.

## Discussion

The `Reflect` node reflects the `In` vector by taking into account the surface orientation determined by the `Normal` vector.
The `Reflect` node normalizes the `Normal` vector, then calculates the reflection direction using the formula, `In - 2 * dot(Normal, In) * Normal`. In this equation, `dot()` represents the dot product of the two vectors.

---

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)